[*] 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-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x15710 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00015710 ()                                  | void fcn_00015710 (int16_t arg_288h, int16_t arg_360h, int16_t arg_398h, int16_t arg1, int16_t arg2, uint32_t arg3, int16_t arg4) {
                                                             |     int16_t var_0h_2;
                                                             |     int16_t var_4h_2;
                                                             |     int16_t var_ch_2;
                                                             |     int16_t var_64h;
                                                             |     int16_t var_140h;
                                                             |     int16_t var_264h;
                                                             |     int16_t var_268h;
                                                             |     int16_t var_280h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
    0x00015710 push.w {r4, r5, r6, r7, r8, sb, sl, lr}       |     
    0x00015714 cmp.w r2, 0x200                               |     
    0x00015718 ldr r5, [pc, 0x108]                           |     
    0x0001571a sub.w sp, sp, 0x268                           |     
    0x0001571e ldr r4, [pc, 0x108]                           |     r4 = *(0x1582a);
    0x00015720 add r5, pc                                    |     r5 = 0x2af48;
    0x00015722 ldrd sb, r8, [sp, 0x288]                      |     __asm ("ldrd sb, r8, [arg_288h]");
    0x00015726 ldr r4, [r5, r4]                              |     
    0x00015728 ldr r4, [r4]                                  |     r4 = *(0x2af48);
    0x0001572a str r4, [sp, 0x264]                           |     var_264h = r4;
    0x0001572c mov.w r4, 0                                   |     r4 = 0;
                                                             |     if (r2 > 0x200) {
    0x00015730 bgt 0x157e6                                   |         goto label_1;
                                                             |     }
    0x00015732 movs r5, 0                                    |     r5 = 0;
    0x00015734 mov r7, r3                                    |     r7 = r3;
    0x00015736 mov r4, r2                                    |     r4 = r2;
    0x00015738 mov r3, r5                                    |     r3 = r5;
    0x0001573a mov r2, r1                                    |     r2 = r1;
    0x0001573c str r5, [sp]                                  |     *(sp) = r5;
    0x0001573e mov sl, r0                                    |     sl = r0;
    0x00015740 mov r6, r1                                    |     r6 = r1;
    0x00015742 blx 0xe128                                    |     fcn_0000e128 ();
    0x00015746 cmp.w r1, -1                                  |     
    0x0001574a it eq                                         |     
                                                             |     if (r1 == -1) {
    0x0001574c cmpeq r0, -1                                  |         __asm ("cmpeq r0, -1");
                                                             |     }
                                                             |     if (r1 == -1) {
    0x00015750 beq 0x157fa                                   |         goto label_2;
                                                             |     }
    0x00015752 mov r0, sl                                    |     r0 = sl;
    0x00015754 add.w sl, sp, 0x64                            |     sl += var_64h;
    0x00015758 mov.w r3, 0x200                               |     r3 = 0x200;
    0x0001575c mov r2, r4                                    |     r2 = r4;
    0x0001575e mov r1, sl                                    |     r1 = sl;
    0x00015760 blx 0xdf38                                    |     r0 = fcn_0000df38 ();
    0x00015764 cmp r4, r0                                    |     
    0x00015766 mov r6, r0                                    |     r6 = r0;
                                                             |     if (r4 != r0) {
    0x00015768 bne 0x157a2                                   |         goto label_3;
                                                             |     }
    0x0001576a add r6, sp, 0xc                               |     r6 += var_ch_2;
    0x0001576c mov r0, r6                                    |     r0 = r6;
    0x0001576e bl 0x4a220                                    |     zbx_md5_init ();
    0x00015772 mov r2, r4                                    |     r2 = r4;
    0x00015774 mov r1, sl                                    |     r1 = sl;
    0x00015776 mov r0, r6                                    |     r0 = r6;
    0x00015778 bl 0x4a250                                    |     zbx_md5_append ();
    0x0001577c mov r0, r6                                    |     r0 = r6;
    0x0001577e mov r1, r7                                    |     r1 = r7;
    0x00015780 bl 0x4a318                                    |     zbx_md5_finish ();
    0x00015784 mov r0, r5                                    |     r0 = r5;
                                                             |     do {
    0x00015786 ldr r2, [pc, 0xa4]                            |         
    0x00015788 ldr r3, [pc, 0x9c]                            |         r3 = *(0x15828);
    0x0001578a add r2, pc                                    |         r2 = 0x2afbc;
    0x0001578c ldr r3, [r2, r3]                              |         r3 = *(0x2afbc);
    0x0001578e ldr r2, [r3]                                  |         r2 = *(0x2afbc);
    0x00015790 ldr r3, [sp, 0x264]                           |         r3 = var_264h;
    0x00015792 eors r2, r3                                   |         r2 ^= r3;
    0x00015794 mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x00015798 bne 0x15820                                   |             goto label_4;
                                                             |         }
    0x0001579a add.w sp, sp, 0x268                           |         
    0x0001579e pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |         
                                                             | label_3:
    0x000157a2 adds r3, r0, 1                                |         r3 = r0 + 1;
    0x000157a4 ldr.w r5, [r8]                                |         r5 = *(r8);
                                                             |         if (r3 == r0) {
    0x000157a8 beq 0x157c6                                   |             goto label_5;
                                                             |         }
    0x000157aa ldr r1, [pc, 0x84]                            |         
    0x000157ac mov r3, sb                                    |         r3 = sb;
    0x000157ae mov r2, r4                                    |         r2 = r4;
    0x000157b0 mov r0, r5                                    |         r0 = r5;
    0x000157b2 str r6, [sp]                                  |         *(sp) = r6;
    0x000157b4 add r1, pc                                    |         r1 = 0x2afea;
    0x000157b6 bl 0x44820                                    |         r0 = zbx_dsprintf ()
    0x000157ba mov r3, r0                                    |         r3 = r0;
                                                             | label_0:
    0x000157bc mov.w r0, -1                                  |         r0 = -1;
    0x000157c0 str.w r3, [r8]                                |         __asm ("str.w r3, [r8]");
    0x000157c4 b 0x15786                                     |         
                                                             |     } while (1);
                                                             | label_5:
    0x000157c6 blx 0xe3d4                                    |     r0 = fcn_0000e3d4 ();
    0x000157ca ldr r0, [r0]                                  |     r0 = *(r0);
    0x000157cc bl 0x30b74                                    |     r0 = zbx_strerror ();
    0x000157d0 mov r1, r0                                    |     r1 = r0;
    0x000157d2 mov r3, sb                                    |     r3 = sb;
    0x000157d4 str r1, [sp]                                  |     *(sp) = r1;
    0x000157d6 mov r2, r4                                    |     r2 = r4;
    0x000157d8 ldr r1, [pc, 0x58]                            |     
    0x000157da mov r0, r5                                    |     r0 = r5;
    0x000157dc add r1, pc                                    |     r1 = 0x2b014;
    0x000157de bl 0x44820                                    |     r0 = zbx_dsprintf ()
    0x000157e2 mov r3, r0                                    |     r3 = r0;
    0x000157e4 b 0x157bc                                     |     goto label_0;
                                                             | label_1:
    0x000157e6 ldr r1, [pc, 0x50]                            |     
    0x000157e8 mov.w r3, 0x200                               |     r3 = 0x200;
    0x000157ec ldr.w r0, [r8]                                |     r0 = *(r8);
    0x000157f0 add r1, pc                                    |     r1 = 0x2b02e;
    0x000157f2 bl 0x44820                                    |     r0 = zbx_dsprintf ()
    0x000157f6 mov r3, r0                                    |     r3 = r0;
    0x000157f8 b 0x157bc                                     |     goto label_0;
                                                             | label_2:
    0x000157fa blx 0xe3d4                                    |     r0 = fcn_0000e3d4 ();
    0x000157fe ldr r0, [r0]                                  |     r0 = *(r0);
    0x00015800 ldr.w r4, [r8]                                |     r4 = *(r8);
    0x00015804 bl 0x30b74                                    |     zbx_strerror ();
    0x00015808 ldr r1, [pc, 0x30]                            |     
    0x0001580a mov r3, r5                                    |     r3 = r5;
    0x0001580c str r0, [sp, 4]                               |     var_4h_2 = r0;
    0x0001580e mov r2, r6                                    |     r2 = r6;
    0x00015810 mov r0, r4                                    |     r0 = r4;
    0x00015812 str.w sb, [sp]                                |     __asm ("str.w sb, [sp]");
    0x00015816 add r1, pc                                    |     r1 = 0x2b056;
    0x00015818 bl 0x44820                                    |     r0 = zbx_dsprintf ()
    0x0001581c mov r3, r0                                    |     r3 = r0;
    0x0001581e b 0x157bc                                     |     goto label_0;
                                                             | label_4:
    0x00015820 blx 0xe158                                    |     fcn_0000e158 ();
    0x00015824 str r0, [r7, 0x48]                            |     *((r7 + 0x48)) = r0;
    0x00015826 movs r4, r0                                   |     r4 = r0;
    0x00015828 lsls r4, r2, 0xe                              |     r4 = r2 << 0xe;
    0x0001582a movs r0, r0                                   |     
    0x0001582c str r6, [r1, 0x44]                            |     *((r1 + 0x44)) = r6;
    0x0001582e movs r4, r0                                   |     r4 = r0;
    0x00015830 ldr r1, [sp, 0x280]                           |     r1 = var_280h;
    0x00015832 movs r3, r0                                   |     r3 = r0;
    0x00015834 ldr r1, [sp, 0x140]                           |     r1 = var_140h;
    0x00015836 movs r3, r0                                   |     r3 = r0;
    0x00015838 ldr r0, [sp, 0x360]                           |     r0 = *(arg_360h);
    0x0001583a movs r3, r0                                   |     r3 = r0;
    0x0001583c ldr r0, [sp, 0x398]                           |     r0 = *(arg_398h);
    0x0001583e movs r3, r0                                   |     r3 = r0;
                                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x1596c */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0001596c ()                      | void fcn_0001596c (int16_t arg1, int16_t arg2) {
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x0001596c invalid                           |     
    0x00015970 movs r1, 0                        |     r1 = 0;
    0x00015972 mov r6, r0                        |     r6 = r0;
    0x00015974 blx 0xe030                        |     r0 = fcntl64 ();
    0x00015978 mov r4, r0                        |     r4 = r0;
    0x0001597a adds r0, 1                        |     r0++;
                                                 |     if (r0 != 1) {
    0x0001597c beq 0x15982                       |         
    0x0001597e mov r0, r4                        |         r0 = r4;
    0x00015980 pop {r3, r4, r5, r6, r7, pc}      |         
                                                 |     }
    0x00015982 blx 0xe3d4                        |     r0 = fcn_0000e3d4 ();
    0x00015986 ldr r0, [r0]                      |     r0 = *(r0);
    0x00015988 ldr r7, [r5]                      |     r7 = *(r5);
    0x0001598a bl 0x30b74                        |     zbx_strerror ();
    0x0001598e ldr r1, [pc, 0x14]                |     
    0x00015990 mov r3, r0                        |     r3 = r0;
    0x00015992 mov r2, r6                        |     r2 = r6;
    0x00015994 mov r0, r7                        |     r0 = r7;
    0x00015996 add r1, pc                        |     r1 = 0x2b340;
    0x00015998 bl 0x44820                        |     zbx_dsprintf ()
    0x0001599c str r0, [r5]                      |     *(r5) = r0;
    0x0001599e mov r0, r4                        |     r0 = r4;
    0x000159a0 pop {r3, r4, r5, r6, r7, pc}      |     
                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x159a8 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.000159a8 ()                                      | void fcn_000159a8 (int16_t arg_d0h, int16_t arg_e8h, int16_t arg_f8h, int16_t arg_120h, int16_t arg_160h, int16_t arg_188h, int16_t arg_230h, int16_t arg_2a8h, int16_t arg_2d0h, int16_t arg_348h, int16_t arg_8000h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_a4h;
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     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;
    0x000159a8 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x000159ac mov sb, r2                                        |     sb = r2;
    0x000159ae ldr r2, [pc, 0x3b4]                               |     
    0x000159b0 mov r8, r3                                        |     r8 = r3;
    0x000159b2 sub.w sp, sp, 0x8000                              |     
    0x000159b6 ldr r3, [pc, 0x3b0]                               |     r3 = *(0x15d6a);
    0x000159b8 sub sp, 0x74                                      |     
    0x000159ba add r2, pc                                        |     r2 = 0x2b724;
    0x000159bc str r0, [sp, 0x44]                                |     var_44h = r0;
    0x000159be str r1, [sp, 0x4c]                                |     var_4ch = r1;
    0x000159c0 add.w r1, sp, 0x8000                              |     r1 += arg_8000h;
    0x000159c4 ldr r3, [r2, r3]                                  |     
    0x000159c6 adds r1, 0x6c                                     |     r1 += 0x6c;
    0x000159c8 add.w r4, sp, 0x8000                              |     r4 += arg_8000h;
    0x000159cc ldr r0, [r0]                                      |     r0 = *(r0);
    0x000159ce adds r4, 0x98                                     |     r4 += 0x98;
    0x000159d0 ldr r3, [r3]                                      |     r3 = *(0x2b724);
    0x000159d2 str r3, [r1]                                      |     *(r1) = r3;
    0x000159d4 mov.w r3, 0                                       |     r3 = 0;
    0x000159d8 add.w r3, sp, 0x8000                              |     r3 += arg_8000h;
    0x000159dc ldr.w r1, [r3, 0x9c]                              |     r1 = *((r3 + 0x9c));
    0x000159e0 adds r3, 0x9c                                     |     r3 += 0x9c;
    0x000159e2 ldr r3, [pc, 0x388]                               |     
    0x000159e4 ldr r4, [r4]                                      |     r4 = *(r4);
    0x000159e6 str r1, [sp, 0x48]                                |     var_48h = r1;
    0x000159e8 add r3, pc                                        |     r3 = 0x2b75a;
    0x000159ea str r3, [sp, 0x50]                                |     var_50h = r3;
    0x000159ec bl 0x1596c                                        |     r0 = fcn_0001596c (r0, r1);
    0x000159f0 adds r1, r0, 1                                    |     r1 = r0 + 1;
                                                                 |     if (r1 == r0) {
    0x000159f2 beq.w 0x15c6c                                     |         goto label_6;
                                                                 |     }
    0x000159f6 add r5, sp, 0x70                                  |     r5 += var_70h;
    0x000159f8 mov r7, r0                                        |     r7 = r0;
    0x000159fa sub.w r3, r5, 0x14                                |     r3 = r5 - 0x14;
    0x000159fe mov r0, r4                                        |     r0 = r4;
    0x00015a00 sub.w r2, r5, 0xc                                 |     r2 = r5 - 0xc;
    0x00015a04 sub.w r1, r5, 0x10                                |     r1 = r5 - 0x10;
    0x00015a08 bl 0x3fa2c                                        |     find_cr_lf_szbyte ();
    0x00015a0c ldr r3, [sp, 0x4c]                                |     r3 = var_4ch;
    0x00015a0e ldr r2, [r5, -0x14]                               |     r2 = *((r5 - 0x14));
    0x00015a12 ldr r1, [r3]                                      |     r1 = *(r3);
    0x00015a14 ldr r4, [r3, 4]                                   |     r4 = *((r3 + 4));
    0x00015a16 cmp r2, 1                                         |     
    0x00015a18 mov r6, r1                                        |     r6 = r1;
    0x00015a1a str r1, [sp, 0x3c]                                |     var_3ch = r1;
    0x00015a1c str r4, [sp, 0x40]                                |     var_40h = r4;
                                                                 |     if (r2 >= 1) {
    0x00015a1e bls 0x15a32                                       |         
    0x00015a20 mov r0, r1                                        |         r0 = r1;
    0x00015a22 movs r3, 0                                        |         r3 = 0;
    0x00015a24 mov r1, r4                                        |         r1 = r4;
    0x00015a26 bl 0x4c760                                        |         fcn_0004c760 (r0, r1, r2, r3);
    0x00015a2a orrs.w r1, r3, r2                                 |         r1 = r3 | r2;
                                                                 |         if (r1 != r3) {
    0x00015a2e bne.w 0x15b78                                     |             goto label_7;
                                                                 |         }
                                                                 |     }
    0x00015a32 ldr r3, [sp, 0x3c]                                |     r3 = var_3ch;
    0x00015a34 str r3, [sp, 0x38]                                |     var_38h = r3;
    0x00015a36 ldr r3, [sp, 0x40]                                |     r3 = var_40h;
    0x00015a38 str r3, [sp, 0x34]                                |     var_34h = r3;
                                                                 | label_0:
    0x00015a3a movs r3, 0                                        |     r3 = 0;
    0x00015a3c mov r0, r7                                        |     r0 = r7;
    0x00015a3e str r3, [sp]                                      |     *(sp) = r3;
    0x00015a40 ldrd r3, r2, [sp, 0x34]                           |     __asm ("ldrd r3, r2, [var_34h]");
    0x00015a44 blx 0xe128                                        |     fcn_0000e128 ();
    0x00015a48 cmp.w r1, -1                                      |     
    0x00015a4c it eq                                             |     
                                                                 |     if (r1 == -1) {
    0x00015a4e cmpeq r0, -1                                      |         __asm ("cmpeq r0, -1");
                                                                 |     }
                                                                 |     if (r1 == -1) {
    0x00015a52 beq.w 0x15c78                                     |         goto label_8;
                                                                 |     }
    0x00015a56 sub.w r3, r5, 8                                   |     r3 = r5 - 8;
    0x00015a5a str.w sb, [sp, 0x54]                              |     __asm ("str.w sb, [var_54h]");
    0x00015a5e ldrd sl, fp, [sp, 0x34]                           |     __asm ("ldrd sl, fp, [var_34h]");
    0x00015a62 add r6, sp, 0x6c                                  |     r6 += var_6ch;
    0x00015a64 mov sb, r3                                        |     sb = r3;
    0x00015a66 b 0x15a96                                         |     
                                                                 |     while (r2 != r0) {
    0x00015a68 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00015a6a beq.w 0x15b92                                     |             goto label_9;
                                                                 |         }
    0x00015a6e ldr r3, [r5, -0x14]                               |         r3 = *((r5 - 0x14));
    0x00015a72 adds r2, r6, r0                                   |         r2 = r6 + r0;
    0x00015a74 mov r1, sb                                        |         r1 = sb;
    0x00015a76 mov r0, r6                                        |         r0 = r6;
    0x00015a78 str r3, [sp, 4]                                   |         var_4h = r3;
    0x00015a7a ldr r3, [r5, -0xc]                                |         r3 = *((r5 - 0xc));
    0x00015a7e str r3, [sp]                                      |         *(sp) = r3;
    0x00015a80 ldr r3, [r5, -0x10]                               |         r3 = *((r5 - 0x10));
    0x00015a84 bl 0x15620                                        |         r0 = fcn_00015620 (r0, r1, r2, r3, r4, r5, r6);
    0x00015a88 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00015a8a bne.w 0x15c4c                                     |             goto label_10;
                                                                 |         }
    0x00015a8e adds.w fp, r4, fp                                 |         
    0x00015a92 adc.w sl, sl, r4, asr 31                          |         __asm ("adc.w sl, sl, r4, asr 31");
    0x00015a96 mov.w r2, 0x8000                                  |         r2 = 0x8000;
    0x00015a9a mov r1, r6                                        |         r1 = r6;
    0x00015a9c mov r0, r7                                        |         r0 = r7;
    0x00015a9e blx 0xde54                                        |         r0 = fcn_0000de54 ();
    0x00015aa2 adds r2, r0, 1                                    |         r2 = r0 + 1;
    0x00015aa4 mov r4, r0                                        |         r4 = r0;
    0x00015aa6 bne 0x15a68                                       |         
                                                                 |     }
    0x00015aa8 ldr r3, [sp, 0x48]                                |     r3 = var_48h;
    0x00015aaa ldr r4, [r3]                                      |     r4 = *(r3);
    0x00015aac blx 0xe3d4                                        |     fcn_0000e3d4 ();
    0x00015ab0 ldr r3, [sp, 0x44]                                |     r3 = var_44h;
    0x00015ab2 ldr r0, [r0]                                      |     r0 = *(r0);
    0x00015ab4 ldr r6, [r3]                                      |     r6 = *(r3);
    0x00015ab6 bl 0x30b74                                        |     zbx_strerror ();
    0x00015aba ldr r1, [pc, 0x2b4]                               |     
    0x00015abc mov r3, r0                                        |     r3 = r0;
    0x00015abe mov r2, r6                                        |     r2 = r6;
    0x00015ac0 mov r0, r4                                        |     r0 = r4;
    0x00015ac2 add r1, pc                                        |     r1 = 0x2b838;
    0x00015ac4 bl 0x44820                                        |     zbx_dsprintf ()
                                                                 | label_1:
    0x00015ac8 ldr r3, [sp, 0x48]                                |     r3 = var_48h;
    0x00015aca mov.w r4, -1                                      |     r4 = -1;
    0x00015ace str r0, [r3]                                      |     *(r3) = r0;
                                                                 | label_2:
    0x00015ad0 ldr r3, [sp, 0x44]                                |     r3 = var_44h;
    0x00015ad2 mov r0, r7                                        |     r0 = r7;
    0x00015ad4 ldr r6, [r3]                                      |     r6 = *(r3);
    0x00015ad6 blx 0xe0ac                                        |     r0 = fcn_0000e0ac ();
    0x00015ada cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00015adc bne.w 0x15cee                                     |         goto label_11;
                                                                 |     }
    0x00015ae0 ldr r3, [pc, 0x290]                               |     
    0x00015ae2 ldr r2, [sp, 0x50]                                |     r2 = var_50h;
    0x00015ae4 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00015ae6 ldr r3, [r3]                                      |     r3 = *(0x15d74);
    0x00015ae8 cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x00015aea ble 0x15b50                                       |         
    0x00015aec ldr r3, [sp, 0x48]                                |         r3 = var_48h;
    0x00015aee ldr r7, [r3]                                      |         r7 = *(r3);
    0x00015af0 cmp r4, 0                                         |         
                                                                 |         if (r4 != 0) {
    0x00015af2 bne.w 0x15ce4                                     |             goto label_12;
                                                                 |         }
    0x00015af6 ldr r6, [pc, 0x280]                               |         
    0x00015af8 add r6, pc                                        |         r6 = 0x2b876;
                                                                 | label_5:
    0x00015afa ldr r8, [r5, -0x14]                               |         r8 = *((r5 - 0x14));
    0x00015afe ldr r1, [sp, 0x4c]                                |         r1 = var_4ch;
    0x00015b00 ldrd r0, r5, [sp, 0x38]                           |         __asm ("ldrd r0, r5, [var_38h]");
    0x00015b04 ldr r2, [sp, 0x40]                                |         r2 = var_40h;
    0x00015b06 ldrd r3, r1, [r1]                                 |         __asm ("ldrd r3, r1, [r1]");
    0x00015b0a subs.w lr, r0, r5                                 |         lr = r0 - r5;
    0x00015b0e ldr r5, [sp, 0x34]                                |         r5 = var_34h;
    0x00015b10 sbc.w ip, r5, r2                                  |         __asm ("sbc.w ip, r5, r2");
    0x00015b14 subs r5, r3, r0                                   |         r5 = r3 - r0;
    0x00015b16 ldr r0, [sp, 0x34]                                |         r0 = var_34h;
    0x00015b18 sbc.w r0, r1, r0                                  |         __asm ("sbc.w r0, r1, r0");
    0x00015b1c cmp r7, 0                                         |         
                                                                 |         if (r7 == 0) {
    0x00015b1e beq.w 0x15c72                                     |             goto label_13;
                                                                 |         }
                                                                 | label_4:
    0x00015b22 strd r3, r1, [sp, 0x18]                           |         __asm ("strd r3, r1, [sp, 0x18]");
    0x00015b26 mov r2, r8                                        |         r2 = r8;
    0x00015b28 ldr r3, [sp, 0x38]                                |         r3 = var_38h;
    0x00015b2a strd r5, r0, [sp, 0x20]                           |         __asm ("strd r5, r0, [sp, 0x20]");
    0x00015b2e ldr r0, [sp, 0x3c]                                |         r0 = var_3ch;
    0x00015b30 ldr r1, [pc, 0x248]                               |         
    0x00015b32 str r3, [sp, 8]                                   |         var_8h = r3;
    0x00015b34 str r0, [sp]                                      |         *(sp) = r0;
    0x00015b36 ldr r3, [sp, 0x34]                                |         r3 = var_34h;
    0x00015b38 add r1, pc                                        |         r1 = 0x2b8b8;
    0x00015b3a ldr r0, [sp, 0x40]                                |         r0 = var_40h;
    0x00015b3c strd r6, r7, [sp, 0x28]                           |         __asm ("strd r6, r7, [sp, 0x28]");
    0x00015b40 str r3, [sp, 0xc]                                 |         var_ch = r3;
    0x00015b42 movs r3, 0                                        |         r3 = 0;
    0x00015b44 str r0, [sp, 4]                                   |         var_4h = r0;
    0x00015b46 movs r0, 4                                        |         r0 = 4;
    0x00015b48 strd lr, ip, [sp, 0x10]                           |         __asm ("strd lr, ip, [sp, 0x10]");
    0x00015b4c bl 0x30d1c                                        |         zbx_zabbix_log ();
                                                                 |     }
                                                                 | label_3:
    0x00015b50 ldr r2, [pc, 0x22c]                               |     
    0x00015b52 add.w r1, sp, 0x8000                              |     r1 += arg_8000h;
    0x00015b56 ldr r3, [pc, 0x210]                               |     r3 = *(0x15d6a);
    0x00015b58 adds r1, 0x6c                                     |     r1 += 0x6c;
    0x00015b5a add r2, pc                                        |     r2 = 0x2b8de;
    0x00015b5c ldr r3, [r2, r3]                                  |     r3 = *(0x2b8de);
    0x00015b5e ldr r2, [r3]                                      |     r2 = *(0x2b8de);
    0x00015b60 ldr r3, [r1]                                      |     r3 = *(r1);
    0x00015b62 eors r2, r3                                       |     r2 ^= r3;
    0x00015b64 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x00015b68 bne.w 0x15d5e                                     |         goto label_14;
                                                                 |     }
    0x00015b6c mov r0, r4                                        |     r0 = r4;
    0x00015b6e add.w sp, sp, 0x8000                              |     
    0x00015b72 add sp, 0x74                                      |     
    0x00015b74 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_7:
    0x00015b78 subs r2, r6, r2                                   |     r2 = r6 - r2;
    0x00015b7a sbc.w sl, r4, r3                                  |     __asm ("sbc.w sl, r4, r3");
    0x00015b7e cmp r2, sb                                        |     
    0x00015b80 mov r3, sl                                        |     r3 = sl;
    0x00015b82 strd sl, r2, [sp, 0x34]                           |     __asm ("strd sl, r2, [sp, 0x34]");
    0x00015b86 sbcs.w r3, r3, r8                                 |     __asm ("sbcs.w r3, r3, r8");
    0x00015b8a it lo                                             |     
                                                                 |     if (r2 < sb) {
    0x00015b8c strdlo r8, sb, [sp, 0x34]                         |         __asm ("strdlo r8, sb, [sp, 0x34]");
                                                                 |     }
    0x00015b90 b 0x15a3a                                         |     goto label_0;
                                                                 | label_9:
    0x00015b92 ldr.w sb, [sp, 0x54]                              |     sb = var_54h;
    0x00015b96 ldrd sl, fp, [sp, 0x34]                           |     __asm ("ldrd sl, fp, [var_34h]");
    0x00015b9a b 0x15bda                                         |     
                                                                 |     while (r1 != -1) {
    0x00015b9c mov.w r2, 0x8000                                  |         r2 = 0x8000;
    0x00015ba0 mov r1, r6                                        |         r1 = r6;
    0x00015ba2 mov r0, r7                                        |         r0 = r7;
    0x00015ba4 blx 0xde54                                        |         r0 = fcn_0000de54 ();
    0x00015ba8 adds r3, r0, 1                                    |         r3 = r0 + 1;
                                                                 |         if (r3 == r0) {
    0x00015baa beq 0x15c9e                                       |             goto label_15;
                                                                 |         }
    0x00015bac cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00015bae beq.w 0x15cc0                                     |             goto label_16;
                                                                 |         }
    0x00015bb2 ldr r3, [r5, -0x14]                               |         r3 = *((r5 - 0x14));
    0x00015bb6 adds r2, r6, r0                                   |         r2 = r6 + r0;
    0x00015bb8 sub.w r1, r5, 8                                   |         r1 = r5 - 8;
    0x00015bbc mov r0, r6                                        |         r0 = r6;
    0x00015bbe str r3, [sp, 4]                                   |         var_4h = r3;
    0x00015bc0 ldr r3, [r5, -0xc]                                |         r3 = *((r5 - 0xc));
    0x00015bc4 str r3, [sp]                                      |         *(sp) = r3;
    0x00015bc6 ldr r3, [r5, -0x10]                               |         r3 = *((r5 - 0x10));
    0x00015bca bl 0x15620                                        |         r0 = fcn_00015620 (r0, r1, r2, r3, r4, r5, r6);
    0x00015bce cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00015bd0 bne 0x15cd2                                       |             goto label_17;
                                                                 |         }
    0x00015bd2 cmp sl, r8                                        |         
    0x00015bd4 it eq                                             |         
                                                                 |         if (sl == r8) {
    0x00015bd6 cmpeq fp, sb                                      |             __asm ("cmpeq fp, sb");
                                                                 |         }
                                                                 |         if (sl == r8) {
    0x00015bd8 beq 0x15c5c                                       |             goto label_18;
                                                                 |         }
    0x00015bda cmp.w fp, 0x8000                                  |         
    0x00015bde sbcs r3, sl, 0                                    |         __asm ("sbcs r3, sl, 0");
    0x00015be2 itt lo                                            |         
                                                                 |         if (fp >= fcn.00000004) {
    0x00015be4 movlo fp, sb                                      |             
                                                                 |         }
                                                                 |         if (fp >= fcn.00000004) {
    0x00015be6 movlo sl, r8                                      |             sl = r8;
                                                                 |         }
                                                                 |         if (fp > fcn.00000004) {
    0x00015be8 blo 0x15c0e                                       |             
    0x00015bea subs.w r3, fp, sb                                 |             r3 = fp - sb;
    0x00015bee movw r1, 0x8001                                   |             r1 = 0x8001;
    0x00015bf2 sbc.w r2, sl, r8                                  |             __asm ("sbc.w r2, sl, r8");
    0x00015bf6 cmp r3, r1                                        |             
    0x00015bf8 sbcs r1, r2, 0                                    |             __asm ("sbcs r1, r2, 0");
    0x00015bfc itt hs                                            |             
                                                                 |             if (r3 < r1) {
    0x00015bfe movhs r3, 0x8000                                  |                 r3 = 0x8000;
                                                                 |             }
                                                                 |             if (r3 >= r1) {
    0x00015c02 movs r2, 0                                        |                 r2 = 0;
                                                                 |             }
    0x00015c04 subs.w r3, fp, r3                                 |             r3 = fp - r3;
    0x00015c08 sbc.w sl, sl, r2                                  |             __asm ("sbc.w sl, sl, r2");
    0x00015c0c mov fp, r3                                        |             
                                                                 |         }
    0x00015c0e mov r2, fp                                        |         r2 = fp;
    0x00015c10 mov r3, sl                                        |         r3 = sl;
    0x00015c12 mov r0, r7                                        |         r0 = r7;
    0x00015c14 str r4, [sp]                                      |         *(sp) = r4;
    0x00015c16 blx 0xe128                                        |         fcn_0000e128 ();
    0x00015c1a cmp.w r1, -1                                      |         
    0x00015c1e it eq                                             |         
                                                                 |         if (r1 == -1) {
    0x00015c20 cmpeq r0, -1                                      |             __asm ("cmpeq r0, -1");
                                                                 |         }
    0x00015c24 bne 0x15b9c                                       |         
                                                                 |     }
    0x00015c26 blx 0xe3d4                                        |     fcn_0000e3d4 ();
    0x00015c2a ldr r3, [sp, 0x48]                                |     r3 = var_48h;
    0x00015c2c ldr r0, [r0]                                      |     r0 = *(r0);
    0x00015c2e ldr r4, [r3]                                      |     r4 = *(r3);
    0x00015c30 ldr r3, [sp, 0x44]                                |     r3 = var_44h;
    0x00015c32 ldr r6, [r3]                                      |     r6 = *(r3);
    0x00015c34 bl 0x30b74                                        |     zbx_strerror ();
    0x00015c38 ldr r1, [pc, 0x148]                               |     
    0x00015c3a strd r6, r0, [sp]                                 |     __asm ("strd r6, r0, [sp]");
    0x00015c3e mov r0, r4                                        |     r0 = r4;
    0x00015c40 ldrd r3, r2, [sp, 0x34]                           |     __asm ("ldrd r3, r2, [var_34h]");
    0x00015c44 add r1, pc                                        |     r1 = 0x2b9cc;
    0x00015c46 bl 0x44820                                        |     zbx_dsprintf ()
    0x00015c4a b 0x15ac8                                         |     goto label_1;
                                                                 | label_10:
    0x00015c4c ldr r1, [r5, -0x8]                                |     r1 = *((r5 - 0x8));
    0x00015c50 sub.w r8, r1, r6                                  |     r8 = r1 - r6;
    0x00015c54 adds.w sb, r8, fp                                 |     sb = r8 + fp;
    0x00015c58 adc.w r8, sl, r8, asr 31                          |     __asm ("adc.w r8, sl, r8, asr 31");
                                                                 |     do {
                                                                 | label_18:
    0x00015c5c ldr r3, [sp, 0x4c]                                |         r3 = var_4ch;
    0x00015c5e movs r4, 0                                        |         r4 = 0;
    0x00015c60 strd sb, r8, [r3]                                 |         __asm ("strd sb, r8, [r3]");
    0x00015c64 ldr r3, [sp, 0x44]                                |         r3 = var_44h;
    0x00015c66 strd sb, r8, [r3, 0x38]                           |         __asm ("strd sb, r8, [r3, 0x38]");
    0x00015c6a b 0x15ad0                                         |         goto label_2;
                                                                 | label_6:
    0x00015c6c mov.w r4, -1                                      |         r4 = -1;
    0x00015c70 b 0x15b50                                         |         goto label_3;
                                                                 | label_13:
    0x00015c72 ldr r7, [pc, 0x114]                               |         
    0x00015c74 add r7, pc                                        |         r7 = 0x2ba02;
    0x00015c76 b 0x15b22                                         |         goto label_4;
                                                                 | label_8:
    0x00015c78 blx 0xe3d4                                        |         fcn_0000e3d4 ();
    0x00015c7c ldr r3, [sp, 0x48]                                |         r3 = var_48h;
    0x00015c7e ldr r0, [r0]                                      |         r0 = *(r0);
    0x00015c80 ldr r4, [r3]                                      |         r4 = *(r3);
    0x00015c82 ldr r3, [sp, 0x44]                                |         r3 = var_44h;
    0x00015c84 ldr r6, [r3]                                      |         r6 = *(r3);
    0x00015c86 bl 0x30b74                                        |         zbx_strerror ();
    0x00015c8a ldr r1, [pc, 0x100]                               |         
    0x00015c8c strd r6, r0, [sp]                                 |         __asm ("strd r6, r0, [sp]");
    0x00015c90 mov r0, r4                                        |         r0 = r4;
    0x00015c92 ldrd r3, r2, [sp, 0x34]                           |         __asm ("ldrd r3, r2, [var_34h]");
    0x00015c96 add r1, pc                                        |         r1 = 0x2ba28;
    0x00015c98 bl 0x44820                                        |         zbx_dsprintf ()
    0x00015c9c b 0x15ac8                                         |         goto label_1;
                                                                 | label_15:
    0x00015c9e ldr r3, [sp, 0x48]                                |         r3 = var_48h;
    0x00015ca0 ldr r4, [r3]                                      |         r4 = *(r3);
    0x00015ca2 blx 0xe3d4                                        |         fcn_0000e3d4 ();
    0x00015ca6 ldr r3, [sp, 0x44]                                |         r3 = var_44h;
    0x00015ca8 ldr r0, [r0]                                      |         r0 = *(r0);
    0x00015caa ldr r6, [r3]                                      |         r6 = *(r3);
    0x00015cac bl 0x30b74                                        |         zbx_strerror ();
    0x00015cb0 ldr r1, [pc, 0xdc]                                |         
    0x00015cb2 mov r3, r0                                        |         r3 = r0;
    0x00015cb4 mov r2, r6                                        |         r2 = r6;
    0x00015cb6 mov r0, r4                                        |         r0 = r4;
    0x00015cb8 add r1, pc                                        |         r1 = 0x2ba4c;
    0x00015cba bl 0x44820                                        |         zbx_dsprintf ()
    0x00015cbe b 0x15ac8                                         |         goto label_1;
                                                                 | label_16:
    0x00015cc0 ldr r3, [sp, 0x44]                                |         r3 = var_44h;
    0x00015cc2 ldr r1, [pc, 0xd0]                                |         
    0x00015cc4 ldr r2, [r3]                                      |         r2 = *(r3);
    0x00015cc6 ldr r3, [sp, 0x48]                                |         r3 = var_48h;
    0x00015cc8 add r1, pc                                        |         r1 = 0x2ba62;
    0x00015cca ldr r0, [r3]                                      |         r0 = *(r3);
    0x00015ccc bl 0x44820                                        |         zbx_dsprintf ()
    0x00015cd0 b 0x15ac8                                         |         goto label_1;
                                                                 | label_17:
    0x00015cd2 ldr r2, [r5, -0x8]                                |         r2 = *((r5 - 0x8));
    0x00015cd6 sub.w r8, r2, r6                                  |         r8 = r2 - r6;
    0x00015cda adds.w sb, r8, fp                                 |         sb = r8 + fp;
    0x00015cde adc.w r8, sl, r8, asr 31                          |         __asm ("adc.w r8, sl, r8, asr 31");
    0x00015ce0 ldrb r0, [r5, 3]                                  |         r0 = *((r5 + 3));
    0x00015ce2 b 0x15c5c                                         |         
                                                                 |     } while (1);
                                                                 | label_12:
    0x00015ce4 ldr r6, [pc, 0xb0]                                |     
    0x00015ce6 mov.w r4, -1                                      |     r4 = -1;
    0x00015cea add r6, pc                                        |     r6 = 0x2ba86;
    0x00015cec b 0x15afa                                         |     goto label_5;
                                                                 | label_11:
    0x00015cee ldr r3, [sp, 0x48]                                |     r3 = var_48h;
    0x00015cf0 ldr r7, [r3]                                      |     r7 = *(r3);
                                                                 |     if (r7 == 0) {
    0x00015cf2 cbz r7, 0x15d2a                                   |         goto label_19;
                                                                 |     }
    0x00015cf4 ldr r3, [pc, 0x7c]                                |     
    0x00015cf6 ldr r2, [sp, 0x50]                                |     r2 = var_50h;
    0x00015cf8 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00015cfa ldr r3, [r3]                                      |     r3 = *(0x15d74);
    0x00015cfc cmp r3, 3                                         |     
                                                                 |     if (r3 <= 3) {
    0x00015cfe ble 0x15c6c                                       |         goto label_6;
                                                                 |     }
    0x00015d00 ldr r2, [sp, 0x4c]                                |     r2 = var_4ch;
    0x00015d02 ldr r4, [sp, 0x40]                                |     r4 = var_40h;
    0x00015d04 ldr r6, [pc, 0x94]                                |     
    0x00015d06 ldrd r3, r1, [r2]                                 |     __asm ("ldrd r3, r1, [r2]");
    0x00015d0a ldrd r2, r0, [sp, 0x38]                           |     __asm ("ldrd r2, r0, [var_38h]");
    0x00015d0e ldr r8, [r5, -0x14]                               |     r8 = *((r5 - 0x14));
    0x00015d12 add r6, pc                                        |     r6 = 0x2bab2;
    0x00015d14 subs.w lr, r2, r0                                 |     lr = r2 - r0;
    0x00015d18 ldr r0, [sp, 0x34]                                |     r0 = var_34h;
    0x00015d1a sbc.w ip, r0, r4                                  |     __asm ("sbc.w ip, r0, r4");
    0x00015d1e subs r5, r3, r2                                   |     r5 = r3 - r2;
    0x00015d20 mov.w r4, -1                                      |     r4 = -1;
    0x00015d24 sbc.w r0, r1, r0                                  |     __asm ("sbc.w r0, r1, r0");
    0x00015d28 b 0x15b22                                         |     goto label_4;
                                                                 | label_19:
    0x00015d2a blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x00015d2e ldr r0, [r0]                                      |     r0 = *(r0);
    0x00015d30 bl 0x30b74                                        |     zbx_strerror ();
    0x00015d34 ldr r1, [pc, 0x68]                                |     
    0x00015d36 mov r3, r0                                        |     r3 = r0;
    0x00015d38 mov r2, r6                                        |     r2 = r6;
    0x00015d3a mov r0, r7                                        |     r0 = r7;
    0x00015d3c add r1, pc                                        |     r1 = 0x2bae0;
    0x00015d3e bl 0x44820                                        |     zbx_dsprintf ()
    0x00015d42 ldr r3, [sp, 0x48]                                |     r3 = var_48h;
    0x00015d44 mov r7, r0                                        |     r7 = r0;
    0x00015d46 ldr r2, [sp, 0x50]                                |     r2 = var_50h;
    0x00015d48 str r0, [r3]                                      |     *(r3) = r0;
    0x00015d4a ldr r3, [pc, 0x28]                                |     
    0x00015d4c ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00015d4e ldr r3, [r3]                                      |     r3 = *(0x15d76);
    0x00015d50 cmp r3, 3                                         |     
                                                                 |     if (r3 <= 3) {
    0x00015d52 ble 0x15c6c                                       |         goto label_6;
                                                                 |     }
    0x00015d54 ldr r6, [pc, 0x4c]                                |     
    0x00015d56 mov.w r4, -1                                      |     r4 = -1;
    0x00015d5a add r6, pc                                        |     r6 = 0x2bb02;
    0x00015d5c b 0x15afa                                         |     goto label_5;
                                                                 | label_14:
    0x00015d5e blx 0xe158                                        |     fcn_0000e158 ();
    0x00015d62 nop                                               |     
    0x00015d64 str r6, [r3, 0x20]                                |     *((r3 + 0x20)) = r6;
    0x00015d66 movs r4, r0                                       |     r4 = r0;
    0x00015d68 lsls r4, r2, 0xe                                  |     r4 = r2 << 0xe;
    0x00015d6a movs r0, r0                                       |     
    0x00015d6c str r0, [r6, 0x1c]                                |     *((r6 + 0x1c)) = r0;
    0x00015d6e movs r4, r0                                       |     r4 = r0;
    0x00015d70 str r7, [sp, 0xf8]                                |     *(arg_f8h) = r7;
    0x00015d72 movs r3, r0                                       |     r3 = r0;
    0x00015d74 lsls r4, r7, 0xe                                  |     r4 = r7 << 0xe;
    0x00015d76 movs r0, r0                                       |     
    0x00015d78 str r6, [sp, 0x2d0]                               |     *(arg_2d0h) = r6;
    0x00015d7a movs r3, r0                                       |     r3 = r0;
    0x00015d7c str r7, [sp, 0xd0]                                |     *(arg_d0h) = r7;
    0x00015d7e movs r3, r0                                       |     r3 = r0;
    0x00015d80 str r6, [r7, 4]                                   |     *((r7 + 4)) = r6;
    0x00015d82 movs r4, r0                                       |     r4 = r0;
    0x00015d84 str r5, [sp, 0x230]                               |     *(arg_230h) = r5;
    0x00015d86 movs r3, r0                                       |     r3 = r0;
    0x00015d88 itt lt                                            |     
                                                                 |     if (r3 >= r0) {
    0x00015d8a movlt r3, r0                                      |         r3 = r0;
                                                                 |     }
                                                                 |     if (r3 >= r0) {
    0x00015d8c strlt r5, [sp, 0xe8]                              |         *(arg_e8h) = r5;
                                                                 |     }
    0x00015d8e movs r3, r0                                       |     r3 = r0;
    0x00015d90 str r5, [sp, 0x120]                               |     *(arg_120h) = r5;
    0x00015d92 movs r3, r0                                       |     r3 = r0;
    0x00015d94 str r5, [sp, 0x160]                               |     *(arg_160h) = r5;
    0x00015d96 movs r3, r0                                       |     r3 = r0;
    0x00015d98 str r4, [sp, 0x348]                               |     *(arg_348h) = r4;
    0x00015d9a movs r3, r0                                       |     r3 = r0;
    0x00015d9c str r4, [sp, 0x2a8]                               |     *(arg_2a8h) = r4;
    0x00015d9e movs r3, r0                                       |     r3 = r0;
    0x00015da0 str r5, [sp, 0x50]                                |     var_50h = r5;
    0x00015da2 movs r3, r0                                       |     r3 = r0;
    0x00015da4 str r4, [sp, 0x188]                               |     *(arg_188h) = r4;
    0x00015da6 movs r3, r0                                       |     r3 = r0;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x15ea4 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00015ea4 ()                                      | void fcn_00015ea4 (int16_t arg_90h, int16_t arg_94h, int16_t arg_98h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_60h;
                                                                 |     int16_t var_5ch;
                                                                 |     int16_t var_54h;
                                                                 |     int16_t var_40h;
                                                                 |     int16_t var_bp_38h;
                                                                 |     int16_t var_30h;
                                                                 |     int16_t var_bp_28h;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_bp_1ch;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_sp_20h;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_2ch;
                                                                 |     int16_t var_38h;
                                                                 |     int16_t var_sp_40h;
                                                                 |     int16_t var_44h;
                                                                 |     int16_t var_48h;
                                                                 |     int16_t var_4ch;
                                                                 |     int16_t var_sp_54h;
                                                                 |     int16_t var_64h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00015ea4 svcmi 0xf0e92d                                    |     __asm ("svcmi 0xf0e92d");
    0x00015ea8 sub sp, 0x6c                                      |     
    0x00015eaa str r2, [sp, 0x2c]                                |     var_2ch = r2;
    0x00015eac mov r5, r2                                        |     r5 = r2;
    0x00015eae mov sl, r0                                        |     sl = r0;
    0x00015eb0 mov r7, r1                                        |     r7 = r1;
    0x00015eb2 ldr.w r2, [pc, 0xbf4]                             |     
    0x00015eb6 movw r1, 0x54c                                    |     r1 = 0x54c;
    0x00015eba str r3, [sp, 0x1c]                                |     var_1ch = r3;
    0x00015ebc ldr.w r3, [pc, 0xbec]                             |     r3 = *(0x16aac);
    0x00015ec0 add r2, pc                                        |     r2 = 0x2c96e;
    0x00015ec2 ldr.w r0, [pc, 0xbec]                             |     
    0x00015ec6 ldr r4, [sp, 0x98]                                |     r4 = *(arg_98h);
    0x00015ec8 ldr r3, [r2, r3]                                  |     
    0x00015eca movs r2, 0                                        |     r2 = 0;
    0x00015ecc ldr.w sb, [pc, 0xbe4]                             |     sb = *(0x00016ab4);
    0x00015ed0 add r0, pc                                        |     r0 = 0x2c986;
    0x00015ed2 ldr r3, [r3]                                      |     r3 = *(0x2c96e);
    0x00015ed4 str r3, [sp, 0x64]                                |     var_64h = r3;
    0x00015ed6 mov.w r3, 0                                       |     r3 = 0;
    0x00015eda ldr r3, [sp, 0x90]                                |     r3 = *(arg_90h);
    0x00015edc str r4, [sp, 0x24]                                |     var_24h = r4;
    0x00015ede add sb, pc                                        |     sb += pc;
    0x00015ee0 mul r3, r5, r3                                    |     r3 = r5 * r3;
    0x00015ee4 bl 0x40dd8                                        |     zbx_malloc2 ();
    0x00015ee8 cmp r5, 0                                         |     
    0x00015eea mov r4, r0                                        |     r4 = r0;
                                                                 |     if (r5 <= 0) {
    0x00015eec ble.w 0x165ac                                     |         goto label_60;
                                                                 |     }
    0x00015ef0 movs r3, 0                                        |     r3 = 0;
    0x00015ef2 ldr.w ip, [sp, 0x90]                              |     ip = *(arg_90h);
    0x00015ef6 str r3, [sp, 0x20]                                |     var_sp_20h = r3;
    0x00015ef8 adds r7, 0x60                                     |     r7 += 0x60;
    0x00015efa ldr r3, [sp, 0x94]                                |     r3 = *(arg_94h);
    0x00015efc mov r5, r0                                        |     r5 = r0;
    0x00015efe mov fp, r7                                        |     
    0x00015f00 mov r8, sb                                        |     r8 = sb;
    0x00015f02 str r0, [sp, 0x28]                                |     var_28h = r0;
    0x00015f04 subs r3, 1                                        |     r3--;
    0x00015f06 str.w sl, [sp, 0x14]                              |     __asm ("str.w sl, [var_14h]");
    0x00015f0a str r3, [sp, 0x18]                                |     var_18h = r3;
                                                                 | label_0:
    0x00015f0c cmp.w ip, 0                                       |     
    0x00015f10 it le                                             |     
                                                                 |     if (ip > 0) {
    0x00015f12 addle r5, ip                                      |         r5 += ip;
                                                                 |     }
                                                                 |     if (ip <= 0) {
    0x00015f14 ble 0x15fc8                                       |         goto label_61;
                                                                 |     }
    0x00015f16 sub.w r3, fp, 0x60                                |     r3 = fp - 0x60;
    0x00015f1a mov sb, r5                                        |     sb = r5;
    0x00015f1c str r3, [sp, 0x30]                                |     var_60h = r3;
    0x00015f1e add.w r6, r5, ip                                  |     r6 = r5 + ip;
    0x00015f22 ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x00015f24 str.w ip, [sp, 0x90]                              |     __asm ("str.w ip, [arg_90h]");
    0x00015f28 add.w sl, r3, 0x60                                |     sl = r3 + 0x60;
                                                                 |     do {
    0x00015f2c ldr r3, [sp, 0x14]                                |         r3 = var_14h;
    0x00015f2e sub.w r7, sl, 0x60                                |         r7 = sl - 0x60;
    0x00015f32 cmp r3, 1                                         |         
                                                                 |         if (r3 == 1) {
    0x00015f34 beq.w 0x1604e                                     |             goto label_62;
                                                                 |         }
    0x00015f38 ldr r3, [sp, 0x18]                                |         r3 = var_18h;
    0x00015f3a cmp r3, 1                                         |         
                                                                 |         if (r3 < 1) {
    0x00015f3c bls 0x15fdc                                       |             goto label_63;
                                                                 |         }
                                                                 | label_2:
    0x00015f3e ldr r0, [fp, -0x30]                               |         r0 = var_30h;
    0x00015f42 ldr r2, [sl, -0x30]                               |         r2 = *((sl - 0x30));
    0x00015f46 ldr r5, [fp, -0x2c]                               |         r5 = var_64h;
    0x00015f4a ldr r3, [sl, -0x2c]                               |         r3 = *((sl - 0x2c));
    0x00015f4e cmp r2, r0                                        |         
    0x00015f50 sbcs.w r1, r3, r5                                 |         __asm ("sbcs.w r1, r3, r5");
                                                                 |         if (r2 <= r0) {
    0x00015f54 blo 0x15ffc                                       |             goto label_3;
                                                                 |         }
    0x00015f56 ldrd r4, r1, [fp, -0x28]                          |         __asm ("ldrd r4, r1, [var_bp_28h]");
    0x00015f5a cmp r2, r4                                        |         
    0x00015f5c sbcs.w r1, r3, r1                                 |         __asm ("sbcs.w r1, r3, r1");
                                                                 |         if (r2 <= r4) {
    0x00015f60 blo 0x15ffc                                       |             goto label_3;
                                                                 |         }
    0x00015f62 cmp r5, r3                                        |         
    0x00015f64 it eq                                             |         
                                                                 |         if (r5 == r3) {
    0x00015f66 cmpeq r0, r2                                      |             __asm ("cmpeq r0, r2");
                                                                 |         }
    0x00015f68 ldr r4, [fp, -0x20]                               |         r4 = var_20h;
                                                                 |         if (r5 == r3) {
    0x00015f6c beq.w 0x16168                                     |             goto label_64;
                                                                 |         }
                                                                 | label_4:
    0x00015f70 adds r2, r4, 1                                    |         r2 = r4 + 1;
                                                                 |         if (r2 == r4) {
    0x00015f72 beq 0x15ffc                                       |             goto label_3;
                                                                 |         }
    0x00015f74 ldr r2, [sl, -0x20]                               |         r2 = *((sl - 0x20));
    0x00015f78 sub.w r3, r2, -1                                  |         r3 = r2 - -1;
    0x00015f7c clz r3, r3                                        |         r3 &= r3;
    0x00015f80 lsrs r3, r3, 5                                    |         r3 >>= 5;
    0x00015f82 cmp r2, r4                                        |         
    0x00015f84 it lt                                             |         
                                                                 |         if (r2 >= r4) {
    0x00015f86 orrlt r3, r3, 1                                   |             r3 |= 1;
                                                                 |         }
                                                                 |         if (r3 != 0) {
    0x00015f8a cbnz r3, 0x15ffc                                  |             goto label_3;
                                                                 |         }
    0x00015f8c cmp r2, r4                                        |         
                                                                 |         if (r2 == r4) {
    0x00015f8e beq.w 0x162c0                                     |             goto label_65;
                                                                 |         }
                                                                 | label_9:
    0x00015f92 cmp r4, 0                                         |         
                                                                 |         if (r4 > 0) {
    0x00015f94 bgt.w 0x161ba                                     |             goto label_66;
                                                                 |         }
                                                                 | label_6:
    0x00015f98 invalid                                           |         
    0x00015f9a subs r3, 0x1c                                     |         r3 -= 0x1c;
    0x00015f9c ldr.w r4, [r8, r3]                                |         r4 = *((r8 + r3));
    0x00015fa0 ldr r3, [fp, -0x54]                               |         r3 = var_54h;
                                                                 | label_5:
    0x00015fa4 cmp r3, 1                                         |         
                                                                 |         if (r3 == 1) {
    0x00015fa6 beq.w 0x162b2                                     |             goto label_67;
                                                                 |         }
                                                                 | label_8:
    0x00015faa movs r3, 0x31                                     |         r3 = 0x31;
    0x00015fac strb.w r3, [sb]                                   |         *(sb) = r3;
                                                                 | label_14:
    0x00015fb0 ldr r3, [r4]                                      |         r3 = *(r4);
    0x00015fb2 cmp r3, 3                                         |         
                                                                 |         if (r3 > 3) {
    0x00015fb4 bgt 0x16010                                       |             goto label_68;
                                                                 |         }
                                                                 | label_1:
    0x00015fb6 add.w sb, sb, 1                                   |         sb++;
    0x00015fba add.w sl, sl, 0x70                                |         sl += 0x70;
    0x00015fbe cmp r6, sb                                        |         
    0x00015fc0 mov r5, r6                                        |         r5 = r6;
    0x00015fc2 bne 0x15f2c                                       |         
                                                                 |     } while (r6 != sb);
    0x00015fc4 ldr.w ip, [sp, 0x90]                              |     ip = *(arg_90h);
                                                                 | label_61:
    0x00015fc8 ldr r3, [sp, 0x20]                                |     r3 = var_sp_20h;
    0x00015fca add.w fp, fp, 0x70                                |     
    0x00015fce ldr r2, [sp, 0x2c]                                |     r2 = var_2ch;
    0x00015fd0 adds r3, 1                                        |     r3++;
    0x00015fd2 cmp r2, r3                                        |     
                                                                 |     if (r2 == r3) {
    0x00015fd4 beq.w 0x168f0                                     |         goto label_69;
                                                                 |     }
    0x00015fd8 str r3, [sp, 0x20]                                |     var_sp_20h = r3;
    0x00015fda b 0x15f0c                                         |     goto label_0;
                                                                 | label_63:
    0x00015fdc ldrd r0, r2, [fp, -0x40]                          |     __asm ("ldrd r0, r2, [var_40h]");
    0x00015fe0 ldrd r1, r3, [sl, -0x40]                          |     __asm ("ldrd r1, r3, [sl, -0x40]");
    0x00015fe4 cmp r2, r3                                        |     
    0x00015fe6 it eq                                             |     
                                                                 |     if (r2 == r3) {
    0x00015fe8 cmpeq r0, r1                                      |         __asm ("cmpeq r0, r1");
                                                                 |     }
                                                                 |     if (r2 == r3) {
    0x00015fea bne 0x15ffc                                       |         
    0x00015fec ldrd r0, r2, [fp, -0x48]                          |         __asm ("ldrd r0, r2, [var_48h]");
    0x00015ff0 ldrd r1, r3, [sl, -0x48]                          |         __asm ("ldrd r1, r3, [sl, -0x48]");
    0x00015ff4 cmp r2, r3                                        |         
    0x00015ff6 it eq                                             |         
                                                                 |         if (r2 == r3) {
    0x00015ff8 cmpeq r0, r1                                      |             __asm ("cmpeq r0, r1");
                                                                 |         }
                                                                 |         if (r2 == r3) {
    0x00015ffa beq 0x16036                                       |             goto label_70;
                                                                 |         }
                                                                 |     }
                                                                 | label_3:
    0x00015ffc invalid                                           |     
    0x00015ffe subs r2, 0xb8                                     |     r2 -= 0xb8;
    0x00016000 ldr.w r4, [r8, r3]                                |     r4 = *((r8 + r3));
                                                                 | label_7:
    0x00016004 movs r3, 0x30                                     |     r3 = 0x30;
    0x00016006 strb.w r3, [sb]                                   |     *(sb) = r3;
    0x0001600a ldr r3, [r4]                                      |     r3 = *(r4);
    0x0001600c cmp r3, 3                                         |     
                                                                 |     if (r3 <= 3) {
    0x0001600e ble 0x15fb6                                       |         goto label_1;
                                                                 |     }
                                                                 | label_68:
    0x00016010 ldrb.w r2, [sb]                                   |     r2 = *(sb);
    0x00016014 movs r0, 4                                        |     r0 = 4;
    0x00016016 ldr r3, [fp, -0x60]                               |     r3 = var_60h;
    0x0001601a str r2, [sp, 4]                                   |     var_4h = r2;
    0x0001601c ldr r1, [sl, -0x60]                               |     r1 = *((sl - 0x60));
    0x00016020 ldr.w r2, [pc, 0xa98]                             |     r2 = *(0x00016abc);
    0x00016024 str r1, [sp]                                      |     *(sp) = r1;
    0x00016026 ldr.w r1, [pc, 0xa98]                             |     r1 = *(0x00016ac0);
    0x0001602a add r2, pc                                        |     r2 += pc;
    0x0001602c adds r2, 0xc                                      |     r2 += 0xc;
    0x0001602e add r1, pc                                        |     r1 += pc;
    0x00016030 bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x00016034 b 0x15fb6                                         |     goto label_1;
                                                                 | label_70:
    0x00016036 ldr r3, [sp, 0x94]                                |     r3 = *(arg_94h);
    0x00016038 cmp r3, 2                                         |     
                                                                 |     if (r3 != 2) {
    0x0001603a bne 0x15f3e                                       |         goto label_2;
                                                                 |     }
    0x0001603c ldrd r0, r2, [fp, -0x38]                          |     __asm ("ldrd r0, r2, [var_bp_38h]");
    0x00016040 ldrd r1, r3, [sl, -0x38]                          |     __asm ("ldrd r1, r3, [sl, -0x38]");
    0x00016044 cmp r2, r3                                        |     
    0x00016046 it eq                                             |     
                                                                 |     if (r2 != r3) {
    0x00016048 cmpeq r0, r1                                      |         __asm ("cmpeq r0, r1");
                                                                 |         goto label_71;
                                                                 |     }
                                                                 |     if (r2 != r3) {
                                                                 | label_71:
    0x0001604a bne 0x15ffc                                       |         goto label_3;
                                                                 |     }
    0x0001604c b 0x15f3e                                         |     goto label_2;
                                                                 | label_62:
    0x0001604e ldr r2, [fp, -0x5c]                               |     r2 = var_5ch;
    0x00016052 ldr r3, [sl, -0x5c]                               |     r3 = *((sl - 0x5c));
    0x00016056 cmp r2, r3                                        |     
                                                                 |     if (r2 > r3) {
    0x00016058 bgt 0x15ffc                                       |         goto label_3;
                                                                 |     }
    0x0001605a ldr r2, [fp, -0x20]                               |     r2 = var_20h;
    0x0001605e adds r0, r2, 1                                    |     r0 = r2 + 1;
                                                                 |     if (r0 == r2) {
    0x00016060 beq 0x15ffc                                       |         goto label_3;
                                                                 |     }
    0x00016062 ldr r3, [sl, -0x20]                               |     r3 = *((sl - 0x20));
    0x00016066 adds r1, r3, 1                                    |     r1 = r3 + 1;
                                                                 |     if (r1 == r3) {
    0x00016068 beq 0x15ffc                                       |         goto label_3;
                                                                 |     }
    0x0001606a ldr r1, [sp, 0x94]                                |     r1 = *(arg_94h);
    0x0001606c subs r1, 1                                        |     r1--;
    0x0001606e cmp r1, 1                                         |     
    0x00016070 str r1, [sp, 0x3c]                                |     var_54h = r1;
    0x00016072 it hi                                             |     
                                                                 |     if (r1 <= 1) {
    0x00016074 movhi r5, -1                                      |         r5 = -1;
                                                                 |     }
                                                                 |     if (r1 < 1) {
    0x00016078 bls.w 0x162fc                                     |         goto label_72;
                                                                 |     }
                                                                 | label_11:
    0x0001607c cmp r2, r3                                        |     
                                                                 |     if (r2 == r3) {
    0x0001607e beq.w 0x1651e                                     |         goto label_73;
                                                                 |     }
    0x00016082 cmp r2, 0                                         |     
    0x00016084 it ne                                             |     
                                                                 |     if (r2 != 0) {
    0x00016086 cmpne r3, 0                                       |         __asm ("cmpne r3, 0");
                                                                 |     }
    0x00016088 ite eq                                            |     
                                                                 |     if (r2 != 0) {
    0x0001608a moveq r1, 1                                       |         r1 = 1;
                                                                 |     }
                                                                 |     if (r2 != 0) {
    0x0001608c movne r1, 0                                       |         r1 = 0;
                                                                 |         goto label_74;
                                                                 |     }
                                                                 |     if (r2 == 0) {
                                                                 | label_74:
    0x0001608e beq 0x15ffc                                       |         goto label_3;
                                                                 |     }
    0x00016090 cmp r2, r3                                        |     
                                                                 |     if (r2 < r3) {
    0x00016092 blt.w 0x16534                                     |         goto label_75;
                                                                 |     }
    0x00016096 str.w sb, [sp, 0x44]                              |     __asm ("str.w sb, [var_44h]");
    0x0001609a mov r5, r1                                        |     r5 = r1;
    0x0001609c str.w r8, [sp, 0x48]                              |     __asm ("str.w r8, [var_48h]");
    0x000160a0 add r2, sp, 0x54                                  |     r2 += var_sp_54h;
    0x000160a2 ldr r7, [sp, 0x1c]                                |     r7 = var_1ch;
    0x000160a4 ldr.w sb, [sp, 0x24]                              |     sb = var_24h;
    0x000160a8 ldr.w r8, [sp, 0x90]                              |     r8 = *(arg_90h);
    0x000160ac str r1, [sp, 0x40]                                |     var_sp_40h = r1;
    0x000160ae str r1, [sp, 0x34]                                |     var_5ch = r1;
    0x000160b0 str r2, [sp, 0x38]                                |     var_38h = r2;
    0x000160b2 str r6, [sp, 0x4c]                                |     var_4ch = r6;
                                                                 |     do {
    0x000160b4 ldrd r0, r2, [r7, 0x30]                           |         __asm ("ldrd r0, r2, [r7, 0x30]");
    0x000160b8 asrs r1, r3, 0x1f                                 |         r1 = r3 >> 0x1f;
    0x000160ba cmp r0, r3                                        |         
    0x000160bc sbcs r2, r1                                       |         __asm ("sbcs r2, r1");
                                                                 |         if (r0 > r3) {
    0x000160be blo 0x16158                                       |             
    0x000160c0 ldr r4, [sl, -0x60]                               |             r4 = *((sl - 0x60));
    0x000160c4 ldr r0, [fp, -0x60]                               |             r0 = var_60h;
    0x000160c8 mov r1, r4                                        |             r1 = r4;
    0x000160ca blx 0xe3b0                                        |             fcn_0000e3b0 ();
    0x000160cc ldrd r2, r8, [r2, -0x0]!                          |             __asm ("ldrd r2, r8, [r2, -0x0]!");
                                                                 |             if (r0 == r3) {
    0x000160d0 beq.w 0x164ce                                     |                 goto label_76;
                                                                 |             }
    0x000160d4 mov r1, r4                                        |             r1 = r4;
    0x000160d6 ldr r4, [r7]                                      |             r4 = *(r7);
    0x000160d8 mov r0, r4                                        |             r0 = r4;
    0x000160da blx 0xe3b0                                        |             r0 = fcn_0000e3b0 ();
    0x000160de cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x000160e0 beq.w 0x164ce                                     |                 goto label_76;
                                                                 |             }
    0x000160e4 mov r0, r4                                        |             r0 = r4;
    0x000160e6 mov r1, sb                                        |             r1 = sb;
    0x000160e8 bl 0x1596c                                        |             r0 = fcn_0001596c (r0, r1);
    0x000160ec adds r4, r0, 1                                    |             r4 = r0 + 1;
    0x000160ee mov r6, r0                                        |             r6 = r0;
                                                                 |             if (r4 == r0) {
    0x000160f0 beq.w 0x162f8                                     |                 goto label_22;
                                                                 |             }
    0x000160f4 ldr r2, [sl, -0x20]                               |             r2 = *((sl - 0x20));
    0x000160f8 movs r1, 0                                        |             r1 = 0;
    0x000160fa str.w sb, [sp, 4]                                 |             __asm ("str.w sb, [var_4h]");
    0x000160fe ldr r3, [r7]                                      |             r3 = *(r7);
    0x00016100 str r3, [sp]                                      |             *(sp) = r3;
    0x00016102 ldr r3, [sp, 0x38]                                |             r3 = var_38h;
    0x00016104 bl 0x15710                                        |             fcn_00015710 (r0, r1, r2, r3, r4, r5, r6);
    0x00016108 str r0, [sp, 0x40]                                |             var_sp_40h = r0;
                                                                 |             if (r0 == 0) {
    0x0001610a cbnz r0, 0x1614c                                  |                 
    0x0001610c ldr r1, [sp, 0x38]                                |                 r1 = var_38h;
    0x0001610e movs r2, 0x10                                     |                 r2 = 0x10;
    0x00016110 sub.w r0, sl, 0x1c                                |                 r0 = sl - 0x1c;
    0x00016114 blx 0xdbec                                        |                 sysconf ();
    0x00016118 ldr r3, [sp, 0x3c]                                |                 r3 = var_54h;
    0x0001611a cmp r3, 1                                         |                 
                                                                 |                 if (r3 < 1) {
    0x0001611c bls.w 0x16356                                     |                     goto label_77;
                                                                 |                 }
                                                                 | label_39:
    0x00016120 cmp r0, 0                                         |                 
                                                                 |                 if (r0 != 0) {
    0x00016122 bne.w 0x164ec                                     |                     goto label_40;
                                                                 |                 }
    0x00016126 movs r2, 1                                        |                 r2 = 1;
                                                                 | label_41:
    0x00016128 ldrd r1, r3, [sl, -0x8]                           |                 __asm ("ldrd r1, r3, [sl, -0x8]");
    0x0001612c orrs r3, r1                                       |                 r3 |= r1;
                                                                 |                 if (r3 == r1) {
    0x0001612e beq.w 0x168b2                                     |                     goto label_78;
                                                                 |                 }
    0x00016132 ldr r2, [sl, -0x20]                               |                 r2 = *((sl - 0x20));
    0x00016136 mov r0, r6                                        |                 r0 = r6;
    0x00016138 str.w sb, [sp, 4]                                 |                 __asm ("str.w sb, [var_4h]");
    0x0001613c ldr r3, [r7]                                      |                 r3 = *(r7);
    0x0001613e str r3, [sp]                                      |                 *(sp) = r3;
    0x00016140 ldr r3, [sp, 0x38]                                |                 r3 = var_38h;
    0x00016142 bl 0x15710                                        |                 r0 = fcn_00015710 (r0, r1, r2, r3, r4, r5, r6);
    0x00016146 cmp r0, 0                                         |                 
                                                                 |                 if (r0 == 0) {
    0x00016148 beq.w 0x164d4                                     |                     goto label_79;
                                                                 |                 }
                                                                 |             }
                                                                 | label_13:
    0x0001614c mov r0, r6                                        |             r0 = r6;
    0x0001614e blx 0xe0ac                                        |             fcn_0000e0ac ();
                                                                 | label_20:
    0x00016152 mov.w r3, -1                                      |             r3 = -1;
    0x00016156 str r3, [sp, 0x40]                                |             var_sp_40h = r3;
                                                                 |         }
                                                                 | label_17:
    0x00016158 adds r5, 1                                        |         r5++;
    0x0001615a adds r7, 0x70                                     |         r7 += 0x70;
    0x0001615c cmp r8, r5                                        |         
                                                                 |         if (r8 == r5) {
    0x0001615e beq.w 0x16772                                     |             goto label_80;
                                                                 |         }
    0x00016162 ldr r3, [sl, -0x20]                               |         r3 = *((sl - 0x20));
    0x00016166 b 0x160b4                                         |         
                                                                 |     } while (1);
                                                                 | label_64:
    0x00016168 ldr r2, [fp, -0x5c]                               |     r2 = var_5ch;
    0x0001616c ldr r3, [sl, -0x5c]                               |     r3 = *((sl - 0x5c));
    0x00016170 cmp r2, r3                                        |     
                                                                 |     if (r2 >= r3) {
    0x00016172 bge.w 0x15f70                                     |         goto label_4;
                                                                 |     }
    0x00016176 cmp r4, 0                                         |     
                                                                 |     if (r4 > 0) {
    0x00016178 ble 0x16184                                       |         
    0x0001617a ldr r3, [sl, -0x20]                               |         r3 = *((sl - 0x20));
    0x0001617e cmp r3, r4                                        |         
                                                                 |         if (r3 == r4) {
    0x00016180 beq.w 0x166d2                                     |             goto label_81;
                                                                 |         }
                                                                 |     }
                                                                 | label_28:
    0x00016184 ldr r3, [fp, -0x54]                               |     r3 = var_54h;
    0x00016188 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0001618a beq.w 0x1685e                                     |         goto label_82;
                                                                 |     }
    0x0001618e ldr r2, [sp, 0x14]                                |     r2 = var_14h;
    0x00016190 cmp r2, 3                                         |     
                                                                 |     if (r2 != 3) {
    0x00016192 bne 0x16290                                       |         goto label_29;
                                                                 |     }
    0x00016194 ldr.w r2, [pc, 0x920]                             |     r2 = *(0x16ab8);
    0x00016198 ldr.w r4, [r8, r2]                                |     r4 = *((r8 + r2));
    0x0001619c ldr r2, [r4]                                      |     r2 = *(r4);
    0x0001619e cmp r2, 2                                         |     
                                                                 |     if (r2 <= 2) {
    0x000161a0 ble.w 0x15fa4                                     |         goto label_5;
                                                                 |     }
    0x000161a4 ldr.w r1, [pc, 0x91c]                             |     r1 = *(0x00016ac4);
    0x000161a8 ldr r2, [fp, -0x60]                               |     r2 = var_60h;
    0x000161ac ldr r0, [sp, 0x14]                                |     r0 = var_14h;
    0x000161ae add r1, pc                                        |     r1 += pc;
    0x000161b0 bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x000161b4 ldr r3, [fp, -0x54]                               |     r3 = var_54h;
    0x000161b8 b 0x15fa4                                         |     goto label_5;
                                                                 | label_66:
    0x000161ba ldr r4, [sp, 0x24]                                |     r4 = var_24h;
    0x000161bc ldr r0, [sl, -0x60]                               |     r0 = *((sl - 0x60));
    0x000161c0 mov r1, r4                                        |     r1 = r4;
    0x000161c2 bl 0x1596c                                        |     r0 = fcn_0001596c (r0, r1);
    0x000161c6 adds r3, r0, 1                                    |     r3 = r0 + 1;
    0x000161c8 mov r5, r0                                        |     r5 = r0;
                                                                 |     if (r3 == r0) {
    0x000161ca beq.w 0x162f8                                     |         goto label_22;
                                                                 |     }
    0x000161cc strh r5, [r2, 4]                                  |     *((r2 + 4)) = r5;
    0x000161ce ldr r2, [fp, -0x20]                               |     r2 = var_20h;
    0x000161d2 movs r1, 0                                        |     r1 = 0;
    0x000161d4 str r4, [sp, 4]                                   |     var_4h = r4;
    0x000161d6 add r4, sp, 0x54                                  |     r4 += var_sp_54h;
    0x000161d8 ldr r3, [sl, -0x60]                               |     r3 = *((sl - 0x60));
    0x000161dc str r3, [sp]                                      |     *(sp) = r3;
    0x000161de mov r3, r4                                        |     r3 = r4;
    0x000161e0 bl 0x15710                                        |     r0 = fcn_00015710 (r0, r1, r2, r3, r4, r5, r6);
    0x000161e4 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000161e6 bne.w 0x1641a                                     |         goto label_83;
                                                                 |     }
    0x000161ea movs r2, 0x10                                     |     r2 = 0x10;
    0x000161ec mov r1, r4                                        |     r1 = r4;
    0x000161ee sub.w r0, fp, 0x1c                                |     r0 = fp - 0x1c;
    0x000161f2 blx 0xdbec                                        |     r0 = sysconf ();
    0x000161f6 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000161f8 bne.w 0x1684e                                     |         goto label_84;
                                                                 |     }
    0x000161fc ldrd r1, r3, [fp, -0x8]                           |     __asm ("ldrd r1, r3, [fp, -0x8]");
    0x00016200 orrs r3, r1                                       |     r3 |= r1;
                                                                 |     if (r3 != r1) {
    0x00016202 beq 0x16230                                       |         
    0x00016204 ldr r3, [sp, 0x24]                                |         r3 = var_24h;
    0x00016206 mov r0, r5                                        |         r0 = r5;
    0x00016208 ldr r2, [fp, -0x20]                               |         r2 = var_20h;
    0x0001620c str r3, [sp, 4]                                   |         var_4h = r3;
    0x0001620e ldr r3, [sl, -0x60]                               |         r3 = *((sl - 0x60));
    0x00016212 str r3, [sp]                                      |         *(sp) = r3;
    0x00016214 mov r3, r4                                        |         r3 = r4;
    0x00016216 bl 0x15710                                        |         r0 = fcn_00015710 (r0, r1, r2, r3, r4, r5, r6);
    0x0001621a cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x0001621c bne.w 0x1641a                                     |             goto label_83;
                                                                 |         }
    0x00016220 mov r1, r4                                        |         r1 = r4;
    0x00016222 movs r2, 0x10                                     |         r2 = 0x10;
    0x00016224 mov r0, fp                                        |         r0 = fp;
    0x00016226 blx 0xdbec                                        |         r0 = sysconf ();
    0x0001622a cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x0001622c bne.w 0x1684e                                     |             goto label_84;
                                                                 |         }
                                                                 |     }
    0x00016230 mov r0, r5                                        |     r0 = r5;
    0x00016232 blx 0xe0ac                                        |     r0 = fcn_0000e0ac ();
    0x00016236 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00016238 beq.w 0x15f98                                     |         goto label_6;
                                                                 |     }
                                                                 | label_37:
    0x0001623c mov fp, r7                                        |     
    0x0001623e ldrd r7, r4, [sp, 0x24]                           |     __asm ("ldrd r7, r4, [var_24h]");
    0x00016242 blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x00016246 ldr r0, [r0]                                      |     r0 = *(r0);
    0x00016248 ldr r5, [r7]                                      |     r5 = *(r7);
    0x0001624a ldr.w r6, [fp]                                    |     r6 = *(fp);
    0x0001624e bl 0x30b74                                        |     zbx_strerror ();
    0x00016252 ldr.w r1, [pc, 0x874]                             |     
    0x00016256 mov r3, r0                                        |     r3 = r0;
    0x00016258 mov r2, r6                                        |     r2 = r6;
    0x0001625a mov r0, r5                                        |     r0 = r5;
    0x0001625c add r1, pc                                        |     r1 = 0x2cd2a;
    0x0001625e bl 0x44820                                        |     zbx_dsprintf ()
    0x00016262 str r0, [r7]                                      |     *(r7) = r0;
                                                                 |     if (r4 != 0) {
                                                                 | label_10:
    0x00016264 cbz r4, 0x1626c                                   |         
                                                                 | label_15:
    0x00016266 mov r0, r4                                        |         r0 = r4;
    0x00016268 blx 0xde30                                        |         fcn_0000de30 ();
                                                                 |     }
                                                                 | label_16:
    0x0001626c movs r4, 0                                        |     r4 = 0;
                                                                 | label_23:
    0x0001626e ldr.w r2, [pc, 0x85c]                             |     r2 = *(0x00016acc);
    0x00016272 ldr.w r3, [pc, 0x838]                             |     r3 = *(0x16aae);
    0x00016276 add r2, pc                                        |     r2 += pc;
    0x00016278 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x0001627a ldr r2, [r3]                                      |     r2 = *(0x16aae);
    0x0001627c ldr r3, [sp, 0x64]                                |     r3 = var_64h;
    0x0001627e eors r2, r3                                       |     r2 ^= r3;
    0x00016280 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x00016284 bne.w 0x16b42                                     |         goto label_85;
                                                                 |     }
    0x00016288 mov r0, r4                                        |     r0 = r4;
    0x0001628a add sp, 0x6c                                      |     
    0x0001628c pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_29:
    0x00016290 ldr.w r3, [pc, 0x824]                             |     r3 = *(0x16ab8);
    0x00016294 ldr.w r4, [r8, r3]                                |     r4 = *((r8 + r3));
    0x00016298 ldr r3, [r4]                                      |     r3 = *(r4);
    0x0001629a cmp r3, 2                                         |     
                                                                 |     if (r3 <= 2) {
    0x0001629c ble.w 0x16004                                     |         goto label_7;
                                                                 |     }
    0x000162a0 ldr.w r1, [pc, 0x82c]                             |     r1 = *(0x00016ad0);
    0x000162a4 movs r0, 3                                        |     r0 = 3;
    0x000162a6 ldr r2, [fp, -0x60]                               |     r2 = var_60h;
    0x000162aa add r1, pc                                        |     r1 += pc;
    0x000162ac bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x000162b0 b 0x16004                                         |     goto label_7;
                                                                 | label_67:
    0x000162b2 ldr r3, [r4]                                      |     r3 = *(r4);
    0x000162b4 cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x000162b6 bgt 0x1633c                                       |         goto label_86;
                                                                 |     }
                                                                 | label_12:
    0x000162b8 movs r3, 0                                        |     r3 = 0;
    0x000162ba str r3, [fp, -0x54]                               |     var_54h = r3;
    0x000162be b 0x15faa                                         |     goto label_8;
                                                                 | label_65:
    0x000162c0 movs r2, 0x10                                     |     r2 = 0x10;
    0x000162c2 sub.w r1, sl, 0x1c                                |     r1 = sl - 0x1c;
    0x000162c6 sub.w r0, fp, 0x1c                                |     r0 = fp - 0x1c;
    0x000162ca blx 0xdbec                                        |     r0 = sysconf ();
    0x000162ce cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000162d0 bne.w 0x15ffc                                     |         goto label_3;
                                                                 |     }
    0x000162d4 ldrd r0, r2, [fp, -0x8]                           |     __asm ("ldrd r0, r2, [fp, -0x8]");
    0x000162d8 ldrd r1, r3, [sl, -0x8]                           |     __asm ("ldrd r1, r3, [sl, -0x8]");
    0x000162dc cmp r2, r3                                        |     
    0x000162de it eq                                             |     
                                                                 |     if (r2 != r3) {
    0x000162e0 cmpeq r0, r1                                      |         __asm ("cmpeq r0, r1");
                                                                 |         goto label_87;
                                                                 |     }
                                                                 |     if (r2 != r3) {
                                                                 | label_87:
    0x000162e2 bne.w 0x15f92                                     |         goto label_9;
                                                                 |     }
    0x000162e6 movs r2, 0x10                                     |     r2 = 0x10;
    0x000162e8 mov r1, sl                                        |     r1 = sl;
    0x000162ea mov r0, fp                                        |     r0 = fp;
    0x000162ec blx 0xdbec                                        |     r0 = sysconf ();
    0x000162f0 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000162f2 bne.w 0x15f92                                     |         goto label_9;
                                                                 |     }
    0x000162f6 b 0x15f98                                         |     goto label_6;
                                                                 | label_22:
    0x000162f8 invalid                                           |     
    0x000162fa b 0x16264                                         |     goto label_10;
                                                                 | label_72:
    0x000162fc ldrd r5, r0, [fp, -0x40]                          |     __asm ("ldrd r5, r0, [var_40h]");
    0x00016300 ldrd r4, r1, [sl, -0x40]                          |     __asm ("ldrd r4, r1, [sl, -0x40]");
    0x00016304 cmp r0, r1                                        |     
    0x00016306 it eq                                             |     
                                                                 |     if (r0 == r1) {
    0x00016308 cmpeq r5, r4                                      |         __asm ("cmpeq r5, r4");
                                                                 |     }
                                                                 |     if (r0 != r1) {
    0x0001630a bne.w 0x16416                                     |         goto label_88;
                                                                 |     }
    0x0001630e ldrd r5, r0, [fp, -0x48]                          |     __asm ("ldrd r5, r0, [var_48h]");
    0x00016312 ldrd r4, r1, [sl, -0x48]                          |     __asm ("ldrd r4, r1, [sl, -0x48]");
    0x00016316 cmp r0, r1                                        |     
    0x00016318 it eq                                             |     
                                                                 |     if (r0 == r1) {
    0x0001631a cmpeq r5, r4                                      |         __asm ("cmpeq r5, r4");
                                                                 |     }
                                                                 |     if (r0 != r1) {
    0x0001631c bne 0x16416                                       |         goto label_88;
                                                                 |     }
    0x0001631e ldr r1, [sp, 0x94]                                |     r1 = *(arg_94h);
    0x00016320 cmp r1, 2                                         |     
                                                                 |     if (r1 != 2) {
    0x00016322 bne.w 0x168be                                     |         goto label_89;
                                                                 |     }
    0x00016326 ldrd r5, r0, [fp, -0x38]                          |     __asm ("ldrd r5, r0, [var_bp_38h]");
    0x0001632a ldrd r4, r1, [sl, -0x38]                          |     __asm ("ldrd r4, r1, [sl, -0x38]");
    0x0001632e cmp r0, r1                                        |     
    0x00016330 it eq                                             |     
                                                                 |     if (r0 == r1) {
    0x00016332 cmpeq r5, r4                                      |         __asm ("cmpeq r5, r4");
                                                                 |     }
    0x00016334 ite eq                                            |     
                                                                 |     if (r0 != r1) {
    0x00016336 moveq r5, 1                                       |         r5 = 1;
                                                                 |     }
                                                                 |     if (r0 == r1) {
    0x00016338 movne r5, 0                                       |         r5 = 0;
                                                                 |     }
    0x0001633a b 0x1607c                                         |     goto label_11;
                                                                 | label_86:
    0x0001633c ldr.w r2, [pc, 0x794]                             |     r2 = *(0x00016ad4);
    0x00016340 movs r0, 4                                        |     r0 = 4;
    0x00016342 ldr.w r1, [pc, 0x794]                             |     r1 = *(0x00016ad8);
    0x00016344 asrs r4, r2, 0x1e                                 |     r4 = r2 >> 0x1e;
    0x00016346 ldr r3, [fp, -0x60]                               |     r3 = var_60h;
    0x0001634a add r2, pc                                        |     r2 += pc;
    0x0001634c adds r2, 0xc                                      |     r2 += 0xc;
    0x0001634e add r1, pc                                        |     r1 += pc;
    0x00016350 bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x00016354 b 0x162b8                                         |     goto label_12;
                                                                 | label_77:
    0x00016356 ldrd r4, r2, [fp, -0x40]                          |     __asm ("ldrd r4, r2, [var_40h]");
    0x0001635a ldrd r1, r3, [r7, 0x20]                           |     __asm ("ldrd r1, r3, [r7, 0x20]");
    0x0001635e cmp r2, r3                                        |     
    0x00016360 it eq                                             |     
                                                                 |     if (r2 == r3) {
    0x00016362 cmpeq r4, r1                                      |         __asm ("cmpeq r4, r1");
                                                                 |     }
                                                                 |     if (r2 == r3) {
    0x00016364 beq.w 0x1687e                                     |         goto label_90;
                                                                 |     }
    0x00016368 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001636a bne.w 0x164ec                                     |         goto label_40;
                                                                 |     }
    0x0001636e ldrd r1, r3, [sl, -0x8]                           |     __asm ("ldrd r1, r3, [sl, -0x8]");
    0x00016372 orrs r3, r1                                       |     r3 |= r1;
                                                                 |     if (r3 == r1) {
    0x00016374 beq 0x163d8                                       |         goto label_91;
                                                                 |     }
    0x00016376 ldr r2, [sl, -0x20]                               |     r2 = *((sl - 0x20));
    0x0001637a mov r0, r6                                        |     r0 = r6;
    0x0001637c str.w sb, [sp, 4]                                 |     __asm ("str.w sb, [var_4h]");
    0x00016380 ldr r3, [r7]                                      |     r3 = *(r7);
    0x00016382 str r3, [sp]                                      |     *(sp) = r3;
    0x00016384 ldr r3, [sp, 0x38]                                |     r3 = var_38h;
    0x00016386 bl 0x15710                                        |     r0 = fcn_00015710 (r0, r1, r2, r3, r4, r5, r6);
    0x0001638a cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001638c bne.w 0x1614c                                     |         goto label_13;
                                                                 |     }
    0x00016390 ldr r1, [sp, 0x38]                                |     r1 = var_38h;
    0x00016392 movs r2, 0x10                                     |     r2 = 0x10;
    0x00016394 mov r0, sl                                        |     r0 = sl;
    0x00016396 blx 0xdbec                                        |     r0 = sysconf ();
    0x0001639a mov r3, r0                                        |     r3 = r0;
                                                                 | label_18:
    0x0001639c ldrd r4, r1, [fp, -0x40]                          |     __asm ("ldrd r4, r1, [var_40h]");
    0x000163a0 ldrd r0, r2, [r7, 0x20]                           |     __asm ("ldrd r0, r2, [r7, 0x20]");
    0x000163a4 cmp r1, r2                                        |     
    0x000163a6 it eq                                             |     
                                                                 |     if (r1 == r2) {
    0x000163a8 cmpeq r4, r0                                      |         __asm ("cmpeq r4, r0");
                                                                 |     }
                                                                 |     if (r1 == r2) {
    0x000163aa bne 0x163d2                                       |         
    0x000163ac ldrd r4, r1, [fp, -0x48]                          |         __asm ("ldrd r4, r1, [var_48h]");
    0x000163b0 ldrd r0, r2, [r7, 0x18]                           |         __asm ("ldrd r0, r2, [r7, 0x18]");
    0x000163b4 cmp r1, r2                                        |         
    0x000163b6 it eq                                             |         
                                                                 |         if (r1 == r2) {
    0x000163b8 cmpeq r4, r0                                      |             __asm ("cmpeq r4, r0");
                                                                 |         }
                                                                 |         if (r1 != r2) {
    0x000163ba bne 0x163d2                                       |             goto label_92;
                                                                 |         }
    0x000163bc ldr r2, [sp, 0x94]                                |         r2 = *(arg_94h);
    0x000163be cmp r2, 2                                         |         
                                                                 |         if (r2 != 2) {
    0x000163c0 bne 0x16424                                       |             goto label_93;
                                                                 |         }
    0x000163c2 ldrd r4, r1, [fp, -0x38]                          |         __asm ("ldrd r4, r1, [var_bp_38h]");
    0x000163c6 ldrd r0, r2, [r7, 0x28]                           |         __asm ("ldrd r0, r2, [r7, 0x28]");
    0x000163ca cmp r1, r2                                        |         
    0x000163cc it eq                                             |         
                                                                 |         if (r1 == r2) {
    0x000163ce cmpeq r4, r0                                      |             __asm ("cmpeq r4, r0");
                                                                 |         }
                                                                 |         if (r1 == r2) {
    0x000163d0 beq 0x16424                                       |             goto label_93;
                                                                 |         }
                                                                 |     }
                                                                 | label_92:
    0x000163d2 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x000163d4 bne.w 0x164ec                                     |         goto label_40;
                                                                 |     }
                                                                 | label_91:
    0x000163d8 mov r4, r6                                        |     r4 = r6;
    0x000163da ldr.w sb, [sp, 0x44]                              |     sb = var_44h;
    0x000163de mov r0, r4                                        |     r0 = r4;
    0x000163e0 ldrd r8, r6, [sp, 0x48]                           |     __asm ("ldrd r8, r6, [var_48h]");
    0x000163e4 blx 0xe0ac                                        |     r0 = fcn_0000e0ac ();
    0x000163e8 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000163ea beq 0x1649a                                       |         goto label_56;
                                                                 |     }
                                                                 |     do {
    0x000163ec mov fp, r7                                        |         
    0x000163ee ldrd r7, r4, [sp, 0x24]                           |         __asm ("ldrd r7, r4, [var_24h]");
    0x000163f2 blx 0xe3d4                                        |         r0 = fcn_0000e3d4 ();
    0x000163f6 ldr r0, [r0]                                      |         r0 = *(r0);
    0x000163f8 ldr r5, [r7]                                      |         r5 = *(r7);
    0x000163fa ldr.w r6, [fp]                                    |         r6 = *(fp);
    0x000163fe bl 0x30b74                                        |         zbx_strerror ();
    0x00016402 ldr.w r1, [pc, 0x6d8]                             |         
    0x00016406 mov r3, r0                                        |         r3 = r0;
    0x00016408 mov r2, r6                                        |         r2 = r6;
    0x0001640a mov r0, r5                                        |         r0 = r5;
    0x0001640c add r1, pc                                        |         r1 = 0x2ceee;
    0x0001640e bl 0x44820                                        |         zbx_dsprintf ()
    0x00016412 str r0, [r7]                                      |         *(r7) = r0;
    0x00016414 b 0x16264                                         |         goto label_10;
                                                                 | label_88:
    0x00016416 movs r5, 0                                        |         r5 = 0;
    0x00016418 b 0x1607c                                         |         goto label_11;
                                                                 | label_83:
    0x0001641a mov r0, r5                                        |         r0 = r5;
    0x0001641c ldr r4, [sp, 0x28]                                |         r4 = var_28h;
    0x0001641e blx 0xe0ac                                        |         fcn_0000e0ac ();
    0x00016422 b 0x16264                                         |         goto label_10;
                                                                 | label_93:
    0x00016424 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x00016426 bne 0x164ec                                       |             goto label_40;
                                                                 |         }
                                                                 | label_19:
    0x00016428 mov r4, r6                                        |         r4 = r6;
    0x0001642a ldr.w sb, [sp, 0x44]                              |         sb = var_44h;
    0x0001642e ldrd r8, r6, [sp, 0x48]                           |         __asm ("ldrd r8, r6, [var_48h]");
    0x00016432 movs r2, 1                                        |         r2 = 1;
                                                                 | label_42:
    0x00016434 mov r0, r4                                        |         r0 = r4;
    0x00016436 str r2, [sp, 0x34]                                |         var_5ch = r2;
    0x00016438 blx 0xe0ac                                        |         r0 = fcn_0000e0ac ();
    0x0001643c cmp r0, 0                                         |         
    0x0001643e bne 0x163ec                                       |         
                                                                 |     } while (r0 != 0);
    0x00016440 ldr r2, [sp, 0x34]                                |     r2 = var_5ch;
    0x00016442 str r2, [sp, 0x40]                                |     var_sp_40h = r2;
                                                                 | label_34:
    0x00016444 ldr r3, [sp, 0x40]                                |     r3 = var_sp_40h;
    0x00016446 adds r3, 1                                        |     r3++;
    0x00016448 cmp r3, 5                                         |     
                                                                 |     if (r3 > 5) {
    0x0001644a bhi 0x164c4                                       |         goto label_94;
                                                                 |     }
    0x0001644c adr r2, 8                                         |     r2 = 8;
    0x0001644e ldr.w r3, [r2, r3, lsl 2]                         |     offset_0 = r3 << 2;
                                                                 |     r3 = *((r2 + offset_0));
    0x00016452 add r2, r3                                        |     r2 += r3;
                                                                 |     /* switch table (6 cases) at 0x16458 */
    0x00016454 bx r2                                             |     return uint32_t (*r2)() ();
                                                                 | label_21:
    0x00016470 movs r2, 0x10                                     |     r2 = 0x10;
    0x00016472 sub.w r1, sl, 0x1c                                |     r1 = sl - 0x1c;
    0x00016476 sub.w r0, fp, 0x1c                                |     r0 = fp - 0x1c;
    0x0001647a blx 0xdbec                                        |     r0 = sysconf ();
    0x0001647e cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00016480 bne.w 0x15ffc                                     |         goto label_3;
                                                                 |     }
    0x00016484 movs r2, 0x10                                     |     r2 = 0x10;
    0x00016486 mov r1, sl                                        |     r1 = sl;
    0x00016488 mov r0, fp                                        |     r0 = fp;
    0x0001648a blx 0xdbec                                        |     r0 = sysconf ();
    0x0001648e cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00016490 bne.w 0x15ffc                                     |         goto label_3;
                                                                 |     }
    0x00016494 cmp r5, 0                                         |     
                                                                 |     if (r5 != 0) {
    0x00016496 bne.w 0x15f98                                     |         goto label_6;
                                                                 |     }
                                                                 | label_56:
    0x0001649a movs r2, 0x32                                     |     r2 = 0x32;
    0x0001649c ldr.w r3, [pc, 0x618]                             |     r3 = *(0x16ab8);
    0x000164a0 strb.w r2, [sb]                                   |     *(sb) = r2;
    0x000164a4 ldr r2, [sp, 0x20]                                |     r2 = var_sp_20h;
    0x000164a6 str r2, [sl, -0x4c]                               |     *((sl - 0x4c)) = r2;
    0x000164aa ldr.w r4, [r8, r3]                                |     r4 = *((r8 + r3));
    0x000164ae b 0x15fb0                                         |     goto label_14;
                                                                 | label_30:
    0x000164b6 movs r3, 1                                        |     r3 = 1;
    0x000164b8 str.w r3, [r8, 0xc]                               |     __asm ("str.w r3, [r8, 0xc]");
    0x000164bc cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x000164be bne.w 0x16266                                     |         goto label_15;
                                                                 |     }
    0x000164c2 b 0x1626c                                         |     goto label_16;
                                                                 | label_94:
    0x000164c4 ldr.w r3, [pc, 0x5f0]                             |     r3 = *(0x16ab8);
    0x000164c8 ldr.w r4, [r8, r3]                                |     r4 = *((r8 + r3));
    0x000164cc b 0x15fb0                                         |     goto label_14;
                                                                 | label_76:
    0x000164ce movs r3, 1                                        |     r3 = 1;
    0x000164d0 str r3, [sp, 0x34]                                |     var_5ch = r3;
    0x000164d2 b 0x16158                                         |     goto label_17;
                                                                 | label_79:
    0x000164d4 movs r2, 0x10                                     |     r2 = 0x10;
    0x000164d6 ldr r1, [sp, 0x38]                                |     r1 = var_38h;
    0x000164d8 mov r0, sl                                        |     r0 = sl;
    0x000164da blx 0xdbec                                        |     sysconf ();
    0x000164de ldr r2, [sp, 0x3c]                                |     r2 = var_54h;
    0x000164e0 mov r3, r0                                        |     r3 = r0;
    0x000164e2 cmp r2, 1                                         |     
                                                                 |     if (r2 < 1) {
    0x000164e4 bls.w 0x1639c                                     |         goto label_18;
                                                                 |     }
    0x000164e8 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000164ea beq 0x16428                                       |         goto label_19;
                                                                 |     }
                                                                 | label_40:
    0x000164ec mov r0, r6                                        |     r0 = r6;
    0x000164ee blx 0xe0ac                                        |     r0 = fcn_0000e0ac ();
    0x000164f2 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000164f4 beq.w 0x16158                                     |         goto label_17;
                                                                 |     }
    0x000164f8 blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x000164fc ldr r0, [r0]                                      |     r0 = *(r0);
    0x000164fe ldr.w r4, [sb]                                    |     r4 = *(sb);
    0x00016502 ldr r6, [r7]                                      |     r6 = *(r7);
    0x00016504 bl 0x30b74                                        |     zbx_strerror ();
    0x00016508 ldr.w r1, [pc, 0x5d4]                             |     r1 = *(0x00016ae0);
    0x0001650c mov r3, r0                                        |     r3 = r0;
    0x0001650e mov r2, r6                                        |     r2 = r6;
    0x00016510 mov r0, r4                                        |     r0 = r4;
    0x00016512 add r1, pc                                        |     r1 += pc;
    0x00016514 bl 0x44820                                        |     zbx_dsprintf ()
    0x00016518 str.w r0, [sb]                                    |     __asm ("str.w r0, [sb]");
    0x0001651c b 0x16152                                         |     goto label_20;
                                                                 | label_73:
    0x0001651e ldrd r4, r1, [fp, -0x8]                           |     __asm ("ldrd r4, r1, [fp, -0x8]");
    0x00016522 ldrd r0, r3, [sl, -0x8]                           |     __asm ("ldrd r0, r3, [sl, -0x8]");
    0x00016526 cmp r1, r3                                        |     
    0x00016528 it eq                                             |     
                                                                 |     if (r1 != r3) {
    0x0001652a cmpeq r4, r0                                      |         __asm ("cmpeq r4, r0");
                                                                 |         goto label_95;
                                                                 |     }
                                                                 |     if (r1 == r3) {
                                                                 | label_95:
    0x0001652c beq 0x16470                                       |         goto label_21;
                                                                 |     }
    0x0001652e cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00016530 beq.w 0x15ffc                                     |         goto label_3;
                                                                 |     }
                                                                 | label_75:
    0x00016534 ldr r0, [sl, -0x60]                               |     r0 = *((sl - 0x60));
    0x00016538 ldr r1, [sp, 0x24]                                |     r1 = var_24h;
    0x0001653a bl 0x1596c                                        |     r0 = fcn_0001596c (r0, r1);
    0x0001653e adds r3, r0, 1                                    |     r3 = r0 + 1;
    0x00016540 mov r4, r0                                        |     r4 = r0;
                                                                 |     if (r3 == r0) {
    0x00016542 beq.w 0x162f8                                     |         goto label_22;
                                                                 |     }
    0x00016546 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x00016548 movs r1, 0                                        |     r1 = 0;
    0x0001654a ldr r2, [fp, -0x20]                               |     r2 = var_20h;
    0x0001654e str r3, [sp, 4]                                   |     var_4h = r3;
    0x00016550 ldr r3, [sl, -0x60]                               |     r3 = *((sl - 0x60));
    0x00016554 str r3, [sp]                                      |     *(sp) = r3;
    0x00016556 add r3, sp, 0x54                                  |     r3 += var_sp_54h;
    0x00016558 str r3, [sp, 0x34]                                |     var_5ch = r3;
    0x0001655a bl 0x15710                                        |     r0 = fcn_00015710 (r0, r1, r2, r3, r4, r5, r6);
    0x0001655e cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00016560 bne.w 0x168c4                                     |         goto label_54;
                                                                 |     }
    0x00016564 ldr r1, [sp, 0x34]                                |     r1 = var_5ch;
    0x00016566 movs r2, 0x10                                     |     r2 = 0x10;
    0x00016568 sub.w r0, fp, 0x1c                                |     r0 = fp - 0x1c;
    0x0001656c blx 0xdbec                                        |     r0 = sysconf ();
    0x00016570 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00016572 beq.w 0x168ce                                     |         goto label_96;
                                                                 |     }
                                                                 | label_55:
    0x00016576 mov r0, r4                                        |     r0 = r4;
    0x00016578 blx 0xe0ac                                        |     r0 = fcn_0000e0ac ();
    0x0001657c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001657e beq.w 0x15ffc                                     |         goto label_3;
                                                                 |     }
                                                                 | label_43:
    0x00016582 mov fp, r7                                        |     
    0x00016584 ldrd r7, r4, [sp, 0x24]                           |     __asm ("ldrd r7, r4, [var_24h]");
    0x00016588 blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x0001658c ldr r0, [r0]                                      |     r0 = *(r0);
    0x0001658e ldr r5, [r7]                                      |     r5 = *(r7);
    0x00016590 ldr.w r6, [fp]                                    |     r6 = *(fp);
    0x00016594 bl 0x30b74                                        |     zbx_strerror ();
    0x00016598 ldr.w r1, [pc, 0x548]                             |     r1 = *(0x00016ae4);
    0x0001659c mov r3, r0                                        |     r3 = r0;
    0x0001659e mov r2, r6                                        |     r2 = r6;
    0x000165a0 mov r0, r5                                        |     r0 = r5;
    0x000165a2 add r1, pc                                        |     r1 += pc;
    0x000165a4 bl 0x44820                                        |     zbx_dsprintf ()
    0x000165a8 str r0, [r7]                                      |     *(r7) = r0;
    0x000165aa b 0x16264                                         |     goto label_10;
                                                                 | label_60:
    0x000165ac cmp.w sl, 1                                       |     
                                                                 |     if (sl == 1) {
    0x000165b0 beq.w 0x1626e                                     |         goto label_23;
                                                                 |     }
    0x000165b4 ldr r3, [sp, 0x90]                                |     r3 = *(arg_90h);
    0x000165b6 cmp r3, 1                                         |     
                                                                 |     if (r3 <= 1) {
    0x000165b8 ble.w 0x1626e                                     |         goto label_23;
                                                                 |     }
                                                                 | label_44:
    0x000165bc ldr.w r3, [pc, 0x4f8]                             |     
    0x000165c0 ldr.w r3, [sb, r3]                                |     r3 = *((sb + r3));
    0x000165c4 ldr r3, [r3]                                      |     r3 = *(0x16ab8);
    0x000165c6 cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x000165c8 bgt.w 0x16a12                                     |         goto label_97;
                                                                 |     }
                                                                 | label_53:
    0x000165cc ldr.w r5, [pc, 0x518]                             |     
    0x000165d0 movs r6, 1                                        |     r6 = 1;
    0x000165d2 ldr r7, [sp, 0x2c]                                |     r7 = var_2ch;
    0x000165d4 movs r2, 0                                        |     r2 = 0;
    0x000165d6 movw r1, 0x4ad                                    |     r1 = 0x4ad;
    0x000165da str r6, [sp]                                      |     *(sp) = r6;
    0x000165dc add r5, pc                                        |     r5 = 0x2d0c8;
    0x000165de mov r3, r7                                        |     r3 = r7;
    0x000165e0 mov r0, r5                                        |     r0 = r5;
    0x000165e2 bl 0x40d3c                                        |     r0 = zbx_calloc2 ();
    0x000165e6 mov r3, r0                                        |     r3 = r0;
    0x000165e8 movs r2, 0                                        |     r2 = 0;
    0x000165ea mov r0, r5                                        |     r0 = r5;
    0x000165ec movw r1, 0x4ae                                    |     r1 = 0x4ae;
    0x000165f0 mov r5, r3                                        |     r5 = r3;
    0x000165f2 str r6, [sp]                                      |     *(sp) = r6;
    0x000165f4 ldr r3, [sp, 0x90]                                |     r3 = *(arg_90h);
    0x000165f6 bl 0x40d3c                                        |     zbx_calloc2 ();
    0x000165fa cmp r7, 0                                         |     
    0x000165fc mov sb, r0                                        |     sb = r0;
                                                                 |     if (r7 <= 0) {
    0x000165fe ble.w 0x16a5c                                     |         goto label_98;
                                                                 |     }
    0x00016602 ldr r3, [sp, 0x90]                                |     r3 = *(arg_90h);
    0x00016604 mov r1, r5                                        |     r1 = r5;
    0x00016606 strd sb, r5, [sp, 0x14]                           |     __asm ("strd sb, r5, [var_14h]");
    0x0001660a rsb.w lr, r4, 0                                   |     lr = r4 - ;
    0x0001660e mov ip, r4                                        |     
    0x00016610 subs r6, r3, 1                                    |     r6 = r3 - 1;
    0x00016612 ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
    0x00016614 adds r0, r4, r6                                   |     r0 = r4 + r6;
    0x00016616 str r6, [sp, 0x1c]                                |     var_1ch = r6;
    0x00016618 add.w fp, r5, r3                                  |     
    0x0001661c ldr r5, [sp, 0x90]                                |     r5 = *(arg_90h);
    0x0001661e mov sb, r3                                        |     sb = r3;
                                                                 | label_25:
    0x00016620 cmp r5, 0                                         |     
                                                                 |     if (r5 <= 0) {
    0x00016622 ble 0x16660                                       |         goto label_31;
                                                                 |     }
    0x00016624 add.w r3, ip, -1                                  |     r3 = ip + -1;
    0x00016628 mov.w r7, -1                                      |     r7 = -1;
    0x0001662c movs r6, 0                                        |     r6 = 0;
    0x0001662e add.w r8, lr, 1                                   |     r8 = lr + 1;
    0x00016632 b 0x1663a                                         |     
                                                                 |     while (r2 > 1) {
                                                                 | label_24:
    0x00016634 cmp r0, r3                                        |         
                                                                 |         if (r0 == r3) {
    0x00016636 beq.w 0x16740                                     |             goto label_99;
                                                                 |         }
    0x0001663a mov sl, r3                                        |         sl = r3;
    0x0001663c ldrb r2, [r3, 1]!                                 |         r2 = *((r3 += 1));
    0x00016640 subs r2, 0x31                                     |         r2 -= 0x31;
    0x00016642 cmp r2, 1                                         |         
    0x00016644 bhi 0x16634                                       |         
                                                                 |     }
                                                                 |     if (r6 == 0) {
    0x00016646 cbnz r6, 0x16660                                  |         
    0x00016648 add.w r7, r8, sl                                  |         r7 = r8 + sl;
    0x0001664c movs r6, 1                                        |         r6 = 1;
    0x0001664e b 0x16634                                         |         goto label_24;
                                                                 | label_32:
    0x00016650 cmp.w sl, -1                                      |         
    0x00016654 itttt ne                                          |         
                                                                 |         if (sl == -1) {
    0x00016656 ldrne r3, [sp, 0x14]                              |             r3 = var_14h;
                                                                 |         }
                                                                 |         if (sl == -1) {
    0x00016658 movne r2, 0x31                                    |             r2 = 0x31;
                                                                 |         }
                                                                 |         if (sl == -1) {
    0x0001665a strbne r2, [r1]                                   |             *(r1) = r2;
                                                                 |         }
                                                                 |         if (sl != -1) {
    0x0001665c strbne r2, [r3, r8]                               |             *((r3 + r8)) = r2;
                                                                 |             goto label_31;
                                                                 |         }
                                                                 |     }
                                                                 | label_31:
    0x00016660 adds r1, 1                                        |     r1++;
    0x00016662 add r0, r5                                        |     r0 += r5;
    0x00016664 cmp fp, r1                                        |     
    0x00016666 add ip, r5                                        |     
    0x00016668 sub.w lr, lr, r5                                  |     lr -= r5;
                                                                 |     if (fp != r1) {
    0x0001666c bne 0x16620                                       |         goto label_25;
                                                                 |     }
    0x0001666e ldr r3, [sp, 0x90]                                |     r3 = *(arg_90h);
    0x00016670 ldr r2, [sp, 0x2c]                                |     r2 = var_2ch;
    0x00016672 ldrd sb, r5, [sp, 0x14]                           |     __asm ("ldrd sb, r5, [var_14h]");
    0x00016676 ldr r6, [sp, 0x1c]                                |     r6 = var_1ch;
    0x00016678 cmp r3, r2                                        |     
                                                                 |     if (r3 < r2) {
    0x0001667a blt.w 0x169c6                                     |         goto label_100;
                                                                 |     }
    0x0001667e mov r8, r2                                        |     r8 = r2;
    0x00016680 ldr r2, [sp, 0x90]                                |     r2 = *(arg_90h);
    0x00016682 subs r6, r4, 1                                    |     r6 = r4 - 1;
    0x00016684 movs r3, 0                                        |     r3 = 0;
                                                                 | label_27:
    0x00016686 ldrb r1, [r5, r3]                                 |     r1 = *((r5 + r3));
    0x00016688 cmp r1, 0x31                                      |     
                                                                 |     if (r1 == 0x31) {
    0x0001668a beq 0x166b6                                       |         goto label_101;
                                                                 |     }
    0x0001668c mov r0, r6                                        |     r0 = r6;
    0x0001668e movs r1, 0                                        |     r1 = 0;
    0x00016690 b 0x16698                                         |     
                                                                 |     while (r7 > 1) {
                                                                 | label_26:
    0x00016692 adds r1, 1                                        |         r1++;
    0x00016694 cmp r2, r1                                        |         
                                                                 |         if (r2 <= r1) {
    0x00016696 ble 0x166b6                                       |             goto label_101;
                                                                 |         }
    0x00016698 ldrb r7, [r0, 1]!                                 |         r7 = *((r0 += 1));
    0x0001669c subs r7, 0x31                                     |         r7 -= 0x31;
    0x0001669e cmp r7, 1                                         |         
    0x000166a0 bhi 0x16692                                       |         
                                                                 |     }
    0x000166a2 ldrb.w r7, [sb, r1]                               |     r7 = *((sb + r1));
    0x000166a6 cmp r7, 0x31                                      |     
                                                                 |     if (r7 == 0x31) {
    0x000166a8 beq 0x16692                                       |         goto label_26;
                                                                 |     }
    0x000166aa stm.w sp, {r1, r5, sb}                            |     *(sp) = r1;
                                                                 |     *((sp + 4)) = r5;
                                                                 |     *((sp + 8)) = sb;
    0x000166ae mov r0, r4                                        |     r0 = r4;
    0x000166b0 mov r1, r8                                        |     r1 = r8;
    0x000166b2 bl 0x15390                                        |     fcn_00015390 (r0, r1, r2, r3, r4, r5);
                                                                 | label_101:
    0x000166b6 adds r3, 1                                        |     r3++;
    0x000166b8 add r6, r2                                        |     r6 += r2;
    0x000166ba cmp r8, r3                                        |     
                                                                 |     if (r8 != r3) {
    0x000166bc bne 0x16686                                       |         goto label_27;
                                                                 |     }
                                                                 | label_52:
    0x000166be cmp.w sb, 0                                       |     
                                                                 |     if (sb != 0) {
    0x000166c2 beq 0x166ca                                       |         
    0x000166c4 mov r0, sb                                        |         r0 = sb;
    0x000166c6 blx 0xde30                                        |         fcn_0000de30 ();
                                                                 |     }
                                                                 | label_57:
    0x000166ca mov r0, r5                                        |     r0 = r5;
    0x000166cc blx 0xde30                                        |     fcn_0000de30 ();
    0x000166d0 b 0x1626e                                         |     goto label_23;
                                                                 | label_81:
    0x000166d2 movs r2, 0x10                                     |     r2 = 0x10;
    0x000166d4 sub.w r1, sl, 0x1c                                |     r1 = sl - 0x1c;
    0x000166d8 sub.w r0, fp, 0x1c                                |     r0 = fp - 0x1c;
    0x000166dc blx 0xdbec                                        |     r0 = sysconf ();
    0x000166e0 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000166e2 bne.w 0x15ffc                                     |         goto label_3;
                                                                 |     }
    0x000166e6 ldrd r0, r2, [fp, -0x8]                           |     __asm ("ldrd r0, r2, [fp, -0x8]");
    0x000166ea ldrd r1, r3, [sl, -0x8]                           |     __asm ("ldrd r1, r3, [sl, -0x8]");
    0x000166ee cmp r2, r3                                        |     
    0x000166f0 it eq                                             |     
                                                                 |     if (r2 != r3) {
    0x000166f2 cmpeq r0, r1                                      |         __asm ("cmpeq r0, r1");
                                                                 |         goto label_102;
                                                                 |     }
                                                                 |     if (r2 != r3) {
                                                                 | label_102:
    0x000166f4 bne.w 0x16184                                     |         goto label_28;
                                                                 |     }
    0x000166f8 movs r2, 0x10                                     |     r2 = 0x10;
    0x000166fa mov r1, sl                                        |     r1 = sl;
    0x000166fc mov r0, fp                                        |     r0 = fp;
    0x000166fe blx 0xdbec                                        |     r0 = sysconf ();
    0x00016702 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00016704 bne.w 0x15ffc                                     |         goto label_3;
                                                                 |     }
    0x00016708 ldr r2, [sp, 0x14]                                |     r2 = var_14h;
    0x0001670a ldr r3, [fp, -0x54]                               |     r3 = var_54h;
    0x0001670e cmp r2, 3                                         |     
                                                                 |     if (r2 == 3) {
    0x00016710 beq.w 0x16874                                     |         goto label_103;
                                                                 |     }
    0x00016714 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00016716 bne.w 0x16290                                     |         goto label_29;
                                                                 |     }
    0x0001671a mov sb, r8                                        |     sb = r8;
    0x0001671c ldr r4, [sp, 0x28]                                |     r4 = var_28h;
    0x0001671e ldr.w r8, [sp, 0x30]                              |     r8 = var_60h;
                                                                 | label_38:
    0x00016722 ldr r3, [pc, 0x394]                               |     
    0x00016724 ldr.w r3, [sb, r3]                                |     r3 = *((sb + r3));
    0x00016728 ldr r3, [r3]                                      |     r3 = *(0x16aba);
    0x0001672a cmp r3, 2                                         |     
                                                                 |     if (r3 <= 2) {
    0x0001672c ble.w 0x164b6                                     |         goto label_30;
                                                                 |     }
    0x00016730 ldr r1, [pc, 0x3b8]                               |     
    0x00016732 movs r0, 3                                        |     r0 = 3;
    0x00016734 ldr.w r2, [r8]                                    |     r2 = *(r8);
    0x00016738 add r1, pc                                        |     r1 = 0x2d228;
    0x0001673a bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x0001673e b 0x164b6                                         |     goto label_30;
                                                                 | label_99:
    0x00016740 adds r6, r7, 1                                    |     r6 = r7 + 1;
                                                                 |     if (r6 == r7) {
    0x00016742 beq 0x16660                                       |         goto label_31;
                                                                 |     }
    0x00016744 mov r3, r7                                        |     r3 = r7;
    0x00016746 movs r2, 0                                        |     r2 = 0;
    0x00016748 adds r6, r4, r7                                   |     r6 = r4 + r7;
    0x0001674a mov.w sl, -1                                      |     sl = -1;
    0x0001674e mov r7, r2                                        |     r7 = r2;
    0x00016750 mov r8, r3                                        |     r8 = r3;
    0x00016752 b 0x1675e                                         |     goto label_104;
                                                                 | label_33:
    0x00016754 adds r2, 1                                        |     r2++;
    0x00016756 add r6, r5                                        |     r6 += r5;
    0x00016758 cmp sb, r2                                        |     
                                                                 |     if (sb == r2) {
    0x0001675a beq.w 0x16650                                     |         goto label_32;
                                                                 |     }
                                                                 | label_104:
    0x0001675e ldrb r3, [r6]                                     |     r3 = *(r6);
    0x00016760 subs r3, 0x31                                     |     r3 -= 0x31;
    0x00016762 cmp r3, 1                                         |     
                                                                 |     if (r3 > 1) {
    0x00016764 bhi 0x16754                                       |         goto label_33;
                                                                 |     }
    0x00016766 cmp r7, 0                                         |     
                                                                 |     if (r7 != 0) {
    0x00016768 bne.w 0x16660                                     |         goto label_31;
                                                                 |     }
    0x0001676c mov sl, r2                                        |     sl = r2;
    0x0001676e movs r7, 1                                        |     r7 = 1;
    0x00016770 b 0x16754                                         |     goto label_33;
                                                                 | label_80:
    0x00016772 ldr r3, [sp, 0x34]                                |     r3 = var_5ch;
    0x00016774 ldrd sb, r8, [sp, 0x44]                           |     __asm ("ldrd sb, r8, [var_44h]");
    0x00016778 ldr r6, [sp, 0x4c]                                |     r6 = var_4ch;
    0x0001677a cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0001677c bne.w 0x16444                                     |         goto label_34;
                                                                 |     }
    0x00016780 ldr r1, [sp, 0x24]                                |     r1 = var_24h;
    0x00016782 ldr r0, [fp, -0x60]                               |     r0 = var_60h;
    0x00016786 bl 0x1596c                                        |     r0 = fcn_0001596c (r0, r1);
    0x0001678a adds r1, r0, 1                                    |     r1 = r0 + 1;
    0x0001678c mov r5, r0                                        |     r5 = r0;
                                                                 |     if (r1 == r0) {
    0x0001678e beq.w 0x15ffc                                     |         goto label_3;
                                                                 |     }
    0x00016792 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x00016794 ldr r2, [sl, -0x20]                               |     r2 = *((sl - 0x20));
    0x00016798 ldr r1, [sp, 0x34]                                |     r1 = var_5ch;
    0x0001679a str r3, [sp, 4]                                   |     var_4h = r3;
    0x0001679c ldr r3, [fp, -0x60]                               |     r3 = var_60h;
    0x000167a0 str r3, [sp]                                      |     *(sp) = r3;
    0x000167a2 add r3, sp, 0x54                                  |     r3 += var_sp_54h;
    0x000167a4 str r3, [sp, 0x34]                                |     var_5ch = r3;
    0x000167a6 bl 0x15710                                        |     fcn_00015710 (r0, r1, r2, r3, r4, r5, r6);
    0x000167a8 vtbl.8 d2, {d3}, d0                               |     __asm ("vtbl.8 d2, {d3}, d0");
                                                                 |     if (r1 != r0) {
    0x000167ac bne.w 0x169b8                                     |         goto label_58;
                                                                 |     }
    0x000167b0 ldr r1, [sp, 0x34]                                |     r1 = var_5ch;
    0x000167b2 movs r2, 0x10                                     |     r2 = 0x10;
    0x000167b4 sub.w r0, sl, 0x1c                                |     r0 = sl - 0x1c;
    0x000167b8 blx 0xdbec                                        |     sysconf ();
    0x000167bc ldr r3, [sp, 0x3c]                                |     r3 = var_54h;
    0x000167be cmp r3, 1                                         |     
                                                                 |     if (r3 < 1) {
    0x000167c0 bls 0x1680c                                       |         goto label_105;
                                                                 |     }
                                                                 | label_35:
    0x000167c2 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000167c4 bne.w 0x169b8                                     |         goto label_58;
                                                                 |     }
    0x000167c8 movs r3, 1                                        |     r3 = 1;
    0x000167ca str r3, [sp, 0x40]                                |     var_sp_40h = r3;
                                                                 | label_36:
    0x000167cc ldrd r1, r3, [sl, -0x8]                           |     __asm ("ldrd r1, r3, [sl, -0x8]");
    0x000167d0 orrs r3, r1                                       |     r3 |= r1;
                                                                 |     if (r3 != r1) {
    0x000167d2 bne.w 0x16a6a                                     |         goto label_106;
                                                                 |     }
    0x000167d6 mov r0, r5                                        |     r0 = r5;
    0x000167d8 blx 0xe0ac                                        |     r0 = fcn_0000e0ac ();
    0x000167dc cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000167de beq.w 0x16444                                     |         goto label_34;
                                                                 |     }
                                                                 | label_49:
    0x000167e2 ldrd r7, r4, [sp, 0x24]                           |     __asm ("ldrd r7, r4, [var_24h]");
    0x000167e6 ldr.w r8, [sp, 0x30]                              |     r8 = var_60h;
    0x000167ea blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x000167ee ldr r0, [r0]                                      |     r0 = *(r0);
    0x000167f0 ldr r5, [r7]                                      |     r5 = *(r7);
    0x000167f2 ldr.w r6, [r8]                                    |     r6 = *(r8);
    0x000167f6 bl 0x30b74                                        |     zbx_strerror ();
    0x000167fa ldr r1, [pc, 0x2f4]                               |     
    0x000167fc mov r3, r0                                        |     r3 = r0;
    0x000167fe mov r2, r6                                        |     r2 = r6;
    0x00016800 mov r0, r5                                        |     r0 = r5;
    0x00016802 add r1, pc                                        |     r1 = 0x2d2f8;
    0x00016804 bl 0x44820                                        |     zbx_dsprintf ()
    0x00016808 str r0, [r7]                                      |     *(r7) = r0;
    0x0001680a b 0x16264                                         |     goto label_10;
                                                                 | label_105:
    0x0001680c ldrd r4, r1, [fp, -0x40]                          |     __asm ("ldrd r4, r1, [var_40h]");
    0x00016810 ldrd r3, r2, [sl, -0x40]                          |     __asm ("ldrd r3, r2, [sl, -0x40]");
    0x00016814 cmp r1, r2                                        |     
    0x00016816 it eq                                             |     
                                                                 |     if (r1 == r2) {
    0x00016818 cmpeq r4, r3                                      |         __asm ("cmpeq r4, r3");
                                                                 |     }
                                                                 |     if (r1 != r2) {
    0x0001681a bne 0x16842                                       |         goto label_107;
                                                                 |     }
    0x0001681c ldrd r4, r1, [fp, -0x48]                          |     __asm ("ldrd r4, r1, [var_48h]");
    0x00016820 ldrd r3, r2, [sl, -0x48]                          |     __asm ("ldrd r3, r2, [sl, -0x48]");
    0x00016824 cmp r1, r2                                        |     
    0x00016826 it eq                                             |     
                                                                 |     if (r1 == r2) {
    0x00016828 cmpeq r4, r3                                      |         __asm ("cmpeq r4, r3");
                                                                 |     }
                                                                 |     if (r1 != r2) {
    0x0001682a bne 0x16842                                       |         goto label_107;
                                                                 |     }
    0x0001682c ldr r3, [sp, 0x94]                                |     r3 = *(arg_94h);
    0x0001682e cmp r3, 2                                         |     
                                                                 |     if (r3 != 2) {
    0x00016830 bne 0x167c2                                       |         goto label_35;
                                                                 |     }
    0x00016832 ldrd r4, r1, [fp, -0x38]                          |     __asm ("ldrd r4, r1, [var_bp_38h]");
    0x00016836 ldrd r3, r2, [sl, -0x38]                          |     __asm ("ldrd r3, r2, [sl, -0x38]");
    0x0001683a cmp r1, r2                                        |     
    0x0001683c it eq                                             |     
                                                                 |     if (r1 != r2) {
    0x0001683e cmpeq r4, r3                                      |         __asm ("cmpeq r4, r3");
                                                                 |         goto label_108;
                                                                 |     }
                                                                 |     if (r1 == r2) {
                                                                 | label_108:
    0x00016840 beq 0x167c2                                       |         goto label_35;
                                                                 |     }
                                                                 | label_107:
    0x00016842 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00016844 bne.w 0x169b8                                     |         goto label_58;
                                                                 |     }
    0x00016848 movs r3, 4                                        |     r3 = 4;
    0x0001684a str r3, [sp, 0x40]                                |     var_sp_40h = r3;
    0x0001684c b 0x167cc                                         |     goto label_36;
                                                                 | label_84:
    0x0001684e mov r0, r5                                        |     r0 = r5;
    0x00016850 blx 0xe0ac                                        |     r0 = fcn_0000e0ac ();
    0x00016854 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00016856 bne.w 0x1623c                                     |         goto label_37;
                                                                 |     }
    0x0001685a b.w 0x15ffc                                       |     goto label_3;
                                                                 | label_82:
    0x0001685e ldr.w sl, [sp, 0x14]                              |     sl = var_14h;
    0x00016862 mov sb, r8                                        |     sb = r8;
    0x00016864 ldr r4, [sp, 0x28]                                |     r4 = var_28h;
    0x00016866 ldr.w r8, [sp, 0x30]                              |     r8 = var_60h;
    0x0001686a cmp.w sl, 3                                       |     
                                                                 |     if (sl == 3) {
    0x0001686e beq.w 0x164b6                                     |         goto label_30;
                                                                 |     }
    0x00016872 b 0x16722                                         |     goto label_38;
                                                                 | label_103:
    0x00016874 ldr r2, [pc, 0x240]                               |     r2 = *(0x16ab8);
    0x00016876 ldr.w r4, [r8, r2]                                |     r4 = *((r8 + r2));
    0x0001687a b.w 0x15fa4                                       |     goto label_5;
                                                                 | label_90:
    0x0001687e ldrd r4, r2, [fp, -0x48]                          |     __asm ("ldrd r4, r2, [var_48h]");
    0x00016882 ldrd r1, r3, [r7, 0x18]                           |     __asm ("ldrd r1, r3, [r7, 0x18]");
    0x00016886 cmp r2, r3                                        |     
    0x00016888 it eq                                             |     
                                                                 |     if (r2 == r3) {
    0x0001688a cmpeq r4, r1                                      |         __asm ("cmpeq r4, r1");
                                                                 |     }
                                                                 |     if (r2 != r3) {
    0x0001688c bne 0x168a8                                       |         goto label_109;
                                                                 |     }
    0x0001688e ldr r3, [sp, 0x94]                                |     r3 = *(arg_94h);
    0x00016890 cmp r3, 2                                         |     
                                                                 |     if (r3 != 2) {
    0x00016892 bne.w 0x16120                                     |         goto label_39;
                                                                 |     }
    0x00016896 ldrd r4, r2, [fp, -0x38]                          |     __asm ("ldrd r4, r2, [var_bp_38h]");
    0x0001689a ldrd r1, r3, [r7, 0x28]                           |     __asm ("ldrd r1, r3, [r7, 0x28]");
    0x0001689e cmp r2, r3                                        |     
    0x000168a0 it eq                                             |     
                                                                 |     if (r2 != r3) {
    0x000168a2 cmpeq r4, r1                                      |         __asm ("cmpeq r4, r1");
                                                                 |         goto label_110;
                                                                 |     }
                                                                 |     if (r2 == r3) {
                                                                 | label_110:
    0x000168a4 beq.w 0x16120                                     |         goto label_39;
                                                                 |     }
                                                                 | label_109:
    0x000168a8 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000168aa bne.w 0x164ec                                     |         goto label_40;
                                                                 |     }
    0x000168ae movs r2, 4                                        |     r2 = 4;
    0x000168b0 b 0x16128                                         |     goto label_41;
                                                                 | label_78:
    0x000168b2 mov r4, r6                                        |     r4 = r6;
    0x000168b4 ldr.w sb, [sp, 0x44]                              |     sb = var_44h;
    0x000168b8 ldrd r8, r6, [sp, 0x48]                           |     __asm ("ldrd r8, r6, [var_48h]");
    0x000168bc b 0x16434                                         |     goto label_42;
                                                                 | label_89:
    0x000168be ldr r5, [sp, 0x14]                                |     r5 = var_14h;
    0x000168c0 b.w 0x1607c                                       |     goto label_11;
                                                                 | label_54:
    0x000168c4 mov r0, r4                                        |     r0 = r4;
    0x000168c6 ldr r4, [sp, 0x28]                                |     r4 = var_28h;
    0x000168c8 blx 0xe0ac                                        |     fcn_0000e0ac ();
    0x000168cc b 0x16264                                         |     goto label_10;
                                                                 | label_96:
    0x000168ce ldrd r1, r3, [fp, -0x8]                           |     __asm ("ldrd r1, r3, [fp, -0x8]");
    0x000168d2 cmp r5, 0                                         |     
    0x000168d4 ite eq                                            |     
                                                                 |     if (r5 != 0) {
    0x000168d6 moveq r2, 4                                       |         r2 = 4;
                                                                 |     }
                                                                 |     if (r5 == 0) {
    0x000168d8 movne r2, 1                                       |         r2 = 1;
                                                                 |     }
    0x000168da str r2, [sp, 0x40]                                |     var_sp_40h = r2;
    0x000168dc orrs r3, r1                                       |     r3 |= r1;
                                                                 |     if (r3 != r1) {
    0x000168de bne.w 0x16a1e                                     |         goto label_111;
                                                                 |     }
    0x000168e2 mov r0, r4                                        |     r0 = r4;
    0x000168e4 blx 0xe0ac                                        |     r0 = fcn_0000e0ac ();
    0x000168e8 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000168ea beq.w 0x16444                                     |         goto label_34;
                                                                 |     }
    0x000168ee b 0x16582                                         |     goto label_43;
                                                                 | label_69:
    0x000168f0 ldr.w sl, [sp, 0x14]                              |     sl = var_14h;
    0x000168f4 mov sb, r8                                        |     sb = r8;
    0x000168f6 ldr r4, [sp, 0x28]                                |     r4 = var_28h;
    0x000168f8 cmp.w sl, 1                                       |     
                                                                 |     if (sl == 1) {
    0x000168fc beq.w 0x1626e                                     |         goto label_23;
                                                                 |     }
    0x00016900 ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
    0x00016902 ldr r2, [sp, 0x90]                                |     r2 = *(arg_90h);
    0x00016904 cmp r2, 1                                         |     
    0x00016906 it le                                             |     
                                                                 |     if (r2 > 1) {
    0x00016908 cmple r3, 1                                       |         __asm ("cmple r3, 1");
                                                                 |         goto label_112;
                                                                 |     }
                                                                 |     if (r2 <= 1) {
                                                                 | label_112:
    0x0001690a ble.w 0x1626e                                     |         goto label_23;
                                                                 |     }
    0x0001690e cmp r2, 0                                         |     
    0x00016910 add.w r0, r2, -1                                  |     r0 = r2 + -1;
    0x00016914 add r0, r4                                        |     r0 += r4;
    0x00016916 mov r1, r4                                        |     r1 = r4;
    0x00016918 rsb.w ip, r4, 0                                   |     
                                                                 |     if (r2 <= 0) {
    0x0001691c ble.w 0x165bc                                     |         goto label_44;
                                                                 |     }
    0x00016920 ldr.w sl, [sp, 0x20]                              |     sl = var_sp_20h;
    0x00016924 mov.w lr, 0                                       |     lr = 0;
    0x00016928 mov r5, r2                                        |     r5 = r2;
                                                                 | label_46:
    0x0001692a subs r3, r1, 1                                    |     r3 = r1 - 1;
    0x0001692c mov.w r7, -1                                      |     r7 = -1;
    0x00016930 movs r6, 0                                        |     r6 = 0;
    0x00016932 add.w r8, ip, 1                                   |     r8 = ip + 1;
    0x00016936 b 0x1693c                                         |     
                                                                 |     while (r2 > 1) {
                                                                 | label_45:
    0x00016938 cmp r0, r3                                        |         
                                                                 |         if (r0 == r3) {
    0x0001693a beq 0x16956                                       |             goto label_113;
                                                                 |         }
    0x0001693c mov fp, r3                                        |         
    0x0001693e ldrb r2, [r3, 1]!                                 |         r2 = *((r3 += 1));
    0x00016942 subs r2, 0x31                                     |         r2 -= 0x31;
    0x00016944 cmp r2, 1                                         |         
    0x00016946 bhi 0x16938                                       |         
                                                                 |     }
    0x00016948 cmp r6, 0                                         |     
                                                                 |     if (r6 != 0) {
    0x0001694a bne.w 0x165bc                                     |         goto label_44;
                                                                 |     }
    0x0001694e add.w r7, r8, fp                                  |     r7 = r8 + fp;
    0x00016952 movs r6, 1                                        |     r6 = 1;
    0x00016954 b 0x16938                                         |     goto label_45;
                                                                 | label_113:
    0x00016956 adds r7, 1                                        |     r7++;
                                                                 |     if (r7 == 1) {
    0x00016958 beq.w 0x165bc                                     |         goto label_44;
                                                                 |     }
    0x0001695c cmp sl, lr                                        |     
    0x0001695e add r0, r5                                        |     r0 += r5;
    0x00016960 add r1, r5                                        |     r1 += r5;
    0x00016962 sub.w ip, ip, r5                                  |     
    0x00016966 add.w r3, lr, 1                                   |     r3 = lr + 1;
                                                                 |     if (sl != lr) {
    0x0001696a beq 0x16970                                       |         
    0x0001696c mov lr, r3                                        |         lr = r3;
    0x0001696e b 0x1692a                                         |         goto label_46;
                                                                 |     }
    0x00016970 ldr r3, [sp, 0x90]                                |     r3 = *(arg_90h);
    0x00016972 mov r1, r4                                        |     r1 = r4;
    0x00016974 ldr r0, [sp, 0x2c]                                |     r0 = var_2ch;
    0x00016976 mov lr, r4                                        |     lr = r4;
    0x00016978 adds r7, r4, r3                                   |     r7 = r4 + r3;
    0x0001697a mov r5, r3                                        |     r5 = r3;
                                                                 | label_48:
    0x0001697c movs r2, 0                                        |     r2 = 0;
    0x0001697e mov.w ip, -1                                      |     
    0x00016982 mov r6, r2                                        |     r6 = r2;
    0x00016984 b 0x1698e                                         |     
                                                                 |     while (r3 > 1) {
                                                                 | label_47:
    0x00016986 adds r2, 1                                        |         r2++;
    0x00016988 add r1, r5                                        |         r1 += r5;
    0x0001698a cmp r0, r2                                        |         
                                                                 |         if (r0 == r2) {
    0x0001698c beq 0x169a2                                       |             goto label_114;
                                                                 |         }
    0x0001698e ldrb r3, [r1]                                     |         r3 = *(r1);
    0x00016990 subs r3, 0x31                                     |         r3 -= 0x31;
    0x00016992 cmp r3, 1                                         |         
    0x00016994 bhi 0x16986                                       |         
                                                                 |     }
    0x00016996 cmp r6, 0                                         |     
                                                                 |     if (r6 != 0) {
    0x00016998 bne.w 0x165bc                                     |         goto label_44;
                                                                 |     }
    0x0001699c mov ip, r2                                        |     
    0x0001699e movs r6, 1                                        |     r6 = 1;
    0x000169a0 b 0x16986                                         |     goto label_47;
                                                                 | label_114:
    0x000169a2 cmp.w ip, -1                                      |     
                                                                 |     if (ip == -1) {
    0x000169a6 beq.w 0x165bc                                     |         goto label_44;
                                                                 |     }
    0x000169aa add.w lr, lr, 1                                   |     lr++;
    0x000169ae cmp r7, lr                                        |     
                                                                 |     if (r7 == lr) {
    0x000169b0 beq.w 0x1626e                                     |         goto label_23;
                                                                 |     }
    0x000169b4 mov r1, lr                                        |     r1 = lr;
    0x000169b6 b 0x1697c                                         |     goto label_48;
                                                                 | label_58:
    0x000169b8 mov r0, r5                                        |     r0 = r5;
    0x000169ba blx 0xe0ac                                        |     r0 = fcn_0000e0ac ();
    0x000169be cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000169c0 beq.w 0x15ffc                                     |         goto label_3;
                                                                 |     }
    0x000169c4 b 0x167e2                                         |     goto label_49;
                                                                 | label_100:
    0x000169c6 ldr r2, [sp, 0x90]                                |     r2 = *(arg_90h);
    0x000169c8 ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
    0x000169ca add.w r8, r4, r2                                  |     r8 = r4 + r2;
    0x000169ce subs r3, 1                                        |     r3--;
    0x000169d0 mul r7, r2, r3                                    |     r7 = r2 * r3;
                                                                 | label_51:
    0x000169d4 ldrb r1, [r5, r3]                                 |     r1 = *((r5 + r3));
    0x000169d6 cmp r1, 0x31                                      |     
                                                                 |     if (r1 == 0x31) {
    0x000169d8 beq 0x16a08                                       |         goto label_115;
                                                                 |     }
    0x000169da cmp r6, 0                                         |     
    0x000169dc mov r0, r6                                        |     r0 = r6;
                                                                 |     if (r6 < 0) {
    0x000169de blt 0x16a08                                       |         goto label_115;
                                                                 |     }
    0x000169e0 add.w ip, r8, r7                                  |     
    0x000169e4 b 0x169ea                                         |     
                                                                 |     while (r1 > 1) {
                                                                 | label_50:
    0x000169e6 subs r0, 1                                        |         r0--;
                                                                 |         if (r0 <= 1) {
    0x000169e8 blo 0x16a08                                       |             goto label_115;
                                                                 |         }
    0x000169ea ldrb r1, [ip, -0x1]!                              |         r1 = *((ip -= 0x1));
    0x000169ee subs r1, 0x31                                     |         r1 -= 0x31;
    0x000169f0 cmp r1, 1                                         |         
    0x000169f2 bhi 0x169e6                                       |         
                                                                 |     }
    0x000169f4 ldrb.w r1, [sb, r0]                               |     r1 = *((sb + r0));
    0x000169f8 cmp r1, 0x31                                      |     
                                                                 |     if (r1 == 0x31) {
    0x000169fa beq 0x169e6                                       |         goto label_50;
                                                                 |     }
    0x000169fc stm.w sp, {r0, r5, sb}                            |     *(sp) = r0;
                                                                 |     *((sp + 4)) = r5;
                                                                 |     *((sp + 8)) = sb;
    0x00016a00 mov r0, r4                                        |     r0 = r4;
    0x00016a02 ldr r1, [sp, 0x2c]                                |     r1 = var_2ch;
    0x00016a04 bl 0x15390                                        |     fcn_00015390 (r0, r1, r2, r3, r4, r5);
                                                                 | label_115:
    0x00016a08 subs r3, 1                                        |     r3--;
    0x00016a0a subs r7, r7, r2                                   |     r7 -= r2;
    0x00016a0c adds r1, r3, 1                                    |     r1 = r3 + 1;
                                                                 |     if (r1 != r3) {
    0x00016a0e bne 0x169d4                                       |         goto label_51;
                                                                 |     }
    0x00016a10 b 0x166be                                         |     goto label_52;
                                                                 | label_97:
    0x00016a12 ldr r1, [pc, 0xe0]                                |     
    0x00016a14 movs r0, 4                                        |     r0 = 4;
    0x00016a16 add r1, pc                                        |     r1 = 0x2d510;
    0x00016a18 bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x00016a1c b 0x165cc                                         |     goto label_53;
                                                                 | label_111:
    0x00016a1e ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x00016a20 mov r0, r4                                        |     r0 = r4;
    0x00016a22 ldr r2, [fp, -0x20]                               |     r2 = var_20h;
    0x00016a26 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00016a28 ldr r3, [sl, -0x60]                               |     r3 = *((sl - 0x60));
    0x00016a2c str r3, [sp]                                      |     *(sp) = r3;
    0x00016a2e ldr r3, [sp, 0x34]                                |     r3 = var_5ch;
    0x00016a30 bl 0x15710                                        |     r0 = fcn_00015710 (r0, r1, r2, r3, r4, r5, r6);
    0x00016a34 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00016a36 bne.w 0x168c4                                     |         goto label_54;
                                                                 |     }
    0x00016a3a ldr r1, [sp, 0x34]                                |     r1 = var_5ch;
    0x00016a3c movs r2, 0x10                                     |     r2 = 0x10;
    0x00016a3e mov r0, fp                                        |     r0 = fp;
    0x00016a40 blx 0xdbec                                        |     r0 = sysconf ();
    0x00016a44 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00016a46 bne.w 0x16576                                     |         goto label_55;
                                                                 |     }
    0x00016a4a mov r0, r4                                        |     r0 = r4;
    0x00016a4c cmp r5, 0                                         |     
                                                                 |     if (r5 != 0) {
    0x00016a4e bne 0x16b46                                       |         goto label_116;
                                                                 |     }
    0x00016a50 blx 0xe0ac                                        |     r0 = fcn_0000e0ac ();
    0x00016a54 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00016a56 bne.w 0x16582                                     |         goto label_43;
                                                                 |     }
    0x00016a5a b 0x1649a                                         |     goto label_56;
                                                                 |     if (r0 != 0) {
                                                                 | label_98:
    0x00016a5c cbz r0, 0x16a62                                   |         
    0x00016a5e blx 0xde30                                        |         fcn_0000de30 ();
                                                                 |     }
    0x00016a62 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00016a64 beq.w 0x1626e                                     |         goto label_23;
                                                                 |     }
    0x00016a68 b 0x166ca                                         |     goto label_57;
                                                                 | label_106:
    0x00016a6a ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x00016a6c mov r0, r5                                        |     r0 = r5;
    0x00016a6e str r3, [sp, 4]                                   |     var_4h = r3;
    0x00016a70 ldr r3, [fp, -0x60]                               |     r3 = var_60h;
    0x00016a74 str r3, [sp]                                      |     *(sp) = r3;
    0x00016a76 ldr r3, [sp, 0x34]                                |     r3 = var_5ch;
    0x00016a78 ldr r2, [sl, -0x20]                               |     r2 = *((sl - 0x20));
    0x00016a7c bl 0x15710                                        |     r0 = fcn_00015710 (r0, r1, r2, r3, r4, r5, r6);
    0x00016a80 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00016a82 bne 0x169b8                                       |         goto label_58;
                                                                 |     }
    0x00016a84 ldr r1, [sp, 0x34]                                |     r1 = var_5ch;
    0x00016a86 movs r2, 0x10                                     |     r2 = 0x10;
    0x00016a88 mov r0, sl                                        |     r0 = sl;
    0x00016a8a blx 0xdbec                                        |     sysconf ();
    0x00016a8e ldr r3, [sp, 0x3c]                                |     r3 = var_54h;
    0x00016a90 cmp r3, 1                                         |     
                                                                 |     if (r3 < 1) {
    0x00016a92 bls 0x16af8                                       |         goto label_117;
                                                                 |     }
                                                                 | label_59:
    0x00016a94 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00016a96 bne 0x169b8                                       |         goto label_58;
                                                                 |     }
    0x00016a98 mov r0, r5                                        |     r0 = r5;
    0x00016a9a blx 0xe0ac                                        |     r0 = fcn_0000e0ac ();
    0x00016a9e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00016aa0 beq.w 0x15f98                                     |         goto label_6;
                                                                 |     }
    0x00016aa4 b 0x167e2                                         |     goto label_49;
                                                                 | label_117:
    0x00016af8 ldrd r4, r1, [fp, -0x40]                          |     __asm ("ldrd r4, r1, [var_40h]");
    0x00016afc ldrd r3, r2, [sl, -0x40]                          |     __asm ("ldrd r3, r2, [sl, -0x40]");
    0x00016b00 cmp r1, r2                                        |     
    0x00016b02 it eq                                             |     
                                                                 |     if (r1 == r2) {
    0x00016b04 cmpeq r4, r3                                      |         __asm ("cmpeq r4, r3");
                                                                 |     }
                                                                 |     if (r1 != r2) {
    0x00016b06 bne 0x16b2e                                       |         goto label_118;
                                                                 |     }
    0x00016b08 ldrd r4, r1, [fp, -0x48]                          |     __asm ("ldrd r4, r1, [var_48h]");
    0x00016b0c ldrd r3, r2, [sl, -0x48]                          |     __asm ("ldrd r3, r2, [sl, -0x48]");
    0x00016b10 cmp r1, r2                                        |     
    0x00016b12 it eq                                             |     
                                                                 |     if (r1 == r2) {
    0x00016b14 cmpeq r4, r3                                      |         __asm ("cmpeq r4, r3");
                                                                 |     }
                                                                 |     if (r1 != r2) {
    0x00016b16 bne 0x16b2e                                       |         goto label_118;
                                                                 |     }
    0x00016b18 ldr r3, [sp, 0x94]                                |     r3 = *(arg_94h);
    0x00016b1a cmp r3, 2                                         |     
                                                                 |     if (r3 != 2) {
    0x00016b1c bne 0x16a94                                       |         goto label_59;
                                                                 |     }
    0x00016b1e ldrd r4, r1, [fp, -0x38]                          |     __asm ("ldrd r4, r1, [var_bp_38h]");
    0x00016b22 ldrd r3, r2, [sl, -0x38]                          |     __asm ("ldrd r3, r2, [sl, -0x38]");
    0x00016b26 cmp r1, r2                                        |     
    0x00016b28 it eq                                             |     
                                                                 |     if (r1 != r2) {
    0x00016b2a cmpeq r4, r3                                      |         __asm ("cmpeq r4, r3");
                                                                 |         goto label_119;
                                                                 |     }
                                                                 |     if (r1 == r2) {
                                                                 | label_119:
    0x00016b2c beq 0x16a94                                       |         goto label_59;
                                                                 |     }
                                                                 | label_118:
    0x00016b2e cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00016b30 bne.w 0x169b8                                     |         goto label_58;
                                                                 |     }
    0x00016b34 mov r0, r5                                        |     r0 = r5;
    0x00016b36 blx 0xe0ac                                        |     r0 = fcn_0000e0ac ();
    0x00016b3a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00016b3c beq.w 0x1649a                                     |         goto label_56;
                                                                 |     }
    0x00016b40 b 0x167e2                                         |     goto label_49;
                                                                 | label_85:
    0x00016b42 blx 0xe158                                        |     fcn_0000e158 ();
                                                                 | label_116:
    0x00016b46 blx 0xe0ac                                        |     r0 = fcn_0000e0ac ();
    0x00016b4a cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00016b4c bne.w 0x16582                                     |         goto label_43;
                                                                 |     }
    0x00016b50 b.w 0x15f98                                       |     goto label_6;
                                                                 | }


r2dec has crashed (info: /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x1927c).
Please report the bug at https://github.com/radareorg/r2dec-js/issues
Use the option '--issue' or the command 'pddi' to generate 
the needed data for the issue.
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x197f0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000197f0 ()                  | void fcn_000197f0 (int16_t arg1, int16_t arg2) {
                                             |     int16_t var_0h_2;
                                             |     int16_t var_8h;
                                             |     int16_t var_18h;
                                             |     int16_t var_74h_2;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x000197f0 ldr r2, [pc, 0xc8]            |     
    0x000197f2 ldr r3, [pc, 0xcc]            |     r3 = *(0x198c2);
    0x000197f4 push {r4, r5, r6, r7, lr}     |     
    0x000197f6 mov r7, r1                    |     r7 = r1;
    0x000197f8 add r2, pc                    |     r2 = 0x330b8;
    0x000197fa sub sp, 0x7c                  |     
    0x000197fc mov.w r1, 0x1c0               |     r1 = 0x1c0;
    0x00019800 mov r6, r0                    |     r6 = r0;
    0x00019802 ldr r3, [r2, r3]              |     
    0x00019804 ldr r3, [r3]                  |     r3 = *(0x330b8);
    0x00019806 str r3, [sp, 0x74]            |     var_74h_2 = r3;
    0x00019808 mov.w r3, 0                   |     r3 = 0;
    0x0001980c blx 0xdb78                    |     fcn_0000db78 ();
    0x00019810 ldr r2, [pc, 0xb0]            |     
    0x00019812 add r2, pc                    |     r2 = 0x330da;
                                             |     if (r0 == 0) {
    0x00019814 cbz r0, 0x19856               |         goto label_2;
                                             |     }
    0x00019816 blx 0xe3d4                    |     r0 = fcn_0000e3d4 ();
    0x0001981a mov r5, r0                    |     r5 = r0;
    0x0001981c ldr r0, [r0]                  |     r0 = *(r0);
    0x0001981e cmp r0, 0x11                  |     
                                             |     if (r0 != 0x11) {
    0x00019820 bne 0x19874                   |         goto label_3;
                                             |     }
    0x00019822 add r1, sp, 8                 |     r1 += var_8h;
    0x00019824 mov r0, r6                    |     r0 = r6;
    0x00019826 blx 0xe1c4                    |     r0 = fcn_0000e1c4 ();
    0x0001982a mov r4, r0                    |     r4 = r0;
    0x0001982c cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x0001982e bne 0x198a2                   |         goto label_4;
                                             |     }
    0x00019830 ldr r3, [sp, 0x18]            |     r3 = var_18h;
    0x00019832 and r3, r3, 0xf000            |     r3 &= 0xf000;
    0x00019836 cmp.w r3, 0x4000              |     
                                             |     if (r3 != 0x4000) {
    0x0001983a bne 0x19896                   |         goto label_5;
                                             |     }
                                             |     do {
                                             | label_0:
    0x0001983c ldr r2, [pc, 0x88]            |         
    0x0001983e ldr r3, [pc, 0x80]            |         r3 = *(0x198c2);
    0x00019840 add r2, pc                    |         r2 = 0x3310c;
    0x00019842 ldr r3, [r2, r3]              |         r3 = *(0x3310c);
    0x00019844 ldr r2, [r3]                  |         r2 = *(0x3310c);
    0x00019846 ldr r3, [sp, 0x74]            |         r3 = var_74h_2;
    0x00019848 eors r2, r3                   |         r2 ^= r3;
    0x0001984a mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x0001984e bne 0x198b8                   |             goto label_6;
                                             |         }
    0x00019850 mov r0, r4                    |         r0 = r4;
    0x00019852 add sp, 0x7c                  |         
    0x00019854 pop {r4, r5, r6, r7, pc}      |         
                                             | label_2:
    0x00019856 ldr r3, [pc, 0x74]            |         
    0x00019858 mov r4, r0                    |         r4 = r0;
    0x0001985a ldr r3, [r2, r3]              |         r3 = *((r2 + r3));
    0x0001985c ldr r3, [r3]                  |         r3 = *(0x198ce);
    0x0001985e cmp r3, 3                     |         
    0x00019860 ble 0x1983c                   |         
                                             |     } while (r3 <= 3);
    0x00019862 ldr r2, [pc, 0x6c]            |     
    0x00019864 mov r3, r6                    |     r3 = r6;
    0x00019866 ldr r1, [pc, 0x6c]            |     
    0x00019868 movs r0, 4                    |     r0 = 4;
    0x0001986a add r2, pc                    |     r2 = 0x33140;
    0x0001986c add r1, pc                    |     r1 = 0x33146;
    0x0001986e bl 0x30d1c                    |     zbx_zabbix_log ();
    0x00019872 b 0x1983c                     |     goto label_0;
                                             | label_3:
    0x00019874 ldr r4, [r7]                  |     r4 = *(r7);
    0x00019876 bl 0x30b74                    |     zbx_strerror ();
    0x00019878 invalid                       |     
    0x0001987c ldr r2, [pc, 0x58]            |     
    0x0001987e str r1, [sp]                  |     *(sp) = r1;
    0x00019880 mov r3, r6                    |     r3 = r6;
    0x00019882 ldr r1, [pc, 0x58]            |     
    0x00019884 mov r0, r4                    |     r0 = r4;
    0x00019886 add r2, pc                    |     r2 = 0x33162;
    0x00019888 add r1, pc                    |     r1 = 0x3316a;
    0x0001988a bl 0x44820                    |     zbx_dsprintf ()
                                             |     do {
                                             | label_1:
    0x0001988e mov.w r4, -1                  |         r4 = -1;
    0x00019892 str r0, [r7]                  |         *(r7) = r0;
    0x00019894 b 0x1983c                     |         goto label_0;
                                             | label_5:
    0x00019896 ldr r1, [pc, 0x48]            |         
    0x00019898 ldr r0, [r7]                  |         r0 = *(r7);
    0x0001989a add r1, pc                    |         r1 = 0x33180;
    0x0001989c bl 0x44820                    |         zbx_dsprintf ()
    0x000198a0 b 0x1988e                     |         
                                             |     } while (1);
                                             | label_4:
    0x000198a2 ldr r0, [r5]                  |     r0 = *(r5);
    0x000198a4 ldr r4, [r7]                  |     r4 = *(r7);
    0x000198a6 bl 0x30b74                    |     zbx_strerror ();
    0x000198aa ldr r1, [pc, 0x38]            |     
    0x000198ac mov r2, r0                    |     r2 = r0;
    0x000198ae mov r0, r4                    |     r0 = r4;
    0x000198b0 add r1, pc                    |     r1 = 0x3319a;
    0x000198b2 bl 0x44820                    |     zbx_dsprintf ()
    0x000198b6 b 0x1988e                     |     goto label_1;
                                             | label_6:
    0x000198b8 blx 0xe158                    |     fcn_0000e158 ();
    0x000198bc movs r3, 0xe0                 |     r3 = 0xe0;
    0x000198be movs r4, r0                   |     r4 = r0;
    0x000198c0 lsls r4, r2, 0xe              |     r4 = r2 << 0xe;
    0x000198c2 movs r0, r0                   |     
    0x000198c4 movs r3, 0xc6                 |     r3 = 0xc6;
    0x000198c6 movs r4, r0                   |     r4 = r0;
    0x000198c8 movs r3, 0x98                 |     r3 = 0x98;
    0x000198ca movs r4, r0                   |     r4 = r0;
    0x000198cc lsls r4, r7, 0xe              |     r4 = r7 << 0xe;
    0x000198ce movs r0, r0                   |     
    0x000198d0 ldr r2, [r5, 0x70]            |     r2 = *((r5 + 0x70));
    0x000198d2 movs r3, r0                   |     r3 = r0;
    0x000198d4 ldr r4, [r6, 0x20]            |     r4 = *((r6 + 0x20));
    0x000198d6 movs r3, r0                   |     r3 = r0;
    0x000198d8 ldr r6, [r1, 0x70]            |     r6 = *((r1 + 0x70));
    0x000198da movs r3, r0                   |     r3 = r0;
    0x000198dc ldr r0, [r6, 0x1c]            |     r0 = *((r6 + 0x1c));
    0x000198de movs r3, r0                   |     r3 = r0;
    0x000198e0 ldr r2, [r7, 0x18]            |     r2 = *((r7 + 0x18));
    0x000198e2 movs r3, r0                   |     r3 = r0;
    0x000198e4 ldr r4, [r7, 0x14]            |     r4 = *((r7 + 0x14));
    0x000198e6 movs r3, r0                   |     r3 = r0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x1e558 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0001e558 ()                  | void fcn_0001e558 (int16_t arg1) {
                                             |     int16_t var_0h_2;
                                             |     int16_t var_ch_2;
                                             |     int16_t var_20h;
                                             |     int16_t var_28h;
                                             |     int16_t var_40h;
                                             |     int16_t var_4ch;
                                             |     r0 = arg1;
    0x0001e558 blmi 0x1330e8c                |     __asm ("blmi aav.0x0003d678");
    0x0001e55c push {r4, r5, r6, r7, lr}     |     
    0x0001e55e mov r4, r0                    |     r4 = r0;
    0x0001e560 add r2, pc                    |     r2 += pc;
    0x0001e562 ldr r1, [pc, 0x12c]           |     
    0x0001e564 sub sp, 0x54                  |     
    0x0001e566 ldr r0, [pc, 0x12c]           |     
    0x0001e568 ldr r3, [r2, r3]              |     r3 = *((r2 + r3));
    0x0001e56a add r1, pc                    |     r1 = 0x3cc00;
    0x0001e56c add r0, pc                    |     r0 = 0x3cc06;
    0x0001e56e ldr r3, [r3]                  |     r3 = *(r3);
    0x0001e570 str r3, [sp, 0x4c]            |     var_4ch = r3;
    0x0001e572 mov.w r3, 0                   |     r3 = 0;
    0x0001e576 blx 0xdf90                    |     fcn_0000df90 ();
    0x0001e578 stc p6, c4, [ip, -0x14]       |     __asm ("stc p6, c4, [ip, -0x14]");
    0x0001e57c cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x0001e57e beq 0x1e664                   |         goto label_3;
                                             |     }
    0x0001e580 ldr r6, [pc, 0x114]           |     
    0x0001e582 mov r7, sp                    |     r7 = sp;
    0x0001e584 ldr r1, [pc, 0x114]           |     
    0x0001e586 mov r3, r7                    |     r3 = r7;
    0x0001e588 add r6, pc                    |     r6 = 0x3cc24;
    0x0001e58a mov r2, r6                    |     r2 = r6;
    0x0001e58c add r1, pc                    |     r1 = 0x3cc2c;
    0x0001e58e bl 0x21570                    |     r0 = byte_value_from_proc_file ();
    0x0001e592 adds r2, r0, 1                |     r2 = r0 + 1;
                                             |     if (r2 == r0) {
    0x0001e594 beq 0x1e608                   |         goto label_4;
                                             |     }
                                             |     if (r0 != 0) {
    0x0001e596 cbnz r0, 0x1e5ca              |         goto label_5;
                                             |     }
    0x0001e598 ldr r2, [r4, 0x28]            |     r2 = *((r4 + 0x28));
    0x0001e59a ldrd r3, r1, [sp]             |     __asm ("ldrd r3, r1, [sp]");
    0x0001e59e orr r2, r2, 1                 |     r2 |= 1;
    0x0001e5a2 str r2, [r4, 0x28]            |     *((r4 + 0x28)) = r2;
                                             |     do {
    0x0001e5a4 movs r6, 0                    |         r6 = 0;
    0x0001e5a6 strd r3, r1, [r4, 8]          |         __asm ("strd r3, r1, [r4, 8]");
                                             | label_0:
    0x0001e5aa mov r0, r5                    |         r0 = r5;
    0x0001e5ac blx 0xdc8c                    |         fcn_0000dc8c ();
                                             | label_2:
    0x0001e5b0 ldr r2, [pc, 0xec]            |         
    0x0001e5b2 ldr r3, [pc, 0xd8]            |         r3 = *(0x1e68e);
    0x0001e5b4 add r2, pc                    |         r2 = 0x3cc58;
    0x0001e5b6 ldr r3, [r2, r3]              |         r3 = *(0x3cc58);
    0x0001e5b8 ldr r2, [r3]                  |         r2 = *(0x3cc58);
    0x0001e5ba ldr r3, [sp, 0x4c]            |         r3 = var_4ch;
    0x0001e5bc eors r2, r3                   |         r2 ^= r3;
    0x0001e5be mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x0001e5c2 bne 0x1e660                   |             goto label_6;
                                             |         }
    0x0001e5c4 mov r0, r6                    |         r0 = r6;
    0x0001e5c6 add sp, 0x54                  |         
    0x0001e5c8 pop {r4, r5, r6, r7, pc}      |         
                                             | label_5:
    0x0001e5ca mov r3, r7                    |         r3 = r7;
    0x0001e5cc movs r2, 0                    |         r2 = 0;
    0x0001e5ce mov r1, r6                    |         r1 = r6;
    0x0001e5d0 mov r0, r5                    |         r0 = r5;
    0x0001e5d2 bl 0x21570                    |         r0 = byte_value_from_proc_file ();
    0x0001e5d6 adds r3, r0, 1                |         r3 = r0 + 1;
                                             |         if (r3 == r0) {
    0x0001e5d8 beq 0x1e646                   |             goto label_7;
                                             |         }
    0x0001e5da adds r0, 2                    |         r0 += 2;
                                             |         if (r0 == 2) {
    0x0001e5dc bne 0x1e5e6                   |             
    0x0001e5de vmov.i32 d16, 0               |             __asm ("vmov.i32 d16, 0");
    0x0001e5e2 vstr d16, [sp]                |             __asm ("vstr d16, [sp]");
    0x0001e5e4 lsrs r0, r0, 0xc              |             r0 >>= 0xc;
                                             |         }
    0x0001e5e6 add r0, sp, 0xc               |         r0 += var_ch_2;
    0x0001e5e8 blx 0xe364                    |         r0 = fcn_0000e364 ();
                                             |         if (r0 != 0) {
    0x0001e5ec cbnz r0, 0x1e626              |             goto label_8;
                                             |         }
    0x0001e5ee ldr r3, [r4, 0x28]            |         r3 = *((r4 + 0x28));
    0x0001e5f0 ldr r1, [sp, 0x28]            |         r1 = var_28h;
    0x0001e5f2 ldr r2, [sp, 0x20]            |         r2 = var_20h;
    0x0001e5f4 orr r3, r3, 1                 |         r3 |= 1;
    0x0001e5f8 ldr r0, [sp, 0x40]            |         r0 = var_40h;
    0x0001e5fa str r3, [r4, 0x28]            |         *((r4 + 0x28)) = r3;
    0x0001e5fc add r2, r1                    |         r2 += r1;
    0x0001e5fe ldrd r3, r1, [sp]             |         __asm ("ldrd r3, r1, [sp]");
    0x0001e602 umlal r3, r1, r2, r0          |         __asm ("umlal r3, r1, r2, r0");
    0x0001e606 b 0x1e5a4                     |         
                                             |     } while (1);
                                             | label_4:
    0x0001e608 ldr r1, [r4, 0x28]            |     r1 = *((r4 + 0x28));
    0x0001e60a movs r2, 0                    |     r2 = 0;
    0x0001e60c ldr r3, [pc, 0x94]            |     
    0x0001e60e ldr r0, [pc, 0x98]            |     
    0x0001e610 orr r1, r1, 0x20              |     r1 |= 0x20;
    0x0001e614 str r1, [r4, 0x28]            |     *((r4 + 0x28)) = r1;
    0x0001e616 add r3, pc                    |     r3 = 0x3ccbe;
    0x0001e618 add r0, pc                    |     r0 = 0x3ccc6;
    0x0001e61a movs r1, 0x7b                 |     r1 = 0x7b;
    0x0001e61c bl 0x40ed8                    |     zbx_strdup2 ();
                                             |     do {
                                             | label_1:
    0x0001e620 movs r6, 1                    |         r6 = 1;
    0x0001e622 str r0, [r4, 0x20]            |         *((r4 + 0x20)) = r0;
    0x0001e624 b 0x1e5aa                     |         goto label_0;
                                             | label_8:
    0x0001e626 ldr r3, [r4, 0x28]            |         r3 = *((r4 + 0x28));
    0x0001e628 orr r3, r3, 0x20              |         r3 |= 0x20;
    0x0001e62c str r3, [r4, 0x28]            |         *((r4 + 0x28)) = r3;
    0x0001e62e blx 0xe3d4                    |         r0 = fcn_0000e3d4 ();
    0x0001e632 ldr r0, [r0]                  |         r0 = *(r0);
    0x0001e634 bl 0x30b74                    |         zbx_strerror ();
    0x0001e638 ldr r1, [pc, 0x70]            |         
    0x0001e63a mov r2, r0                    |         r2 = r0;
    0x0001e63c movs r0, 0                    |         r0 = 0;
    0x0001e63e add r1, pc                    |         r1 = 0x3ccee;
    0x0001e640 bl 0x44820                    |         zbx_dsprintf ()
    0x0001e644 b 0x1e620                     |         
                                             |     } while (1);
                                             | label_7:
    0x0001e646 ldr r1, [r4, 0x28]            |     r1 = *((r4 + 0x28));
    0x0001e648 movs r2, 0                    |     r2 = 0;
    0x0001e64a ldr r3, [pc, 0x64]            |     
    0x0001e64c ldr r0, [pc, 0x64]            |     
    0x0001e64e orr r1, r1, 0x20              |     r1 |= 0x20;
    0x0001e652 str r1, [r4, 0x28]            |     *((r4 + 0x28)) = r1;
    0x0001e654 add r3, pc                    |     r3 = 0x3cd0a;
    0x0001e656 movs r1, 0x88                 |     r1 = 0x88;
    0x0001e658 add r0, pc                    |     r0 = 0x3cd10;
    0x0001e65a bl 0x40ed8                    |     zbx_strdup2 ();
    0x0001e65e b 0x1e620                     |     goto label_1;
                                             | label_6:
    0x0001e660 blx 0xe158                    |     fcn_0000e158 ();
                                             | label_3:
    0x0001e664 ldr r3, [r4, 0x28]            |     r3 = *((r4 + 0x28));
    0x0001e666 movs r6, 1                    |     r6 = 1;
    0x0001e668 orr r3, r3, 0x20              |     r3 |= 0x20;
    0x0001e66c str r3, [r4, 0x28]            |     *((r4 + 0x28)) = r3;
    0x0001e66e blx 0xe3d4                    |     r0 = fcn_0000e3d4 ();
    0x0001e672 ldr r0, [r0]                  |     r0 = *(r0);
    0x0001e674 bl 0x30b74                    |     zbx_strerror ();
    0x0001e678 ldr r1, [pc, 0x3c]            |     
    0x0001e67a mov r2, r0                    |     r2 = r0;
    0x0001e67c mov r0, r5                    |     r0 = r5;
    0x0001e67e add r1, pc                    |     r1 = 0x3cd3a;
    0x0001e680 bl 0x44820                    |     zbx_dsprintf ()
    0x0001e684 str r0, [r4, 0x20]            |     *((r4 + 0x20)) = r0;
    0x0001e686 b 0x1e5b0                     |     goto label_2;
                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x1ecf8 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0001ecf8 ()                                      | void fcn_0001ecf8 (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;
                                                                 |     int16_t var_44h;
                                                                 |     int16_t var_844h;
                                                                 |     int16_t var_1040h;
                                                                 |     int32_t var_0h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
    0x0001ecf8 push.w {r4, r5, r6, r7, r8, sb, sl, lr}           |     
    0x0001ecfc mov sb, r2                                        |     sb = r2;
    0x0001ecfe ldr r2, [pc, 0x15c]                               |     
    0x0001ed00 sub.w sp, sp, 0x1040                              |     
    0x0001ed04 sub sp, 8                                         |     
    0x0001ed06 mov r4, r1                                        |     r4 = r1;
    0x0001ed08 ldr r3, [pc, 0x154]                               |     r3 = *(0x1ee60);
    0x0001ed0a add.w r1, sp, 0x1040                              |     r1 += var_1040h;
    0x0001ed0e add r2, pc                                        |     r2 = 0x3db70;
    0x0001ed10 adds r1, 4                                        |     r1 += 4;
    0x0001ed12 ldr r3, [r2, r3]                                  |     
    0x0001ed14 ldr r3, [r3]                                      |     r3 = *(0x3db70);
    0x0001ed16 str r3, [r1]                                      |     *(r1) = r3;
    0x0001ed18 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r0 != 0) {
    0x0001ed1c cbz r0, 0x1ed24                                   |         
    0x0001ed1e ldrb r3, [r0]                                     |         r3 = *(r0);
    0x0001ed20 mov r7, r0                                        |         r7 = r0;
                                                                 |         if (r3 != 0) {
    0x0001ed22 cbnz r3, 0x1ed62                                  |             goto label_3;
                                                                 |         }
                                                                 |     }
    0x0001ed24 ldr r3, [pc, 0x13c]                               |     
    0x0001ed26 movs r2, 0                                        |     r2 = 0;
    0x0001ed28 ldr r0, [pc, 0x13c]                               |     
    0x0001ed2a movs r1, 0xf1                                     |     r1 = 0xf1;
    0x0001ed2c add r3, pc                                        |     r3 = 0x3db94;
    0x0001ed2e add r0, pc                                        |     r0 = 0x3db9a;
    0x0001ed30 bl 0x40ed8                                        |     zbx_strdup2 ();
                                                                 | label_2:
    0x0001ed34 mov.w sl, 1                                       |     sl = 1;
    0x0001ed38 str.w r0, [sb]                                    |     __asm ("str.w r0, [sb]");
                                                                 | label_1:
    0x0001ed3c ldr r2, [pc, 0x12c]                               |     
    0x0001ed3e add.w r1, sp, 0x1040                              |     r1 += var_1040h;
    0x0001ed42 ldr r3, [pc, 0x11c]                               |     r3 = *(0x1ee62);
    0x0001ed44 adds r1, 4                                        |     r1 += 4;
    0x0001ed46 add r2, pc                                        |     r2 = 0x3dbb6;
    0x0001ed48 ldr r3, [r2, r3]                                  |     r3 = *(0x3dbb6);
    0x0001ed4a ldr r2, [r3]                                      |     r2 = *(0x3dbb6);
    0x0001ed4c ldr r3, [r1]                                      |     r3 = *(r1);
    0x0001ed4e eors r2, r3                                       |     r2 ^= r3;
    0x0001ed50 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x0001ed54 bne 0x1ee40                                       |         goto label_4;
                                                                 |     }
    0x0001ed56 mov r0, sl                                        |     r0 = sl;
    0x0001ed58 add.w sp, sp, 0x1040                              |     
    0x0001ed5c add sp, 8                                         |     
    0x0001ed5e pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |     
                                                                 | label_3:
    0x0001ed62 ldr r1, [pc, 0x10c]                               |     
    0x0001ed64 ldr r0, [pc, 0x10c]                               |     
    0x0001ed66 add r1, pc                                        |     r1 = 0x3dbdc;
    0x0001ed68 add r0, pc                                        |     r0 = 0x3dbe0;
    0x0001ed6a blx 0xdf90                                        |     r0 = fcn_0000df90 ();
    0x0001ed6e mov r6, r0                                        |     r6 = r0;
    0x0001ed70 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001ed72 beq 0x1ee44                                       |         goto label_5;
                                                                 |     }
    0x0001ed74 ldr.w r8, [pc, 0x100]                             |     r8 = *(0x0001ee78);
    0x0001ed78 add r5, sp, 0x44                                  |     r5 += var_44h;
    0x0001ed7a add r8, pc                                        |     r8 += pc;
                                                                 |     do {
                                                                 | label_0:
    0x0001ed7c mov r2, r6                                        |         r2 = r6;
    0x0001ed7e mov.w r1, 0x800                                   |         r1 = 0x800;
    0x0001ed82 mov r0, r5                                        |         r0 = r5;
    0x0001ed84 blx 0xdc98                                        |         r0 = fcn_0000dc98 ();
    0x0001ed88 mov sl, r0                                        |         sl = r0;
    0x0001ed8a cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0001ed8c beq 0x1ee26                                       |             goto label_6;
                                                                 |         }
    0x0001ed8e movs r1, 0x3a                                     |         r1 = 0x3a;
    0x0001ed90 mov r0, r5                                        |         r0 = r5;
    0x0001ed92 blx 0xdcd4                                        |         r0 = fcn_0000dcd4 ();
    0x0001ed96 cmp r0, 0                                         |         
    0x0001ed98 beq 0x1ed7c                                       |         
                                                                 |     } while (r0 == 0);
    0x0001ed9a mov.w ip, 9                                       |     
    0x0001ed9e add.w r1, r4, 0x78                                |     r1 = r4 + 0x78;
    0x0001eda2 add.w r2, r4, 0x70                                |     r2 = r4 + 0x70;
    0x0001eda6 add.w r3, r4, 0x60                                |     r3 = r4 + 0x60;
    0x0001edaa strb.w ip, [r0]                                   |     *(r0) = ip;
    0x0001edae add.w ip, r4, 0x68                                |     
    0x0001edb2 strd r3, r2, [sp, 0x30]                           |     __asm ("strd r3, r2, [var_30h]");
    0x0001edb6 add.w r0, r4, 0x58                                |     r0 = r4 + 0x58;
    0x0001edba add.w r3, r4, 0x48                                |     r3 = r4 + 0x48;
    0x0001edbc lsls r0, r1, 0xd                                  |     r0 = r1 << 0xd;
    0x0001edbe str r1, [sp, 0x38]                                |     var_38h = r1;
    0x0001edc0 add.w r1, r4, 0x50                                |     r1 = r4 + 0x50;
    0x0001edc4 strd r0, ip, [sp, 0x28]                           |     __asm ("strd r0, ip, [var_28h]");
    0x0001edc8 strd r3, r1, [sp, 0x20]                           |     __asm ("strd r3, r1, [var_20h]");
    0x0001edcc add.w r2, r4, 0x40                                |     r2 = r4 + 0x40;
    0x0001edd0 add.w ip, r4, 0x38                                |     
    0x0001edd4 add.w r0, r4, 0x30                                |     r0 = r4 + 0x30;
    0x0001edd8 add.w r3, r4, 0x28                                |     r3 = r4 + 0x28;
    0x0001eddc strd ip, r2, [sp, 0x18]                           |     __asm ("strd ip, r2, [var_18h]");
    0x0001ede0 strd r3, r0, [sp, 0x10]                           |     __asm ("strd r3, r0, [var_10h]");
    0x0001ede4 add.w r1, r4, 0x20                                |     r1 = r4 + 0x20;
    0x0001ede8 add.w r2, r4, 0x18                                |     r2 = r4 + 0x18;
    0x0001edec add.w ip, r4, 0x10                                |     
    0x0001edf0 add.w r0, r4, 8                                   |     r0 = r4 + 8;
    0x0001edf4 addw sl, sp, 0x844                                |     __asm ("addw sl, var_844h");
    0x0001edf8 strd r2, r1, [sp, 8]                              |     __asm ("strd r2, r1, [var_8h]");
    0x0001edfc mov r3, r4                                        |     r3 = r4;
    0x0001edfe strd r0, ip, [sp]                                 |     __asm ("strd r0, ip, [sp]");
    0x0001ee02 mov r2, sl                                        |     r2 = sl;
    0x0001ee04 mov r1, r8                                        |     r1 = r8;
    0x0001ee06 mov r0, r5                                        |     r0 = r5;
    0x0001ee08 blx 0xdc68                                        |     r0 = fcn_0000dc68 ();
    0x0001ee0c cmp r0, 0x11                                      |     
                                                                 |     if (r0 != 0x11) {
    0x0001ee0e bne 0x1ed7c                                       |         goto label_0;
                                                                 |     }
    0x0001ee10 mov r0, sl                                        |     r0 = sl;
    0x0001ee12 mov r1, r7                                        |     r1 = r7;
    0x0001ee14 blx 0xe3b0                                        |     r0 = fcn_0000e3b0 ();
    0x0001ee18 mov sl, r0                                        |     sl = r0;
    0x0001ee1a cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001ee1c bne 0x1ed7c                                       |         goto label_0;
                                                                 |     }
    0x0001ee1e mov r0, r6                                        |     r0 = r6;
    0x0001ee20 blx 0xdc8c                                        |     fcn_0000dc8c ();
    0x0001ee24 b 0x1ed3c                                         |     goto label_1;
                                                                 | label_6:
    0x0001ee26 mov r0, r6                                        |     r0 = r6;
    0x0001ee28 blx 0xdc8c                                        |     fcn_0000dc8c ();
    0x0001ee2c ldr r3, [pc, 0x4c]                                |     
    0x0001ee2e mov r2, sl                                        |     r2 = sl;
    0x0001ee30 ldr r0, [pc, 0x4c]                                |     
    0x0001ee32 mov.w r1, 0x128                                   |     r1 = 0x128;
    0x0001ee36 add r3, pc                                        |     r3 = 0x3dcb6;
    0x0001ee38 add r0, pc                                        |     r0 = 0x3dcbc;
    0x0001ee3a bl 0x40ed8                                        |     zbx_strdup2 ();
    0x0001ee3e b 0x1ed34                                         |     goto label_2;
                                                                 | label_4:
    0x0001ee40 blx 0xe158                                        |     fcn_0000e158 ();
                                                                 | label_5:
    0x0001ee44 blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x0001ee48 ldr r0, [r0]                                      |     r0 = *(r0);
    0x0001ee4a bl 0x30b74                                        |     zbx_strerror ();
    0x0001ee4e ldr r1, [pc, 0x34]                                |     
    0x0001ee50 mov r2, r0                                        |     r2 = r0;
    0x0001ee52 mov r0, r6                                        |     r0 = r6;
    0x0001ee54 add r1, pc                                        |     r1 = 0x3dcde;
    0x0001ee56 bl 0x44820                                        |     zbx_dsprintf ()
    0x0001ee5a b 0x1ed34                                         |     goto label_2;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x1efe8 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0001efe8 ()                                      | void fcn_0001efe8 (int16_t arg_48h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_64h;
                                                                 |     int16_t var_14h_2;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_24h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x0001efe8 push.w {r4, r5, r6, r7, r8, sb, sl, lr}           |     
    0x0001efec mov r6, r2                                        |     r6 = r2;
    0x0001efee ldr r2, [pc, 0x234]                               |     
    0x0001eff0 mov r8, r3                                        |     r8 = r3;
    0x0001eff2 sub sp, 0x28                                      |     
    0x0001eff4 mov r4, r1                                        |     r4 = r1;
    0x0001eff6 ldr r3, [pc, 0x230]                               |     r3 = *(0x1f22a);
    0x0001eff8 mov r5, r0                                        |     r5 = r0;
    0x0001effa add r2, pc                                        |     r2 = 0x3e224;
    0x0001effc ldr.w sb, [sp, 0x48]                              |     sb = *(arg_48h);
    0x0001f000 ldr r3, [r2, r3]                                  |     
    0x0001f002 ldr r3, [r3]                                      |     r3 = *(0x3e224);
    0x0001f004 str r3, [sp, 0x24]                                |     var_24h = r3;
    0x0001f006 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r0 != 0) {
    0x0001f00a cbz r0, 0x1f010                                   |         
    0x0001f00c ldrb r3, [r0]                                     |         r3 = *(r0);
                                                                 |         if (r3 != 0) {
    0x0001f00e cbnz r3, 0x1f038                                  |             goto label_9;
                                                                 |         }
                                                                 |     }
                                                                 |     if (r4 == 0) {
    0x0001f010 cbz r4, 0x1f018                                   |         goto label_3;
                                                                 |     }
    0x0001f012 ldrb r3, [r4]                                     |     r3 = *(r4);
    0x0001f014 cmp r3, 0                                         |     
    0x0001f016 bne 0x1f082                                       |     
                                                                 |     while (r0 == 0) {
                                                                 | label_3:
    0x0001f018 movs r6, 0                                        |         r6 = 0;
                                                                 | label_0:
    0x0001f01a ldr r2, [pc, 0x210]                               |         
    0x0001f01c ldr r3, [pc, 0x208]                               |         r3 = *(0x1f228);
    0x0001f01e add r2, pc                                        |         r2 = 0x3e250;
    0x0001f020 ldr r3, [r2, r3]                                  |         r3 = *(0x3e250);
    0x0001f022 ldr r2, [r3]                                      |         r2 = *(0x3e250);
    0x0001f024 ldr r3, [sp, 0x24]                                |         r3 = var_24h;
    0x0001f026 eors r2, r3                                       |         r2 ^= r3;
    0x0001f028 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0001f02c bne.w 0x1f21e                                     |             goto label_10;
                                                                 |         }
    0x0001f030 mov r0, r6                                        |         r0 = r6;
    0x0001f032 add sp, 0x28                                      |         
    0x0001f034 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |         
                                                                 | label_9:
    0x0001f038 mov r3, r0                                        |         r3 = r0;
    0x0001f03a ldr r0, [pc, 0x1f4]                               |         
    0x0001f03c movs r2, 0                                        |         r2 = 0;
    0x0001f03e movw r1, 0x3df                                    |         r1 = 0x3df;
    0x0001f040 adds r1, 0xdf                                     |         r1 += 0xdf;
    0x0001f042 mov.w r7, -1                                      |         r7 = -1;
    0x0001f046 add r0, pc                                        |         r0 = 0x3e27c;
    0x0001f048 str r7, [sp, 0x14]                                |         var_14h_2 = r7;
    0x0001f04a bl 0x40ed8                                        |         zbx_strdup2 ();
    0x0001f04e movs r1, 0x2f                                     |         r1 = 0x2f;
    0x0001f050 mov r7, r0                                        |         r7 = r0;
    0x0001f052 blx 0xdcd4                                        |         r0 = fcn_0000dcd4 ();
    0x0001f056 mov sl, r0                                        |         sl = r0;
    0x0001f058 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0001f05a beq 0x1f102                                       |             goto label_11;
                                                                 |         }
    0x0001f05c movs r3, 0                                        |         r3 = 0;
    0x0001f05e add r2, sp, 0x14                                  |         r2 += var_14h_2;
    0x0001f060 strb r3, [sl], 1                                  |         *(sl) = r3;
                                                                 |         sl++;
    0x0001f064 mov r0, r7                                        |         r0 = r7;
    0x0001f066 mov r1, sl                                        |         r1 = sl;
    0x0001f068 bl 0x37df8                                        |         validate_cidr ();
    0x0001f06c adds r0, 1                                        |         r0++;
                                                                 |         if (r0 == 1) {
    0x0001f06e beq.w 0x1f1cc                                     |             goto label_12;
                                                                 |         }
                                                                 |         if (r4 != 0) {
                                                                 | label_1:
    0x0001f072 cbz r4, 0x1f07c                                   |             
    0x0001f074 ldrb r3, [r4]                                     |             r3 = *(r4);
    0x0001f076 cmp r3, 0                                         |             
                                                                 |             if (r3 != 0) {
    0x0001f078 bne.w 0x1f1e6                                     |                 goto label_13;
                                                                 |             }
                                                                 |         }
                                                                 | label_7:
    0x0001f07c mov.w sl, 0                                       |         sl = 0;
    0x0001f080 b 0x1f0ba                                         |         goto label_14;
    0x0001f082 vmov.i64 d17, 0xffff                              |         __asm ("vmov.i64 d17, 0xffff");
    0x0001f086 movs r3, 2                                        |         r3 = 2;
    0x0001f088 vmov.i32 d16, 0                                   |         __asm ("vmov.i32 d16, 0");
    0x0001f08c add.w r2, r8, 4                                   |         r2 = r8 + 4;
    0x0001f090 mov.w r1, -1                                      |         r1 = -1;
    0x0001f094 mov r0, r4                                        |         r0 = r4;
    0x0001f096 vstr d17, [sp, 8]                                 |         __asm ("vstr d17, [sp, 8]");
    0x0001f09a movs r7, 0                                        |         r7 = 0;
    0x0001f09c vstr d16, [sp]                                    |         __asm ("vstr d16, [sp]");
    0x0001f0a0 bl 0x419a8                                        |         r0 = is_uint_n_range ();
    0x0001f0a4 cmp r0, 0                                         |         
    0x0001f0a6 beq 0x1f018                                       |         
                                                                 |     }
                                                                 | label_8:
    0x0001f0a8 movs r2, 0xa                                      |     r2 = 0xa;
    0x0001f0aa movs r1, 0                                        |     r1 = 0;
    0x0001f0ac mov r0, r4                                        |     r0 = r4;
    0x0001f0ae mov sl, r4                                        |     sl = r4;
    0x0001f0b0 blx 0xdfe8                                        |     r0 = waitpid ();
    0x0001f0b4 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001f0b6 bne.w 0x1f20e                                     |         goto label_15;
                                                                 |     }
                                                                 | label_14:
    0x0001f0ba mov r2, r6                                        |     r2 = r6;
    0x0001f0bc mov r3, r8                                        |     r3 = r8;
    0x0001f0be mov r1, sl                                        |     r1 = sl;
    0x0001f0c0 mov r0, r7                                        |     r0 = r7;
    0x0001f0c2 blx 0xdf14                                        |     r0 = fcn_0000df14 ();
    0x0001f0c6 cmn.w r0, 8                                       |     
    0x0001f0ca mov r6, r0                                        |     r6 = r0;
                                                                 |     if (r0 == 8) {
    0x0001f0cc beq 0x1f19a                                       |         goto label_16;
                                                                 |     }
    0x0001f0ce cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001f0d0 bne 0x1f17c                                       |         goto label_17;
                                                                 |     }
    0x0001f0d2 ldr.w r5, [r8]                                    |     r5 = *(r8);
    0x0001f0d6 ldr r3, [r5, 4]                                   |     r3 = *((r5 + 4));
    0x0001f0d8 cmp r3, 0xa                                       |     
                                                                 |     if (r3 == 0xa) {
    0x0001f0da beq 0x1f11c                                       |         goto label_18;
                                                                 |     }
    0x0001f0dc cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x0001f0de beq 0x1f15e                                       |         goto label_19;
                                                                 |     }
    0x0001f0e0 ldr r4, [sp, 0x14]                                |     r4 = var_14h_2;
    0x0001f0e2 adds r3, r4, 1                                    |     r3 = r4 + 1;
                                                                 |     if (r3 == r4) {
    0x0001f0e4 beq 0x1f1aa                                       |         goto label_20;
                                                                 |     }
    0x0001f0e6 cmp.w sl, 0                                       |     
                                                                 |     if (sl != 0) {
    0x0001f0ea beq 0x1f0f6                                       |         
    0x0001f0ec ldr r2, [r5, 0x14]                                |         r2 = *((r5 + 0x14));
    0x0001f0ee ldrh r2, [r2, 2]                                  |         r2 = *((r2 + 2));
    0x0001f0f0 rev16 r2, r2                                      |         __asm ("rev16 r2, r2");
    0x0001f0f2 strh.w r2, [r8, 4]                                |         *((r8 + 4)) = r2;
                                                                 |     }
                                                                 | label_2:
    0x0001f0f6 str.w r4, [r8, 8]                                 |     __asm ("str.w r4, [r8, 8]");
                                                                 | label_4:
    0x0001f0fa mov r0, r7                                        |     r0 = r7;
    0x0001f0fc blx 0xde30                                        |     fcn_0000de30 ();
    0x0001f100 b 0x1f01a                                         |     goto label_0;
                                                                 | label_11:
    0x0001f102 mov r0, r7                                        |     r0 = r7;
    0x0001f104 bl 0x413f0                                        |     is_supported_ip ();
    0x0001f106 invalid                                           |     
                                                                 |     if (sl != 0) {
    0x0001f10a bne 0x1f072                                       |         goto label_1;
                                                                 |     }
    0x0001f10c ldr r1, [pc, 0x124]                               |     
    0x0001f10e mov r2, r5                                        |     r2 = r5;
    0x0001f110 ldr.w r0, [sb]                                    |     r0 = *(sb);
    0x0001f114 add r1, pc                                        |     r1 = 0x3e34c;
    0x0001f116 bl 0x44820                                        |     zbx_dsprintf ()
    0x0001f11a b 0x1f1dc                                         |     goto label_21;
                                                                 | label_18:
    0x0001f11c ldr r3, [pc, 0x118]                               |     
    0x0001f11e add.w ip, sp, 0x18                                |     
    0x0001f122 add r3, pc                                        |     r3 = 0x3e35e;
    0x0001f124 ldm.w r3, {r0, r1, r2}                            |     r0 = *(r3);
                                                                 |     r1 = *((r3 + 4));
                                                                 |     r2 = *((r3 + 8));
    0x0001f128 stm.w ip, {r0, r1, r2}                            |     *(ip) = r0;
                                                                 |     *((ip + 4)) = r1;
                                                                 |     *((ip + 8)) = r2;
                                                                 |     if (r7 == 0) {
    0x0001f12c cbz r7, 0x1f15e                                   |         goto label_19;
                                                                 |     }
    0x0001f12e ldr r4, [sp, 0x14]                                |     r4 = var_14h_2;
    0x0001f130 mov r1, ip                                        |     r1 = ip;
    0x0001f132 ldr r5, [r5, 0x14]                                |     r5 = *((r5 + 0x14));
    0x0001f134 adds r2, r4, 1                                    |     r2 = r4 + 1;
    0x0001f136 mov.w r2, 0xc                                     |     r2 = 0xc;
    0x0001f13a it eq                                             |     
                                                                 |     if (r2 != r4) {
    0x0001f13c moveq r4, 0x80                                    |         r4 = 0x80;
                                                                 |     }
    0x0001f13e add.w r0, r5, 8                                   |     r0 = r5 + 8;
    0x0001f142 it eq                                             |     
                                                                 |     if (r2 != r4) {
    0x0001f144 streq r4, [sp, 0x14]                              |         var_14h_2 = r4;
                                                                 |     }
    0x0001f146 blx 0xdbec                                        |     r0 = sysconf ();
    0x0001f14a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001f14c beq 0x1f1be                                       |         goto label_22;
                                                                 |     }
    0x0001f14e cmp.w sl, 0                                       |     
                                                                 |     if (sl == 0) {
    0x0001f152 beq 0x1f0f6                                       |         goto label_2;
                                                                 |     }
                                                                 | label_6:
    0x0001f154 ldrh r2, [r5, 2]                                  |     r2 = *((r5 + 2));
    0x0001f156 rev16 r2, r2                                      |     __asm ("rev16 r2, r2");
    0x0001f158 strh.w r2, [r8, 4]                                |     *((r8 + 4)) = r2;
    0x0001f15c b 0x1f0f6                                         |     goto label_2;
                                                                 | label_19:
    0x0001f15e cmp.w sl, 0                                       |     
                                                                 |     if (sl != 0) {
    0x0001f162 beq 0x1f16e                                       |         
    0x0001f164 ldr r3, [r5, 0x14]                                |         r3 = *((r5 + 0x14));
    0x0001f166 ldrh r3, [r3, 2]                                  |         r3 = *((r3 + 2));
    0x0001f168 rev16 r3, r3                                      |         __asm ("rev16 r3, r3");
    0x0001f16a strh.w r3, [r8, 4]                                |         *((r8 + 4)) = r3;
                                                                 |     }
    0x0001f16e mov r0, r5                                        |     r0 = r5;
    0x0001f170 blx 0xdd90                                        |     strrchr (r0, r1);
    0x0001f174 movs r3, 0                                        |     r3 = 0;
    0x0001f176 str.w r3, [r8]                                    |     __asm ("str.w r3, [r8]");
    0x0001f17a b 0x1f018                                         |     goto label_3;
                                                                 | label_17:
    0x0001f17c ldr r1, [pc, 0xbc]                                |     
    0x0001f17e mov r2, r5                                        |     r2 = r5;
    0x0001f180 ldr.w r0, [sb]                                    |     r0 = *(sb);
    0x0001f184 add r1, pc                                        |     r1 = 0x3e3c4;
    0x0001f186 bl 0x44820                                        |     zbx_dsprintf ()
                                                                 | label_5:
    0x0001f18a mov.w r6, -1                                      |     r6 = -1;
    0x0001f18e str.w r0, [sb]                                    |     __asm ("str.w r0, [sb]");
    0x0001f192 cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x0001f194 beq.w 0x1f01a                                     |         goto label_0;
                                                                 |     }
    0x0001f198 b 0x1f0fa                                         |     goto label_4;
                                                                 | label_16:
    0x0001f19a ldr r1, [pc, 0xa4]                                |     
    0x0001f19c mov r2, r4                                        |     r2 = r4;
    0x0001f19e ldr.w r0, [sb]                                    |     r0 = *(sb);
    0x0001f1a2 add r1, pc                                        |     r1 = 0x3e3e8;
    0x0001f1a4 bl 0x44820                                        |     zbx_dsprintf ()
    0x0001f1a8 b 0x1f18a                                         |     goto label_5;
                                                                 | label_20:
    0x0001f1aa cmp.w sl, 0                                       |     
                                                                 |     if (sl != 0) {
    0x0001f1ae beq 0x1f1ba                                       |         
    0x0001f1b0 ldr r3, [r5, 0x14]                                |         r3 = *((r5 + 0x14));
    0x0001f1b2 ldrh r3, [r3, 2]                                  |         r3 = *((r3 + 2));
    0x0001f1b4 rev16 r3, r3                                      |         __asm ("rev16 r3, r3");
    0x0001f1b6 strh.w r3, [r8, 4]                                |         *((r8 + 4)) = r3;
                                                                 |     }
    0x0001f1ba movs r4, 0x20                                     |     r4 = 0x20;
    0x0001f1bc b 0x1f0f6                                         |     goto label_2;
                                                                 | label_22:
    0x0001f1be movs r3, 1                                        |     r3 = 1;
    0x0001f1c0 strb.w r3, [r8, 0xc]                              |     *((r8 + 0xc)) = r3;
    0x0001f1c4 cmp.w sl, 0                                       |     
                                                                 |     if (sl != 0) {
    0x0001f1c8 bne 0x1f154                                       |         goto label_6;
                                                                 |     }
    0x0001f1ca b 0x1f0f6                                         |     goto label_2;
                                                                 | label_12:
    0x0001f1cc ldr r1, [pc, 0x74]                                |     
    0x0001f1ce mov r3, sl                                        |     r3 = sl;
    0x0001f1d0 ldr.w r0, [sb]                                    |     r0 = *(sb);
    0x0001f1d4 mov r2, r7                                        |     r2 = r7;
    0x0001f1d6 add r1, pc                                        |     r1 = 0x3e41e;
    0x0001f1d8 bl 0x44820                                        |     zbx_dsprintf ()
                                                                 | label_21:
    0x0001f1dc mov.w r6, -1                                      |     r6 = -1;
    0x0001f1e0 str.w r0, [sb]                                    |     __asm ("str.w r0, [sb]");
    0x0001f1e4 b 0x1f0fa                                         |     goto label_4;
                                                                 | label_13:
    0x0001f1e6 vmov.i64 d17, 0xffff                              |     __asm ("vmov.i64 d17, 0xffff");
    0x0001f1ea movs r3, 2                                        |     r3 = 2;
    0x0001f1ec vmov.i32 d16, 0                                   |     __asm ("vmov.i32 d16, 0");
    0x0001f1f0 add.w r2, r8, 4                                   |     r2 = r8 + 4;
    0x0001f1f4 mov.w r1, -1                                      |     r1 = -1;
    0x0001f1f8 mov r0, r4                                        |     r0 = r4;
    0x0001f1fa vstr d17, [sp, 8]                                 |     __asm ("vstr d17, [sp, 8]");
    0x0001f1fe vstr d16, [sp]                                    |     __asm ("vstr d16, [sp]");
    0x0001f202 bl 0x419a8                                        |     r0 = is_uint_n_range ();
    0x0001f206 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001f208 beq.w 0x1f07c                                     |         goto label_7;
                                                                 |     }
    0x0001f20c b 0x1f0a8                                         |     goto label_8;
                                                                 | label_15:
    0x0001f20e ldr r1, [pc, 0x38]                                |     
    0x0001f210 mov r2, r4                                        |     r2 = r4;
    0x0001f212 ldr.w r0, [sb]                                    |     r0 = *(sb);
    0x0001f216 add r1, pc                                        |     r1 = 0x3e464;
    0x0001f218 bl 0x44820                                        |     zbx_dsprintf ()
    0x0001f21c b 0x1f18a                                         |     goto label_5;
                                                                 | label_10:
    0x0001f21e blx 0xe158                                        |     fcn_0000e158 ();
    0x0001f222 nop                                               |     
    0x0001f224 ldm r3, {r1, r2, r3, r4, r6, r7}                  |     r1 = *(r3);
                                                                 |     r2 = *((r3 + 4));
                                                                 |     r3 = *((r3 + 8));
                                                                 |     r4 = *((r3 + 12));
                                                                 |     r6 = *((r3 + 16));
                                                                 |     r7 = *((r3 + 20));
    0x0001f226 movs r3, r0                                       |     r3 = r0;
    0x0001f228 lsls r4, r2, 0xe                                  |     r4 = r2 << 0xe;
    0x0001f22a movs r0, r0                                       |     
    0x0001f22c ldm r3, {r1, r3, r4, r5, r7}                      |     r1 = *(r3);
                                                                 |     r3 = *((r3 + 4));
                                                                 |     r4 = *((r3 + 8));
                                                                 |     r5 = *((r3 + 12));
                                                                 |     r7 = *((r3 + 16));
    0x0001f22e movs r3, r0                                       |     r3 = r0;
    0x0001f230 movs r5, 0xa2                                     |     r5 = 0xa2;
    0x0001f232 movs r3, r0                                       |     r3 = r0;
    0x0001f234 movs r5, 0xc8                                     |     r5 = 0xc8;
    0x0001f236 movs r3, r0                                       |     r3 = r0;
    0x0001f238 cmp r1, 0xb2                                      |     
    0x0001f23a movs r3, r0                                       |     r3 = r0;
    0x0001f23c movs r5, 0x58                                     |     r5 = 0x58;
    0x0001f23e movs r3, r0                                       |     r3 = r0;
    0x0001f240 movs r5, 0x6e                                     |     r5 = 0x6e;
    0x0001f242 movs r3, r0                                       |     r3 = r0;
    0x0001f244 movs r4, 0xe6                                     |     r4 = 0xe6;
    0x0001f246 movs r3, r0                                       |     r3 = r0;
    0x0001f248 movs r4, 0xe2                                     |     r4 = 0xe2;
    0x0001f24a movs r3, r0                                       |     r3 = r0;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x1f24c */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0001f24c ()                                      | void fcn_0001f24c (int16_t arg_4h, int16_t arg_48h, int16_t arg_98h, int16_t arg_9ch, int16_t arg_80h, int16_t arg_84h, int16_t arg_88h, int16_t arg_8ch, int16_t arg_97h_2, int16_t arg_98h_2, int16_t arg_9ah_2, int16_t arg_9ch_2, int16_t arg_a4h, int16_t arg_11ch_2, int16_t arg_124h_2, int16_t arg_19ch_2, int16_t arg_99ch, int16_t arg_9c8h, int16_t arg_9cch, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x0001f24c svcmi 0xf0e92d                                    |     __asm ("svcmi 0xf0e92d");
    0x0001f250 mov fp, r2                                        |     
    0x0001f252 subw sp, sp, 0x9a4                                |     __asm ("subw sp, sp, 0x9a4");
    0x0001f256 ldr r2, [pc, 0x1b8]                               |     
    0x0001f258 mov r4, r0                                        |     r4 = r0;
    0x0001f25a str r3, [sp, 0x80]                                |     *(arg_80h) = r3;
    0x0001f25c ldr r3, [pc, 0x1b4]                               |     r3 = *(0x1f414);
    0x0001f25e add r2, pc                                        |     r2 = 0x3e674;
    0x0001f260 str r1, [sp, 0x84]                                |     *(arg_84h) = r1;
    0x0001f262 ldr r1, [pc, 0x1b4]                               |     
    0x0001f264 ldr r3, [r2, r3]                                  |     
    0x0001f266 ldr.w r5, [sp, 0x9cc]                             |     r5 = *(arg_9cch);
    0x0001f26a add r1, pc                                        |     r1 = 0x3e688;
    0x0001f26c ldr r3, [r3]                                      |     r3 = *(0x3e674);
    0x0001f26e str.w r3, [sp, 0x99c]                             |     __asm ("str.w r3, [arg_99ch]");
    0x0001f272 mov.w r3, 0                                       |     r3 = 0;
    0x0001f276 ldr.w r3, [sp, 0x9c8]                             |     r3 = *(arg_9c8h);
    0x0001f27a str r3, [sp, 0x88]                                |     *(arg_88h) = r3;
    0x0001f27c blx 0xdf90                                        |     r0 = fcn_0000df90 ();
    0x0001f280 mov r6, r0                                        |     r6 = r0;
    0x0001f282 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001f284 beq.w 0x1f3e8                                     |         goto label_1;
                                                                 |     }
    0x0001f288 ldr.w sb, [pc, 0x190]                             |     sb = *(0x0001f41c);
    0x0001f28c add r5, sp, 0x19c                                 |     r5 += arg_19ch_2;
    0x0001f28e movs r3, 0xa                                      |     r3 = 0xa;
    0x0001f290 add.w sl, sp, 0x11c                               |     sl += arg_11ch_2;
    0x0001f294 add r7, sp, 0x9c                                  |     r7 += arg_9ch_2;
    0x0001f296 strh.w r3, [sl]                                   |     *(sl) = r3;
    0x0001f29a add sb, pc                                        |     sb += pc;
    0x0001f29c strh r3, [r7]                                     |     *(r7) = r3;
                                                                 |     do {
                                                                 | label_0:
    0x0001f29e mov r2, r6                                        |         r2 = r6;
    0x0001f2a0 mov.w r1, 0x800                                   |         r1 = 0x800;
    0x0001f2a4 mov r0, r5                                        |         r0 = r5;
    0x0001f2a6 blx 0xdc98                                        |         r0 = fcn_0000dc98 ();
    0x0001f2aa cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0001f2ac beq.w 0x1f3c0                                     |             goto label_2;
                                                                 |         }
    0x0001f2b0 movs r1, 0x3a                                     |         r1 = 0x3a;
    0x0001f2b2 mov r0, r5                                        |         r0 = r5;
    0x0001f2b4 blx 0xdcd4                                        |         r0 = fcn_0000dcd4 ();
    0x0001f2b8 mov r4, r0                                        |         r4 = r0;
    0x0001f2ba cmp r0, 0                                         |         
    0x0001f2bc beq 0x1f29e                                       |         
                                                                 |     } while (r0 == 0);
    0x0001f2be blx 0xdf68                                        |     r0 = fcn_0000df68 ();
    0x0001f2c2 cmp r0, 0x4f                                      |     
                                                                 |     if (r0 < 0x4f) {
    0x0001f2c4 bls 0x1f29e                                       |         goto label_0;
                                                                 |     }
    0x0001f2c6 mov r1, r7                                        |     r1 = r7;
    0x0001f2c8 adds r0, r4, 2                                    |     r0 = r4 + 2;
    0x0001f2ca bl 0x1eca8                                        |     r0 = fcn_0001eca8 (r0, r1);
    0x0001f2ce cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001f2d0 bne 0x1f29e                                       |         goto label_0;
                                                                 |     }
    0x0001f2d2 add.w r8, sp, 0x98                                |     r8 += arg_98h_2;
    0x0001f2d6 mov r1, sb                                        |     r1 = sb;
    0x0001f2d8 mov r2, r8                                        |     r2 = r8;
    0x0001f2da add.w r0, r4, 0x22                                |     r0 = r4 + 0x22;
    0x0001f2de blx 0xdc68                                        |     r0 = fcn_0000dc68 ();
    0x0001f2e2 cmp r0, 1                                         |     
                                                                 |     if (r0 != 1) {
    0x0001f2e4 bne 0x1f29e                                       |         goto label_0;
                                                                 |     }
    0x0001f2e6 mov r1, sl                                        |     r1 = sl;
    0x0001f2e8 add.w r0, r4, 0x28                                |     r0 = r4 + 0x28;
    0x0001f2ec bl 0x1eca8                                        |     r0 = fcn_0001eca8 (r0, r1);
    0x0001f2f0 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001f2f2 bne 0x1f29e                                       |         goto label_0;
                                                                 |     }
    0x0001f2f4 ldr r1, [pc, 0x128]                               |     
    0x0001f2f6 add.w r0, r4, 0x48                                |     r0 = r4 + 0x48;
    0x0001f2fa add.w r4, sp, 0x9a                                |     r4 += arg_9ah_2;
    0x0001f2fe add.w r3, sp, 0x97                                |     r3 += arg_97h_2;
    0x0001f302 mov r2, r4                                        |     r2 = r4;
    0x0001f304 str r3, [sp, 0x8c]                                |     *(arg_8ch) = r3;
    0x0001f306 add r1, pc                                        |     r1 = 0x3e72a;
    0x0001f308 blx 0xdc68                                        |     r0 = fcn_0000dc68 ();
    0x0001f30c cmp r0, 2                                         |     
                                                                 |     if (r0 != 2) {
    0x0001f30e bne 0x1f29e                                       |         goto label_0;
                                                                 |     }
    0x0001f310 ldrh.w r2, [fp, 4]                                |     r2 = *(arg_4h);
    0x0001f314 ldr r3, [sp, 0x8c]                                |     r3 = *(arg_8ch);
                                                                 |     if (r2 == 0) {
    0x0001f316 cbz r2, 0x1f320                                   |         goto label_3;
                                                                 |     }
    0x0001f318 ldrh.w r1, [sp, 0x98]                             |     r1 = *(arg_98h_2);
    0x0001f31c cmp r1, r2                                        |     
                                                                 |     if (r1 != r2) {
    0x0001f31e bne 0x1f29e                                       |         goto label_0;
                                                                 |     }
                                                                 | label_3:
    0x0001f320 ldr r2, [sp, 0x80]                                |     r2 = *(arg_80h);
    0x0001f322 ldrh r2, [r2, 4]                                  |     r2 = *((r2 + 4));
                                                                 |     if (r2 == 0) {
    0x0001f324 cbz r2, 0x1f32c                                   |         goto label_4;
                                                                 |     }
    0x0001f326 ldrh r1, [r4]                                     |     r1 = *(r4);
    0x0001f328 cmp r1, r2                                        |     
                                                                 |     if (r1 != r2) {
    0x0001f32a bne 0x1f29e                                       |         goto label_0;
                                                                 |     }
                                                                 | label_4:
    0x0001f32c ldr r2, [sp, 0x84]                                |     r2 = *(arg_84h);
                                                                 |     if (r2 == 0) {
    0x0001f32e cbz r2, 0x1f336                                   |         goto label_5;
                                                                 |     }
    0x0001f330 ldrb r3, [r3]                                     |     r3 = *(r3);
    0x0001f332 cmp r3, r2                                        |     
                                                                 |     if (r3 != r2) {
    0x0001f334 bne 0x1f29e                                       |         goto label_0;
                                                                 |     }
                                                                 | label_5:
    0x0001f336 ldr.w r4, [fp]                                    |     r4 = *(fp);
                                                                 |     if (r4 == 0) {
    0x0001f33a cbz r4, 0x1f370                                   |         goto label_6;
                                                                 |     }
    0x0001f33c ldr.w r8, [fp, 8]                                 |     r8 = *(arg_98h);
    0x0001f340 movs r2, 0x78                                     |     r2 = 0x78;
    0x0001f342 ldrb.w ip, [fp, 0xc]                              |     ip = *(arg_9ch);
    0x0001f346 add r1, sp, 0xa4                                  |     r1 += arg_a4h;
    0x0001f348 mov r0, sp                                        |     r0 = sp;
    0x0001f34a clz r3, r8                                        |     r3 &= r8;
    0x0001f34e lsrs r3, r3, 5                                    |     r3 >>= 5;
    0x0001f350 cmp.w ip, 1                                       |     
    0x0001f354 it ne                                             |     
                                                                 |     if (ip == 1) {
    0x0001f356 orrne r3, r3, 1                                   |         r3 |= 1;
                                                                 |     }
    0x0001f35a str r3, [sp, 0x78]                                |     *(arg_9ch) = r3;
    0x0001f35c blx 0xdf84                                        |     fcn_0000df84 ();
    0x0001f360 ldm.w r7, {r2, r3}                                |     r2 = *(r7);
                                                                 |     r3 = *((r7 + 4));
    0x0001f364 mov r1, r4                                        |     r1 = r4;
    0x0001f366 mov r0, r8                                        |     r0 = r8;
    0x0001f368 bl 0x37c94                                        |     zbx_ip_cmp ();
    0x0001f36c adds r0, 1                                        |     r0++;
                                                                 |     if (r0 == 1) {
    0x0001f36e beq 0x1f29e                                       |         goto label_0;
                                                                 |     }
                                                                 | label_6:
    0x0001f370 ldr r3, [sp, 0x80]                                |     r3 = *(arg_80h);
    0x0001f372 ldr r4, [r3]                                      |     r4 = *(r3);
                                                                 |     if (r4 == 0) {
    0x0001f374 cbz r4, 0x1f3ae                                   |         goto label_7;
                                                                 |     }
    0x0001f376 ldr r3, [sp, 0x80]                                |     r3 = *(arg_80h);
    0x0001f378 movs r2, 0x78                                     |     r2 = 0x78;
    0x0001f37a add r1, sp, 0x124                                 |     r1 += arg_124h_2;
    0x0001f37c mov r0, sp                                        |     r0 = sp;
    0x0001f37e ldr.w r8, [r3, 8]                                 |     r8 = *((r3 + 8));
    0x0001f382 ldrb.w ip, [r3, 0xc]                              |     ip = *((r3 + 0xc));
    0x0001f386 clz r3, r8                                        |     r3 &= r8;
    0x0001f38a lsrs r3, r3, 5                                    |     r3 >>= 5;
    0x0001f38c cmp.w ip, 1                                       |     
    0x0001f390 it ne                                             |     
                                                                 |     if (ip == 1) {
    0x0001f392 orrne r3, r3, 1                                   |         r3 |= 1;
                                                                 |     }
    0x0001f396 str r3, [sp, 0x78]                                |     *(arg_9ch) = r3;
    0x0001f398 blx 0xdf84                                        |     fcn_0000df84 ();
    0x0001f39c ldm.w sl, {r2, r3}                                |     r2 = *(sl);
                                                                 |     r3 = *((sl + 4));
    0x0001f3a0 mov r1, r4                                        |     r1 = r4;
    0x0001f3a2 mov r0, r8                                        |     r0 = r8;
    0x0001f3a4 bl 0x37c94                                        |     zbx_ip_cmp ();
    0x0001f3a8 adds r0, 1                                        |     r0++;
                                                                 |     if (r0 == 1) {
    0x0001f3aa beq.w 0x1f29e                                     |         goto label_0;
                                                                 |     }
                                                                 | label_7:
    0x0001f3ae ldr r2, [sp, 0x88]                                |     r2 = *(arg_88h);
    0x0001f3b0 ldr r3, [r2]                                      |     r3 = *(r2);
    0x0001f3b2 adds r3, 1                                        |     r3++;
    0x0001f3b4 str r3, [r2]                                      |     *(r2) = r3;
    0x0001f3b6 ldr r3, [r2, 4]                                   |     r3 = *((r2 + 4));
    0x0001f3b8 adc r3, r3, 0                                     |     __asm ("adc r3, r3, 0");
    0x0001f3bc str r3, [r2, 4]                                   |     *((r2 + 4)) = r3;
    0x0001f3be b 0x1f29e                                         |     goto label_0;
                                                                 | label_2:
    0x0001f3c0 mov r4, r0                                        |     r4 = r0;
    0x0001f3c2 mov r0, r6                                        |     r0 = r6;
    0x0001f3c4 blx 0xdc8c                                        |     fcn_0000dc8c ();
    0x0001f3c8 mov r0, r4                                        |     r0 = r4;
                                                                 |     do {
    0x0001f3ca ldr r2, [pc, 0x58]                                |         
    0x0001f3cc ldr r3, [pc, 0x44]                                |         r3 = *(0x1f414);
    0x0001f3ce add r2, pc                                        |         r2 = 0x3e7f8;
    0x0001f3d0 ldr r3, [r2, r3]                                  |         r3 = *(0x3e7f8);
    0x0001f3d2 ldr r2, [r3]                                      |         r2 = *(0x3e7f8);
    0x0001f3d4 ldr.w r3, [sp, 0x99c]                             |         r3 = *(arg_99ch);
    0x0001f3d8 eors r2, r3                                       |         r2 ^= r3;
    0x0001f3da mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0001f3de bne 0x1f40a                                       |             goto label_8;
                                                                 |         }
    0x0001f3e0 addw sp, sp, 0x9a4                                |         __asm ("addw sp, sp, 0x9a4");
    0x0001f3e4 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_1:
    0x0001f3e8 blx 0xe3d4                                        |         r0 = fcn_0000e3d4 ();
    0x0001f3ec ldr r0, [r0]                                      |         r0 = *(r0);
    0x0001f3ee bl 0x30b74                                        |         zbx_strerror ();
    0x0001f3f2 ldr r1, [pc, 0x34]                                |         
    0x0001f3f4 mov r3, r0                                        |         r3 = r0;
    0x0001f3f6 mov r2, r4                                        |         r2 = r4;
    0x0001f3f8 mov r0, r6                                        |         r0 = r6;
    0x0001f3fa add r1, pc                                        |         r1 = 0x3e828;
    0x0001f3fc bl 0x44820                                        |         r0 = zbx_dsprintf ()
    0x0001f400 mov r3, r0                                        |         r3 = r0;
    0x0001f402 mov.w r0, -1                                      |         r0 = -1;
    0x0001f404 adds r0, 0xff                                     |         r0 += 0xff;
    0x0001f406 str r3, [r5]                                      |         *(r5) = r3;
    0x0001f408 b 0x1f3ca                                         |         
                                                                 |     } while (1);
                                                                 | label_8:
    0x0001f40a blx 0xe158                                        |     fcn_0000e158 ();
    0x0001f40e nop                                               |     
    0x0001f410 ldm r1, {r1, r3, r4, r5, r6}                      |     r1 = *(r1);
                                                                 |     r3 = *((r1 + 4));
                                                                 |     r4 = *((r1 + 8));
                                                                 |     r5 = *((r1 + 12));
                                                                 |     r6 = *((r1 + 16));
    0x0001f412 movs r3, r0                                       |     r3 = r0;
    0x0001f414 lsls r4, r2, 0xe                                  |     r4 = r2 << 0xe;
    0x0001f416 movs r0, r0                                       |     
    0x0001f418 movs r0, 0xa6                                     |     r0 = 0xa6;
    0x0001f41a movs r3, r0                                       |     r3 = r0;
    0x0001f41c movs r4, 0xce                                     |     r4 = 0xce;
    0x0001f41e movs r3, r0                                       |     r3 = r0;
    0x0001f420 movs r4, 0x6a                                     |     r4 = 0x6a;
    0x0001f422 movs r3, r0                                       |     r3 = r0;
    0x0001f424 ldm r0!, {r1, r3}                                 |     r1 = *(r0!);
                                                                 |     r3 = *((r0! + 4));
    0x0001f426 movs r3, r0                                       |     r3 = r0;
    0x0001f428 movs r3, 0x5a                                     |     r3 = 0x5a;
    0x0001f42a movs r3, r0                                       |     r3 = r0;
                                                                 | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x1f42c */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.0001f42c ()                                          | void fcn_0001f42c (int16_t arg_4h, int16_t arg_48h, int16_t arg_97h, int16_t arg_98h, int16_t arg_9ah, int16_t arg_9ch, int16_t arg_a0h, int16_t arg_80h, int16_t arg_11ch, int16_t arg_120h, int16_t arg_124h, int16_t arg_19ch, int16_t arg_99ch_2, int16_t arg_9c8h_2, int16_t arg_9cch_2, 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_14h;
                                                                     |     int16_t var_18h;
                                                                     |     int16_t var_20h;
                                                                     |     int16_t var_2ch;
                                                                     |     int16_t var_30h;
                                                                     |     int16_t var_3ch;
                                                                     |     int16_t var_40h;
                                                                     |     int16_t var_44h;
                                                                     |     int16_t var_64h;
                                                                     |     int16_t var_78h;
                                                                     |     int16_t var_80h;
                                                                     |     int16_t var_84h;
                                                                     |     int16_t var_88h;
                                                                     |     int16_t var_8ch;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
                                                                     |     r3 = arg4;
    0x0001f42c svcmi 0xf0e92d                                        |     __asm ("svcmi 0xf0e92d");
    0x0001f430 mov r8, r2                                            |     r8 = r2;
    0x0001f432 ldr r2, [pc, 0x198]                                   |     
    0x0001f434 mov sb, r3                                            |     sb = r3;
    0x0001f436 subw sp, sp, 0x9a4                                    |     __asm ("subw sp, sp, 0x9a4");
    0x0001f43a mov r4, r0                                            |     r4 = r0;
    0x0001f43c ldr r3, [pc, 0x190]                                   |     r3 = *(0x1f5d0);
    0x0001f43e str r1, [sp, 0x84]                                    |     var_84h = r1;
    0x0001f440 add r2, pc                                            |     r2 = 0x3ea12;
    0x0001f442 ldr r1, [pc, 0x190]                                   |     
    0x0001f444 ldr r3, [r2, r3]                                      |     
    0x0001f446 ldr.w fp, [sp, 0x9c8]                                 |     fp = *(arg_9c8h_2);
    0x0001f44a add r1, pc                                            |     r1 = 0x3ea24;
    0x0001f44c ldr.w r6, [sp, 0x9cc]                                 |     r6 = *(arg_9cch_2);
    0x0001f450 ldr r3, [r3]                                          |     r3 = *(0x3ea12);
    0x0001f452 str.w r3, [sp, 0x99c]                                 |     __asm ("str.w r3, [arg_99ch_2]");
    0x0001f456 mov.w r3, 0                                           |     r3 = 0;
    0x0001f45a blx 0xdf90                                            |     r0 = fcn_0000df90 ();
    0x0001f45e mov r5, r0                                            |     r5 = r0;
    0x0001f460 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0001f462 beq.w 0x1f5a6                                         |         goto label_9;
                                                                     |     }
    0x0001f466 movs r3, 2                                            |     r3 = 2;
    0x0001f468 add r2, sp, 0x11c                                     |     r2 += arg_11ch;
    0x0001f46a strh.w r3, [sp, 0x11c]                                |     *(arg_11ch) = r3;
    0x0001f46e add r4, sp, 0x19c                                     |     r4 += arg_19ch;
    0x0001f470 strh.w r3, [sp, 0x9c]                                 |     *(arg_9ch) = r3;
    0x0001f474 ldr r3, [pc, 0x160]                                   |     
    0x0001f476 str r2, [sp, 0x8c]                                    |     var_8ch = r2;
    0x0001f478 add r2, sp, 0x9c                                      |     r2 += arg_9ch;
    0x0001f47a str r2, [sp, 0x88]                                    |     var_88h = r2;
    0x0001f47c add r3, pc                                            |     r3 = 0x3ea58;
    0x0001f47e str r3, [sp, 0x80]                                    |     var_80h = r3;
                                                                     |     do {
                                                                     | label_0:
    0x0001f480 mov r2, r5                                            |         r2 = r5;
    0x0001f482 mov.w r1, 0x800                                       |         r1 = 0x800;
    0x0001f486 mov r0, r4                                            |         r0 = r4;
    0x0001f488 blx 0xdc98                                            |         r0 = fcn_0000dc98 ();
    0x0001f48c cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001f48e beq 0x1f57e                                           |             goto label_10;
                                                                     |         }
                                                                     | label_1:
    0x0001f490 movs r1, 0x3a                                         |         r1 = 0x3a;
    0x0001f492 mov r0, r4                                            |         r0 = r4;
    0x0001f494 blx 0xdcd4                                            |         r0 = fcn_0000dcd4 ();
    0x0001f498 cmp r0, 0                                             |         
    0x0001f49a beq 0x1f480                                           |         
                                                                     |     } while (r0 == 0);
    0x0001f49c add r3, sp, 0x120                                     |     r3 += arg_120h;
    0x0001f49e add r6, sp, 0x98                                      |     r6 += arg_98h;
    0x0001f4a0 add.w sl, sp, 0x97                                    |     sl += arg_97h;
    0x0001f4a4 add.w r7, sp, 0x9a                                    |     r7 += arg_9ah;
    0x0001f4a8 str r3, [sp]                                          |     *(sp) = r3;
    0x0001f4aa add r2, sp, 0xa0                                      |     r2 += arg_a0h;
    0x0001f4ac ldr r1, [sp, 0x80]                                    |     r1 = var_80h;
    0x0001f4ae mov r3, r6                                            |     r3 = r6;
    0x0001f4b0 str.w sl, [sp, 8]                                     |     __asm ("str.w sl, [var_8h]");
    0x0001f4b4 str r7, [sp, 4]                                       |     *(arg_4h) = r7;
    0x0001f4b6 blx 0xdc68                                            |     r0 = fcn_0000dc68 ();
    0x0001f4ba cmp r0, 5                                             |     
                                                                     |     if (r0 != 5) {
    0x0001f4bc bne 0x1f480                                           |         goto label_0;
                                                                     |     }
    0x0001f4be ldrh.w r3, [r8, 4]                                    |     r3 = *((r8 + 4));
                                                                     |     if (r3 == 0) {
    0x0001f4c2 cbz r3, 0x1f4cc                                       |         goto label_11;
                                                                     |     }
    0x0001f4c4 ldrh.w r2, [sp, 0x98]                                 |     r2 = *(arg_98h);
    0x0001f4c8 cmp r2, r3                                            |     
                                                                     |     if (r2 != r3) {
    0x0001f4ca bne 0x1f480                                           |         goto label_0;
                                                                     |     }
                                                                     | label_11:
    0x0001f4cc ldrh.w r3, [sb, 4]                                    |     r3 = *((sb + 4));
                                                                     |     if (r3 == 0) {
    0x0001f4d0 cbz r3, 0x1f4d8                                       |         goto label_12;
                                                                     |     }
    0x0001f4d2 ldrh r2, [r7]                                         |     r2 = *(r7);
    0x0001f4d4 cmp r2, r3                                            |     
                                                                     |     if (r2 != r3) {
    0x0001f4d6 bne 0x1f480                                           |         goto label_0;
                                                                     |     }
                                                                     | label_12:
    0x0001f4d8 ldr r2, [sp, 0x84]                                    |     r2 = var_84h;
                                                                     |     if (r2 == 0) {
    0x0001f4da cbz r2, 0x1f4e4                                       |         goto label_13;
                                                                     |     }
    0x0001f4dc ldrb.w r3, [sl]                                       |     r3 = *(sl);
    0x0001f4e0 cmp r3, r2                                            |     
                                                                     |     if (r3 != r2) {
    0x0001f4e2 bne 0x1f480                                           |         goto label_0;
                                                                     |     }
                                                                     | label_13:
    0x0001f4e4 ldr.w r6, [r8]                                        |     r6 = *(r8);
                                                                     |     if (r6 == 0) {
    0x0001f4e8 cbz r6, 0x1f51e                                       |         goto label_14;
                                                                     |     }
    0x0001f4ea ldr.w r7, [r8, 8]                                     |     r7 = *((r8 + 8));
    0x0001f4ee movs r2, 0x78                                         |     r2 = 0x78;
    0x0001f4f0 ldrb.w ip, [r8, 0xc]                                  |     ip = *((r8 + 0xc));
    0x0001f4f4 add r1, sp, 0xa4                                      |     r1 += arg_80h;
    0x0001f4f6 mov r0, sp                                            |     r0 = sp;
    0x0001f4f8 clz r3, r7                                            |     r3 &= r7;
    0x0001f4fc lsrs r3, r3, 5                                        |     r3 >>= 5;
    0x0001f4fe cmp.w ip, 1                                           |     
    0x0001f502 it ne                                                 |     
                                                                     |     if (ip == 1) {
    0x0001f504 orrne r3, r3, 1                                       |         r3 |= 1;
                                                                     |     }
    0x0001f508 str r3, [sp, 0x78]                                    |     var_78h = r3;
    0x0001f50a blx 0xdf84                                            |     fcn_0000df84 ();
    0x0001f50e ldr r3, [sp, 0x88]                                    |     r3 = var_88h;
    0x0001f510 mov r1, r6                                            |     r1 = r6;
    0x0001f512 mov r0, r7                                            |     r0 = r7;
    0x0001f514 ldm r3, {r2, r3}                                      |     r2 = *(r3);
                                                                     |     r3 = *((r3 + 4));
    0x0001f516 bl 0x37c94                                            |     zbx_ip_cmp ();
    0x0001f51a adds r0, 1                                            |     r0++;
                                                                     |     if (r0 == 1) {
    0x0001f51c beq 0x1f480                                           |         goto label_0;
                                                                     |     }
                                                                     | label_14:
    0x0001f51e ldr.w r6, [sb]                                        |     r6 = *(sb);
                                                                     |     if (r6 == 0) {
    0x0001f522 cbz r6, 0x1f558                                       |         goto label_15;
                                                                     |     }
    0x0001f524 ldr.w r7, [sb, 8]                                     |     r7 = *((sb + 8));
    0x0001f528 movs r2, 0x78                                         |     r2 = 0x78;
    0x0001f52a ldrb.w ip, [sb, 0xc]                                  |     ip = *((sb + 0xc));
    0x0001f52e add r1, sp, 0x124                                     |     r1 += arg_124h;
    0x0001f530 mov r0, sp                                            |     r0 = sp;
    0x0001f532 clz r3, r7                                            |     r3 &= r7;
    0x0001f536 lsrs r3, r3, 5                                        |     r3 >>= 5;
    0x0001f538 cmp.w ip, 1                                           |     
    0x0001f53c it ne                                                 |     
                                                                     |     if (ip == 1) {
    0x0001f53e orrne r3, r3, 1                                       |         r3 |= 1;
                                                                     |     }
    0x0001f542 str r3, [sp, 0x78]                                    |     var_78h = r3;
    0x0001f544 blx 0xdf84                                            |     fcn_0000df84 ();
    0x0001f548 ldr r3, [sp, 0x8c]                                    |     r3 = var_8ch;
    0x0001f54a mov r1, r6                                            |     r1 = r6;
    0x0001f54c mov r0, r7                                            |     r0 = r7;
    0x0001f54e ldm r3, {r2, r3}                                      |     r2 = *(r3);
                                                                     |     r3 = *((r3 + 4));
    0x0001f550 bl 0x37c94                                            |     zbx_ip_cmp ();
    0x0001f554 adds r0, 1                                            |     r0++;
                                                                     |     if (r0 == 1) {
    0x0001f556 beq 0x1f480                                           |         goto label_0;
                                                                     |     }
                                                                     | label_15:
    0x0001f558 ldr.w r3, [fp]                                        |     r3 = *(fp);
    0x0001f55c mov r2, r5                                            |     r2 = r5;
    0x0001f55e mov.w r1, 0x800                                       |     r1 = 0x800;
    0x0001f562 mov r0, r4                                            |     r0 = r4;
    0x0001f564 adds r3, 1                                            |     r3++;
    0x0001f566 str.w r3, [fp]                                        |     __asm ("str.w r3, [fp]");
    0x0001f56a ldr.w r3, [fp, 4]                                     |     r3 = *(arg_4h);
    0x0001f56e adc r3, r3, 0                                         |     __asm ("adc r3, r3, 0");
    0x0001f572 str.w r3, [fp, 4]                                     |     __asm ("str.w r3, [arg_4h]");
    0x0001f574 adds r0, 4                                            |     r0 += 4;
    0x0001f576 blx 0xdc98                                            |     r0 = fcn_0000dc98 ();
    0x0001f57a cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0001f57c bne 0x1f490                                           |         goto label_1;
                                                                     |     }
                                                                     | label_10:
    0x0001f57e mov r6, r0                                            |     r6 = r0;
    0x0001f580 mov r0, r5                                            |     r0 = r5;
    0x0001f582 blx 0xdc8c                                            |     fcn_0000dc8c ();
    0x0001f586 mov r0, r6                                            |     r0 = r6;
                                                                     |     do {
    0x0001f588 ldr r2, [pc, 0x50]                                    |         
    0x0001f58a ldr r3, [pc, 0x44]                                    |         r3 = *(0x1f5d2);
    0x0001f58c add r2, pc                                            |         r2 = 0x3eb6c;
    0x0001f58e ldr r3, [r2, r3]                                      |         r3 = *(0x3eb6c);
    0x0001f590 ldr r2, [r3]                                          |         r2 = *(0x3eb6c);
    0x0001f592 ldr.w r3, [sp, 0x99c]                                 |         r3 = *(arg_99ch_2);
    0x0001f596 eors r2, r3                                           |         r2 ^= r3;
    0x0001f598 mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x0001f59c bne 0x1f5c8                                           |             goto label_16;
                                                                     |         }
    0x0001f59e addw sp, sp, 0x9a4                                    |         __asm ("addw sp, sp, 0x9a4");
    0x0001f5a2 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_9:
    0x0001f5a6 blx 0xe3d4                                            |         r0 = fcn_0000e3d4 ();
    0x0001f5aa ldr r0, [r0]                                          |         r0 = *(r0);
    0x0001f5ac bl 0x30b74                                            |         zbx_strerror ();
    0x0001f5b0 ldr r1, [pc, 0x2c]                                    |         
    0x0001f5b2 mov r3, r0                                            |         r3 = r0;
    0x0001f5b4 mov r2, r4                                            |         r2 = r4;
    0x0001f5b6 mov r0, r5                                            |         r0 = r5;
    0x0001f5b8 add r1, pc                                            |         r1 = 0x3eb9c;
    0x0001f5ba bl 0x44820                                            |         r0 = zbx_dsprintf ()
    0x0001f5be mov r3, r0                                            |         r3 = r0;
    0x0001f5c0 mov.w r0, -1                                          |         r0 = -1;
    0x0001f5c4 str r3, [r6]                                          |         *(r6) = r3;
    0x0001f5c6 b 0x1f588                                             |         
                                                                     |     } while (1);
                                                                     | label_16:
    0x0001f5c8 blx 0xe158                                            |     fcn_0000e158 ();
    0x0001f5cc stm r7!, {r3, r4, r7}                                 |     *(r7!) = r3;
                                                                     |     *((r7! + 4)) = r4;
                                                                     |     *((r7! + 8)) = r7;
    0x0001f5ce movs r3, r0                                           |     r3 = r0;
    0x0001f5d0 lsls r4, r2, 0xe                                      |     r4 = r2 << 0xe;
    0x0001f5d2 movs r0, r0                                           |     
    0x0001f5d4 subs r6, r0, 3                                        |     r6 = r0 - 3;
    0x0001f5d6 movs r3, r0                                           |     r3 = r0;
    0x0001f5d8 movs r3, 0                                            |     r3 = 0;
    0x0001f5da movs r3, r0                                           |     r3 = r0;
    0x0001f5dc stm r6!, {r2, r3, r6}                                 |     *(r6!) = r2;
                                                                     |     *((r6! + 4)) = r3;
                                                                     |     *((r6! + 8)) = r6;
    0x0001f5de movs r3, r0                                           |     r3 = r0;
    0x0001f5e0 movs r1, 0x9c                                         |     r1 = 0x9c;
    0x0001f5e2 movs r3, r0                                           |     r3 = r0;
    0x0001f5e4 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0001f5e8 movs r6, 0                                            |     r6 = 0;
    0x0001f5ea ldr r5, [pc, 0x2cc]                                   |     
    0x0001f5ec sub sp, 0x6c                                          |     
    0x0001f5ee ldr r4, [pc, 0x2cc]                                   |     r4 = *(0x1f8be);
    0x0001f5f0 ldr r3, [r1, 4]                                       |     r3 = *((r1 + 4));
    0x0001f5f2 add r5, pc                                            |     r5 = 0x3eeb0;
    0x0001f5f4 vmov.i32 d16, 0                                       |     __asm ("vmov.i32 d16, 0");
    0x0001f5f8 ldr r4, [r5, r4]                                      |     
    0x0001f5fa cmp r3, 5                                             |     
    0x0001f5fc ldr r4, [r4]                                          |     r4 = *(0x3eeb0);
    0x0001f5fe str r4, [sp, 0x64]                                    |     var_64h = r4;
    0x0001f600 mov.w r4, 0                                           |     r4 = 0;
    0x0001f604 mov r4, r2                                            |     r4 = r2;
    0x0001f606 str r6, [sp, 0x14]                                    |     var_14h = r6;
    0x0001f608 vstr d16, [sp, 0x18]                                  |     __asm ("vstr d16, [sp, 0x18]");
                                                                     |     if (r3 > 5) {
    0x0001f60c bgt.w 0x1f7ca                                         |         goto label_17;
                                                                     |     }
    0x0001f610 cmp r3, 0                                             |     
    0x0001f612 mov r5, r0                                            |     r5 = r0;
                                                                     |     if (r3 <= 0) {
    0x0001f614 ble.w 0x1f780                                         |         goto label_18;
                                                                     |     }
    0x0001f618 ldr r2, [r1, 8]                                       |     r2 = *((r1 + 8));
    0x0001f61a cmp r3, 1                                             |     
    0x0001f61c ldr r0, [r2]                                          |     r0 = *(r2);
                                                                     |     if (r3 == 1) {
    0x0001f61e beq.w 0x1f83e                                         |         goto label_19;
                                                                     |     }
    0x0001f622 cmp r3, 2                                             |     
    0x0001f624 ldr r1, [r2, 4]                                       |     r1 = *((r2 + 4));
                                                                     |     if (r3 == 2) {
    0x0001f626 beq.w 0x1f838                                         |         goto label_20;
                                                                     |     }
    0x0001f62a ldr r7, [r2, 8]                                       |     r7 = *((r2 + 8));
    0x0001f62c cmp r3, 3                                             |     
    0x0001f62e str r7, [sp, 0xc]                                     |     var_ch = r7;
                                                                     |     if (r3 == 3) {
    0x0001f630 beq.w 0x1f834                                         |         goto label_21;
                                                                     |     }
    0x0001f634 cmp r3, 5                                             |     
    0x0001f636 ldr r7, [r2, 0xc]                                     |     r7 = *((r2 + 0xc));
                                                                     |     if (r3 != 5) {
    0x0001f638 bne 0x1f63c                                           |         goto label_6;
                                                                     |     }
    0x0001f63a ldr r6, [r2, 0x10]                                    |     r6 = *((r2 + 0x10));
                                                                     |     do {
                                                                     | label_6:
    0x0001f63c movs r3, 0                                            |         r3 = 0;
    0x0001f63e add.w sl, sp, 0x20                                    |         sl += var_20h;
    0x0001f642 str r3, [sp, 0x20]                                    |         var_20h = r3;
    0x0001f644 add.w fp, sp, 0x30                                    |         
    0x0001f648 str r3, [sp, 0x30]                                    |         var_30h = r3;
    0x0001f64a str r3, [sp, 0x44]                                    |         var_44h = r3;
    0x0001f64c strd r3, r3, [sp, 0x24]                               |         __asm ("strd r3, r3, [sp, 0x24]");
    0x0001f650 str r3, [sp, 0x2c]                                    |         var_2ch = r3;
    0x0001f652 strd r3, r3, [sp, 0x34]                               |         __asm ("strd r3, r3, [sp, 0x34]");
    0x0001f656 str r3, [sp, 0x3c]                                    |         var_3ch = r3;
    0x0001f658 strd r3, r3, [sp, 0x50]                               |         __asm ("strd r3, r3, [sp, 0x50]");
    0x0001f65c strd r3, r3, [sp, 0x58]                               |         __asm ("strd r3, r3, [sp, 0x58]");
    0x0001f660 movs r3, 4                                            |         r3 = 4;
    0x0001f662 str r3, [sp, 0x40]                                    |         var_40h = r3;
    0x0001f664 cmp r5, 0                                             |         
                                                                     |         if (r5 != 0) {
    0x0001f666 bne.w 0x1f7c4                                         |             goto label_22;
                                                                     |         }
    0x0001f66a vldr d16, [pc, 0x23c]                                 |         __asm ("vldr d16, [0x0001f8ac]");
                                                                     | label_2:
    0x0001f66e add.w r8, sp, 0x40                                    |         r8 += var_40h;
    0x0001f672 add.w sb, sp, 0x14                                    |         sb += var_14h;
    0x0001f676 mov r3, sl                                            |         r3 = sl;
    0x0001f678 mov r2, r8                                            |         r2 = r8;
    0x0001f67a str.w sb, [sp]                                        |         __asm ("str.w sb, [sp]");
    0x0001f67e vstr d16, [sp, 0x48]                                  |         __asm ("vstr d16, [sp, 0x48]");
    0x0001f682 bl 0x1efe8                                            |         r0 = fcn_0001efe8 (r0, r1, r2, r3, r4);
    0x0001f686 cmp r0, 0                                             |         
                                                                     |         if (r0 != 0) {
    0x0001f688 bne 0x1f78a                                           |             goto label_4;
                                                                     |         }
    0x0001f68a ldr r0, [sp, 0xc]                                     |         r0 = var_ch;
    0x0001f68c mov r2, r8                                            |         r2 = r8;
    0x0001f68e mov r1, r7                                            |         r1 = r7;
    0x0001f690 mov r3, fp                                            |         r3 = fp;
    0x0001f692 str.w sb, [sp]                                        |         __asm ("str.w sb, [sp]");
    0x0001f696 bl 0x1efe8                                            |         r0 = fcn_0001efe8 (r0, r1, r2, r3, r4);
    0x0001f69a cmp r0, 0                                             |         
                                                                     |         if (r0 != 0) {
    0x0001f69c bne 0x1f78a                                           |             goto label_4;
                                                                     |         }
    0x0001f69e cmp r6, 0                                             |         
                                                                     |         if (r6 == 0) {
    0x0001f6a0 beq.w 0x1f7ea                                         |             goto label_23;
                                                                     |         }
    0x0001f6a4 ldrb r3, [r6]                                         |         r3 = *(r6);
    0x0001f6a6 cmp r3, 0                                             |         
                                                                     |         if (r3 == 0) {
    0x0001f6a8 beq.w 0x1f7ea                                         |             goto label_23;
                                                                     |         }
    0x0001f6ac ldr r1, [pc, 0x210]                                   |         
    0x0001f6ae mov r0, r6                                            |         r0 = r6;
    0x0001f6b0 add r1, pc                                            |         r1 = 0x3ef74;
    0x0001f6b2 blx 0xe3b0                                            |         fcn_0000e3b0 ();
    0x0001f6b6 cmp r5, 0                                             |         
                                                                     |         if (r5 != 0) {
    0x0001f6b8 bne.w 0x1f846                                         |             goto label_24;
                                                                     |         }
    0x0001f6bc cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001f6be beq.w 0x1f874                                         |             goto label_25;
                                                                     |         }
    0x0001f6c2 ldr r1, [pc, 0x200]                                   |         
    0x0001f6c4 mov r0, r6                                            |         r0 = r6;
    0x0001f6c6 add r1, pc                                            |         r1 = 0x3ef90;
    0x0001f6c8 blx 0xe3b0                                            |         r0 = fcn_0000e3b0 ();
    0x0001f6cc cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001f6ce beq.w 0x1f878                                         |             goto label_26;
                                                                     |         }
    0x0001f6d2 ldr r1, [pc, 0x1f4]                                   |         
    0x0001f6d4 mov r0, r6                                            |         r0 = r6;
    0x0001f6d6 add r1, pc                                            |         r1 = 0x3efa4;
    0x0001f6d8 blx 0xe3b0                                            |         r0 = fcn_0000e3b0 ();
    0x0001f6dc cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001f6de beq.w 0x1f880                                         |             goto label_27;
                                                                     |         }
    0x0001f6e2 ldr r1, [pc, 0x1e8]                                   |         
    0x0001f6e4 mov r0, r6                                            |         r0 = r6;
    0x0001f6e6 add r1, pc                                            |         r1 = 0x3efb8;
    0x0001f6e8 blx 0xe3b0                                            |         r0 = fcn_0000e3b0 ();
    0x0001f6ec cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001f6ee beq.w 0x1f884                                         |             goto label_28;
                                                                     |         }
    0x0001f6f2 ldr r1, [pc, 0x1dc]                                   |         
    0x0001f6f4 mov r0, r6                                            |         r0 = r6;
    0x0001f6f6 add r1, pc                                            |         r1 = 0x3efcc;
    0x0001f6f8 blx 0xe3b0                                            |         r0 = fcn_0000e3b0 ();
    0x0001f6fc cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001f6fe beq.w 0x1f888                                         |             goto label_29;
                                                                     |         }
    0x0001f702 ldr r1, [pc, 0x1d0]                                   |         
    0x0001f704 mov r0, r6                                            |         r0 = r6;
    0x0001f706 add r1, pc                                            |         r1 = zbx_variant_copy;
    0x0001f708 blx 0xe3b0                                            |         r0 = fcn_0000e3b0 ();
    0x0001f70c cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001f70e beq.w 0x1f88c                                         |             goto label_30;
                                                                     |         }
    0x0001f712 ldr r1, [pc, 0x1c4]                                   |         
    0x0001f714 mov r0, r6                                            |         r0 = r6;
    0x0001f716 add r1, pc                                            |         r1 = 0x3eff4;
    0x0001f718 blx 0xe3b0                                            |         r0 = fcn_0000e3b0 ();
    0x0001f71c cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001f71e beq.w 0x1f890                                         |             goto label_31;
                                                                     |         }
    0x0001f722 ldr r1, [pc, 0x1b8]                                   |         
    0x0001f724 mov r0, r6                                            |         r0 = r6;
    0x0001f726 add r1, pc                                            |         r1 = 0x3f008;
    0x0001f728 blx 0xe3b0                                            |         r0 = fcn_0000e3b0 ();
    0x0001f72c cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001f72e beq.w 0x1f894                                         |             goto label_32;
                                                                     |         }
    0x0001f732 ldr r1, [pc, 0x1ac]                                   |         
    0x0001f734 mov r0, r6                                            |         r0 = r6;
    0x0001f736 add r1, pc                                            |         r1 = 0x3f01c;
    0x0001f738 blx 0xe3b0                                            |         r0 = fcn_0000e3b0 ();
    0x0001f73c cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001f73e beq.w 0x1f89c                                         |             goto label_33;
                                                                     |         }
    0x0001f742 ldr r1, [pc, 0x1a0]                                   |         
    0x0001f744 mov r0, r6                                            |         r0 = r6;
    0x0001f746 add r1, pc                                            |         r1 = 0x3f030;
    0x0001f748 blx 0xe3b0                                            |         r0 = fcn_0000e3b0 ();
    0x0001f74c cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001f74e beq.w 0x1f8a0                                         |             goto label_34;
                                                                     |         }
    0x0001f752 ldr r1, [pc, 0x194]                                   |         
    0x0001f754 mov r0, r6                                            |         r0 = r6;
    0x0001f756 add r1, pc                                            |         r1 = 0x3f044;
    0x0001f758 blx 0xe3b0                                            |         r0 = fcn_0000e3b0 ();
    0x0001f75c cmp r0, 0                                             |         
                                                                     |         if (r0 != 0) {
    0x0001f75e bne 0x1f854                                           |             goto label_35;
                                                                     |         }
    0x0001f760 movs r5, 0xb                                          |         r5 = 0xb;
                                                                     | label_3:
    0x0001f762 ldr r0, [pc, 0x188]                                   |         
    0x0001f764 add r6, sp, 0x18                                      |         r6 += var_18h;
    0x0001f766 mov r3, fp                                            |         r3 = fp;
    0x0001f768 mov r2, sl                                            |         r2 = sl;
    0x0001f76a mov r1, r5                                            |         r1 = r5;
    0x0001f76c str.w sb, [sp, 4]                                     |         __asm ("str.w sb, [arg_4h]");
    0x0001f770 add r0, pc                                            |         r0 = 0x3f062;
    0x0001f772 str r6, [sp]                                          |         *(sp) = r6;
    0x0001f774 bl 0x1f42c                                            |         r0 = fcn_0001f42c (r0, r1, r2, r3, r4, r5, r6);
                                                                     |         if (r0 != 0) {
    0x0001f778 cbnz r0, 0x1f78a                                      |             goto label_4;
                                                                     |         }
    0x0001f77a ldr r0, [pc, 0x174]                                   |         
    0x0001f77c add r0, pc                                            |         r0 = 0x3f072;
    0x0001f77e b 0x1f80e                                             |         goto label_36;
                                                                     | label_18:
    0x0001f780 mov r7, r6                                            |         r7 = r6;
    0x0001f782 mov r1, r6                                            |         r1 = r6;
    0x0001f784 mov r0, r6                                            |         r0 = r6;
    0x0001f786 str r6, [sp, 0xc]                                     |         var_ch = r6;
    0x0001f788 b 0x1f63c                                             |         
                                                                     |     } while (1);
                                                                     | label_4:
    0x0001f78a ldr r3, [r4, 0x28]                                    |     r3 = *((r4 + 0x28));
    0x0001f78c ldr r0, [sp, 0x14]                                    |     r0 = var_14h;
    0x0001f78e orr r3, r3, 0x20                                      |     r3 |= 0x20;
    0x0001f792 str r3, [r4, 0x28]                                    |     *((r4 + 0x28)) = r3;
                                                                     | label_7:
    0x0001f794 movs r5, 1                                            |     r5 = 1;
    0x0001f796 str r0, [r4, 0x20]                                    |     *((r4 + 0x20)) = r0;
                                                                     | label_5:
    0x0001f798 ldr r0, [sp, 0x20]                                    |     r0 = var_20h;
                                                                     |     if (r0 != 0) {
    0x0001f79a cbz r0, 0x1f7a0                                       |         
    0x0001f79c blx 0xdd90                                            |         strrchr (r0, r1);
                                                                     |     }
    0x0001f7a0 ldr r0, [sp, 0x30]                                    |     r0 = var_30h;
                                                                     |     if (r0 == 0) {
    0x0001f7a2 cbz r0, 0x1f7a8                                       |         goto label_37;
                                                                     |     }
    0x0001f7a4 blx 0xdd90                                            |     strrchr (r0, r1);
                                                                     |     do {
                                                                     | label_37:
    0x0001f7a8 ldr r2, [pc, 0x148]                                   |         
    0x0001f7aa ldr r3, [pc, 0x110]                                   |         r3 = *(0x1f8be);
    0x0001f7ac add r2, pc                                            |         r2 = zbx_variant_convert;
    0x0001f7ae ldr r3, [r2, r3]                                      |         r3 = zbx_variant_convert;
    0x0001f7b0 ldr r2, [r3]                                          |         r2 = zbx_variant_convert;
    0x0001f7b2 ldr r3, [sp, 0x64]                                    |         r3 = var_64h;
    0x0001f7b4 eors r2, r3                                           |         r2 ^= r3;
    0x0001f7b6 mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x0001f7ba bne 0x1f898                                           |             goto label_38;
                                                                     |         }
    0x0001f7bc mov r0, r5                                            |         r0 = r5;
    0x0001f7be add sp, 0x6c                                          |         
    0x0001f7c0 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_22:
    0x0001f7c4 vldr d16, [pc, 0xe8]                                  |         __asm ("vldr d16, [0x0001f8b4]");
    0x0001f7c8 b 0x1f66e                                             |         goto label_2;
                                                                     | label_17:
    0x0001f7ca ldr r0, [r2, 0x28]                                    |         r0 = *((r2 + 0x28));
    0x0001f7cc movw r1, 0x446                                        |         r1 = 0x446;
    0x0001f7d0 ldr r3, [pc, 0x124]                                   |         
    0x0001f7d2 mov r2, r6                                            |         r2 = r6;
    0x0001f7d4 movs r5, 1                                            |         r5 = 1;
    0x0001f7d6 orr r0, r0, 0x20                                      |         r0 |= 0x20;
    0x0001f7da str r0, [r4, 0x28]                                    |         *((r4 + 0x28)) = r0;
    0x0001f7dc add r3, pc                                            |         r3 = 0x3f0d8;
    0x0001f7de ldr r0, [pc, 0x11c]                                   |         
    0x0001f7e0 add r0, pc                                            |         r0 = 0x3f0e2;
    0x0001f7e2 bl 0x40ed8                                            |         zbx_strdup2 ();
    0x0001f7e6 str r0, [r4, 0x20]                                    |         *((r4 + 0x20)) = r0;
    0x0001f7e8 b 0x1f7a8                                             |         
                                                                     |     } while (1);
                                                                     | label_23:
    0x0001f7ea cmp r5, 0                                             |     
                                                                     |     if (r5 == 0) {
    0x0001f7ec beq 0x1f762                                           |         goto label_3;
                                                                     |     }
    0x0001f7ee movs r5, 0                                            |     r5 = 0;
                                                                     | label_8:
    0x0001f7f0 ldr r0, [pc, 0x10c]                                   |     
    0x0001f7f2 add r6, sp, 0x18                                      |     r6 += var_18h;
    0x0001f7f4 mov r3, fp                                            |     r3 = fp;
    0x0001f7f6 mov r2, sl                                            |     r2 = sl;
    0x0001f7f8 mov r1, r5                                            |     r1 = r5;
    0x0001f7fa str.w sb, [sp, 4]                                     |     __asm ("str.w sb, [arg_4h]");
    0x0001f7fc str r0, [sp, 0x10]                                    |     *((sp + 0x10)) = r0;
    0x0001f7fe add r0, pc                                            |     r0 = 0x3f102;
    0x0001f800 str r6, [sp]                                          |     *(sp) = r6;
    0x0001f802 bl 0x1f42c                                            |     r0 = fcn_0001f42c (r0, r1, r2, r3, r4, r5, r6);
    0x0001f806 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0001f808 bne 0x1f78a                                           |         goto label_4;
                                                                     |     }
    0x0001f80a ldr r0, [pc, 0xf8]                                    |     
    0x0001f80c add r0, pc                                            |     r0 = 0x3f116;
                                                                     | label_36:
    0x0001f80e mov r1, r5                                            |     r1 = r5;
    0x0001f810 mov r3, fp                                            |     r3 = fp;
    0x0001f812 mov r2, sl                                            |     r2 = sl;
    0x0001f814 strd r6, sb, [sp]                                     |     __asm ("strd r6, sb, [sp]");
    0x0001f818 bl 0x1f24c                                            |     r0 = fcn_0001f24c (r0, r1, r2, r3, r4, r5, r6);
    0x0001f81c mov r5, r0                                            |     r5 = r0;
    0x0001f81e cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0001f820 bne 0x1f78a                                           |         goto label_4;
                                                                     |     }
    0x0001f822 ldr r3, [r4, 0x28]                                    |     r3 = *((r4 + 0x28));
    0x0001f824 ldrd r0, r1, [sp, 0x18]                               |     __asm ("ldrd r0, r1, [var_18h]");
    0x0001f828 orr r3, r3, 1                                         |     r3 |= 1;
    0x0001f82c strd r0, r1, [r4, 8]                                  |     __asm ("strd r0, r1, [r4, 8]");
    0x0001f830 str r3, [r4, 0x28]                                    |     *((r4 + 0x28)) = r3;
    0x0001f832 b 0x1f798                                             |     goto label_5;
                                                                     | label_21:
    0x0001f834 mov r7, r6                                            |     r7 = r6;
    0x0001f836 b 0x1f63c                                             |     goto label_6;
                                                                     | label_20:
    0x0001f838 mov r7, r6                                            |     r7 = r6;
    0x0001f83a str r6, [sp, 0xc]                                     |     var_ch = r6;
    0x0001f83c b 0x1f63c                                             |     goto label_6;
                                                                     | label_19:
    0x0001f83e mov r7, r6                                            |     r7 = r6;
    0x0001f840 mov r1, r6                                            |     r1 = r6;
    0x0001f842 str r6, [sp, 0xc]                                     |     var_ch = r6;
    0x0001f844 b 0x1f63c                                             |     goto label_6;
                                                                     |     if (r0 != 0) {
                                                                     | label_24:
    0x0001f846 cbz r0, 0x1f870                                       |         
    0x0001f848 ldr r1, [pc, 0xbc]                                    |         
    0x0001f84a mov r0, r6                                            |         r0 = r6;
    0x0001f84c add r1, pc                                            |         r1 = 0x3f158;
    0x0001f84e blx 0xe3b0                                            |         r0 = fcn_0000e3b0 ();
                                                                     |         if (r0 == 0) {
    0x0001f852 cbz r0, 0x1f87c                                       |             goto label_39;
                                                                     |         }
                                                                     | label_35:
    0x0001f854 ldr r0, [r4, 0x28]                                    |         r0 = *((r4 + 0x28));
    0x0001f856 movs r2, 0                                            |         r2 = 0;
    0x0001f858 ldr r3, [pc, 0xb0]                                    |         
    0x0001f85a movw r1, 0x474                                        |         r1 = 0x474;
    0x0001f85e orr r0, r0, 0x20                                      |         r0 |= 0x20;
    0x0001f862 str r0, [r4, 0x28]                                    |         *((r4 + 0x28)) = r0;
    0x0001f864 add r3, pc                                            |         r3 = 0x3f174;
    0x0001f866 ldr r0, [pc, 0xa8]                                    |         
    0x0001f868 add r0, pc                                            |         r0 = 0x3f17e;
    0x0001f86a bl 0x40ed8                                            |         zbx_strdup2 ();
    0x0001f86e b 0x1f794                                             |         goto label_7;
                                                                     |     }
    0x0001f870 movs r5, 1                                            |     r5 = 1;
    0x0001f872 b 0x1f7f0                                             |     goto label_8;
                                                                     | label_25:
    0x0001f874 movs r5, 1                                            |     r5 = 1;
    0x0001f876 b 0x1f762                                             |     goto label_3;
                                                                     | label_26:
    0x0001f878 movs r5, 2                                            |     r5 = 2;
    0x0001f87a b 0x1f762                                             |     goto label_3;
                                                                     | label_39:
    0x0001f87c movs r5, 7                                            |     r5 = 7;
    0x0001f87e b 0x1f7f0                                             |     goto label_8;
                                                                     | label_27:
    0x0001f880 movs r5, 3                                            |     r5 = 3;
    0x0001f882 b 0x1f762                                             |     goto label_3;
                                                                     | label_28:
    0x0001f884 movs r5, 4                                            |     r5 = 4;
    0x0001f886 b 0x1f762                                             |     goto label_3;
                                                                     | label_29:
    0x0001f888 movs r5, 5                                            |     r5 = 5;
    0x0001f88a b 0x1f762                                             |     goto label_3;
                                                                     | label_30:
    0x0001f88c movs r5, 6                                            |     r5 = 6;
    0x0001f88e b 0x1f762                                             |     goto label_3;
                                                                     | label_31:
    0x0001f890 movs r5, 7                                            |     r5 = 7;
    0x0001f892 b 0x1f762                                             |     goto label_3;
                                                                     | label_32:
    0x0001f894 movs r5, 8                                            |     r5 = 8;
    0x0001f896 b 0x1f762                                             |     goto label_3;
                                                                     | label_38:
    0x0001f898 blx 0xe158                                            |     fcn_0000e158 ();
                                                                     | label_33:
    0x0001f89c movs r5, 9                                            |     r5 = 9;
    0x0001f89e b 0x1f762                                             |     goto label_3;
                                                                     | label_34:
    0x0001f8a0 movs r5, 0xa                                          |     r5 = 0xa;
    0x0001f8a2 b 0x1f762                                             |     goto label_3;
                                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x21718 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00021718 ()                                      | void fcn_00021718 (int16_t arg_24h, int16_t arg_28h, int16_t arg_2ch, int16_t arg_38h, int16_t arg_40h, int16_t arg_4ch, int16_t arg_84ch, int16_t arg2) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_10h_2;
                                                                 |     int16_t var_1ch_2;
                                                                 |     int16_t var_81ch;
                                                                 |     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;
                                                                 |     r1 = arg2;
    0x00021718 push.w {r4, r5, r6, r7, r8, sb, sl, lr}           |     
    0x0002171c mov r5, r0                                        |     r5 = r0;
    0x0002171e ldr.w r0, [pc, 0x4f8]                             |     r0 = *(0x00021c18);
    0x00021722 mov r8, r1                                        |     r8 = r1;
    0x00021724 mov r6, r2                                        |     r6 = r2;
    0x00021726 movs r3, 0xd8                                     |     r3 = 0xd8;
    0x00021728 ldr.w r1, [pc, 0x4f0]                             |     
    0x0002172c movs r2, 0                                        |     r2 = 0;
    0x0002172e add r0, pc                                        |     r0 += pc;
    0x00021730 vpush {d8}                                        |     __asm ("vpush {d8}");
    0x00021734 sub.w sp, sp, 0x820                               |     
    0x00021738 ldr r1, [r0, r1]                                  |     r1 = *((r0 + r1));
    0x0002173a ldr.w r0, [pc, 0x4e4]                             |     
    0x0002173e ldr r1, [r1]                                      |     r1 = *(0x21c1c);
    0x00021740 str.w r1, [sp, 0x81c]                             |     __asm ("str.w r1, [var_81ch]");
    0x00021744 mov.w r1, 0                                       |     r1 = 0;
    0x00021748 movw r1, 0x641                                    |     r1 = 0x641;
    0x0002174c add r0, pc                                        |     r0 = 0x43372;
    0x0002174e bl 0x40dd8                                        |     zbx_malloc2 ();
    0x00021752 cmp r6, 2                                         |     
    0x00021754 mov r4, r0                                        |     r4 = r0;
                                                                 |     if (r6 != 2) {
    0x00021756 beq 0x2177a                                       |         
    0x00021758 ldr.w r1, [pc, 0x4c8]                             |         
    0x0002175c movs r3, 0                                        |         r3 = 0;
    0x0002175e str r3, [sp]                                      |         *(sp) = r3;
    0x00021760 movs r2, 1                                        |         r2 = 1;
    0x00021762 add.w r3, r0, 8                                   |         r3 = r0 + 8;
    0x00021766 mov r0, r5                                        |         r0 = r5;
    0x00021768 add r1, pc                                        |         r1 = 0x43390;
    0x0002176a bl 0x20e0c                                        |         r0 = fcn_00020e0c (r0, r1, r2, r3, r4, r5, r6);
    0x0002176e cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00021770 bne.w 0x21a3c                                     |             goto label_37;
                                                                 |         }
    0x00021774 cmp r6, 1                                         |         
                                                                 |         if (r6 == 1) {
    0x00021776 beq.w 0x21a4a                                     |             goto label_38;
                                                                 |         }
                                                                 |     }
                                                                 | label_2:
    0x0002177a ldr.w r1, [pc, 0x4ac]                             |     r1 = *(0x00021c28);
    0x0002177e movs r3, 0                                        |     r3 = 0;
    0x00021780 str r3, [sp]                                      |     *(sp) = r3;
    0x00021782 movs r2, 2                                        |     r2 = 2;
    0x00021784 add.w r3, r4, 0x68                                |     r3 = r4 + 0x68;
    0x00021788 mov r0, r5                                        |     r0 = r5;
    0x0002178a add r1, pc                                        |     r1 += pc;
    0x0002178c bl 0x20e0c                                        |     r0 = fcn_00020e0c (r0, r1, r2, r3, r4, r5, r6);
                                                                 |     if (r0 != 0) {
    0x00021790 cbz r0, 0x2179a                                   |         
    0x00021792 vmov.i8 d16, 0xff                                 |         __asm ("vmov.i8 d16, 0xff");
    0x00021796 vstr d16, [r4, 0x68]                              |         __asm ("vstr d16, [r4, 0x68]");
                                                                 |     }
    0x0002179a ldr.w r1, [pc, 0x490]                             |     r1 = *(0x00021c2c);
    0x0002179e movs r3, 0                                        |     r3 = 0;
    0x000217a0 str r3, [sp]                                      |     *(sp) = r3;
    0x000217a2 movs r2, 2                                        |     r2 = 2;
    0x000217a4 add.w r3, r4, 0x98                                |     r3 = r4 + 0x98;
    0x000217a8 mov r0, r5                                        |     r0 = r5;
    0x000217aa add r1, pc                                        |     r1 += pc;
    0x000217ac bl 0x20e0c                                        |     r0 = fcn_00020e0c (r0, r1, r2, r3, r4, r5, r6);
                                                                 |     if (r0 != 0) {
    0x000217b0 cbz r0, 0x217ba                                   |         
    0x000217b2 vmov.i8 d16, 0xff                                 |         __asm ("vmov.i8 d16, 0xff");
    0x000217b6 vstr d16, [r4, 0x98]                              |         __asm ("vstr d16, [r4, 0x98]");
                                                                 |     }
    0x000217ba ldr.w r1, [pc, 0x474]                             |     r1 = *(0x00021c30);
    0x000217be movs r3, 0                                        |     r3 = 0;
    0x000217c0 str r3, [sp]                                      |     *(sp) = r3;
    0x000217c2 movs r2, 2                                        |     r2 = 2;
    0x000217c4 add.w r3, r4, 0xb0                                |     r3 = r4 + 0xb0;
    0x000217c8 mov r0, r5                                        |     r0 = r5;
    0x000217ca add r1, pc                                        |     r1 += pc;
    0x000217cc bl 0x20e0c                                        |     r0 = fcn_00020e0c (r0, r1, r2, r3, r4, r5, r6);
                                                                 |     if (r0 != 0) {
    0x000217d0 cbz r0, 0x217da                                   |         
    0x000217d2 vmov.i8 d16, 0xff                                 |         __asm ("vmov.i8 d16, 0xff");
    0x000217d6 vstr d16, [r4, 0xb0]                              |         __asm ("vstr d16, [r4, 0xb0]");
                                                                 |     }
    0x000217da ldr.w r1, [pc, 0x458]                             |     r1 = *(0x00021c34);
    0x000217de movs r3, 0                                        |     r3 = 0;
    0x000217e0 str r3, [sp]                                      |     *(sp) = r3;
    0x000217e2 movs r2, 2                                        |     r2 = 2;
    0x000217e4 add.w r3, r4, 0x80                                |     r3 = r4 + 0x80;
    0x000217e8 mov r0, r5                                        |     r0 = r5;
    0x000217ea add r1, pc                                        |     r1 += pc;
    0x000217ec bl 0x20e0c                                        |     r0 = fcn_00020e0c (r0, r1, r2, r3, r4, r5, r6);
                                                                 |     if (r0 != 0) {
    0x000217f0 cbz r0, 0x217fa                                   |         
    0x000217f2 vmov.i8 d16, 0xff                                 |         __asm ("vmov.i8 d16, 0xff");
    0x000217f6 vstr d16, [r4, 0x80]                              |         __asm ("vstr d16, [r4, 0x80]");
                                                                 |     }
    0x000217fa ldr.w r1, [pc, 0x43c]                             |     r1 = *(0x00021c38);
    0x000217fe movs r3, 0                                        |     r3 = 0;
    0x00021800 str r3, [sp]                                      |     *(sp) = r3;
    0x00021802 movs r2, 2                                        |     r2 = 2;
    0x00021804 add.w r3, r4, 0xc8                                |     r3 = r4 + 0xc8;
    0x00021808 mov r0, r5                                        |     r0 = r5;
    0x0002180a add r1, pc                                        |     r1 += pc;
    0x0002180c bl 0x20e0c                                        |     r0 = fcn_00020e0c (r0, r1, r2, r3, r4, r5, r6);
                                                                 |     if (r0 != 0) {
    0x00021810 cbz r0, 0x2181a                                   |         
    0x00021812 vmov.i8 d16, 0xff                                 |         __asm ("vmov.i8 d16, 0xff");
    0x00021816 vstr d16, [r4, 0xc8]                              |         __asm ("vstr d16, [r4, 0xc8]");
                                                                 |     }
    0x0002181a ldr.w r1, [pc, 0x420]                             |     r1 = *(0x00021c3c);
    0x0002181e movs r3, 0                                        |     r3 = 0;
    0x00021820 str r3, [sp]                                      |     *(sp) = r3;
    0x00021822 movs r2, 2                                        |     r2 = 2;
    0x00021824 add.w r3, r4, 0x88                                |     r3 = r4 + 0x88;
    0x00021828 mov r0, r5                                        |     r0 = r5;
    0x0002182a add r1, pc                                        |     r1 += pc;
    0x0002182c bl 0x20e0c                                        |     r0 = fcn_00020e0c (r0, r1, r2, r3, r4, r5, r6);
                                                                 |     if (r0 != 0) {
    0x00021830 cbz r0, 0x2183a                                   |         
    0x00021832 vmov.i8 d16, 0xff                                 |         __asm ("vmov.i8 d16, 0xff");
    0x00021836 vstr d16, [r4, 0x88]                              |         __asm ("vstr d16, [r4, 0x88]");
                                                                 |     }
    0x0002183a ldr.w r1, [pc, 0x404]                             |     r1 = *(0x00021c40);
    0x0002183e movs r3, 0                                        |     r3 = 0;
    0x00021840 str r3, [sp]                                      |     *(sp) = r3;
    0x00021842 movs r2, 2                                        |     r2 = 2;
    0x00021844 add.w r3, r4, 0xa0                                |     r3 = r4 + 0xa0;
    0x00021848 mov r0, r5                                        |     r0 = r5;
    0x0002184a add r1, pc                                        |     r1 += pc;
    0x0002184c bl 0x20e0c                                        |     r0 = fcn_00020e0c (r0, r1, r2, r3, r4, r5, r6);
                                                                 |     if (r0 != 0) {
    0x00021850 cbz r0, 0x2185a                                   |         
    0x00021852 vmov.i8 d16, 0xff                                 |         __asm ("vmov.i8 d16, 0xff");
    0x00021856 vstr d16, [r4, 0xa0]                              |         __asm ("vstr d16, [r4, 0xa0]");
                                                                 |     }
    0x0002185a ldr r1, [pc, 0x3e8]                               |     
    0x0002185c movs r3, 0                                        |     r3 = 0;
    0x0002185e str r3, [sp]                                      |     *(sp) = r3;
    0x00021860 movs r2, 2                                        |     r2 = 2;
    0x00021862 add.w r3, r4, 0xb8                                |     r3 = r4 + 0xb8;
    0x00021866 mov r0, r5                                        |     r0 = r5;
    0x00021868 add r1, pc                                        |     r1 = 0x434b2;
    0x0002186a bl 0x20e0c                                        |     r0 = fcn_00020e0c (r0, r1, r2, r3, r4, r5, r6);
                                                                 |     if (r0 != 0) {
    0x0002186e cbz r0, 0x21878                                   |         
    0x00021870 vmov.i8 d16, 0xff                                 |         __asm ("vmov.i8 d16, 0xff");
    0x00021874 vstr d16, [r4, 0xb8]                              |         __asm ("vstr d16, [r4, 0xb8]");
                                                                 |     }
    0x00021878 ldr r1, [pc, 0x3cc]                               |     
    0x0002187a movs r3, 0                                        |     r3 = 0;
    0x0002187c str r3, [sp]                                      |     *(sp) = r3;
    0x0002187e movs r2, 2                                        |     r2 = 2;
    0x00021880 add.w r3, r4, 0xd0                                |     r3 = r4 + 0xd0;
    0x00021884 mov r0, r5                                        |     r0 = r5;
    0x00021886 add r1, pc                                        |     r1 = 0x434d2;
    0x00021888 bl 0x20e0c                                        |     r0 = fcn_00020e0c (r0, r1, r2, r3, r4, r5, r6);
                                                                 |     if (r0 != 0) {
    0x0002188c cbz r0, 0x21896                                   |         
    0x0002188e vmov.i8 d16, 0xff                                 |         __asm ("vmov.i8 d16, 0xff");
    0x00021892 vstr d16, [r4, 0xd0]                              |         __asm ("vstr d16, [r4, 0xd0]");
                                                                 |     }
    0x00021896 ldr r1, [pc, 0x3b4]                               |     
    0x00021898 movs r3, 0                                        |     r3 = 0;
    0x0002189a str r3, [sp]                                      |     *(sp) = r3;
    0x0002189c movs r2, 1                                        |     r2 = 1;
    0x0002189e add.w r3, r4, 0x58                                |     r3 = r4 + 0x58;
    0x000218a2 mov r0, r5                                        |     r0 = r5;
    0x000218a4 add r1, pc                                        |     r1 = 0x434f6;
    0x000218a6 bl 0x20e0c                                        |     r0 = fcn_00020e0c (r0, r1, r2, r3, r4, r5, r6);
    0x000218aa cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000218ac bne.w 0x21a32                                     |         goto label_39;
                                                                 |     }
                                                                 | label_1:
    0x000218b0 ldrd r3, r2, [r4, 0x88]                           |     __asm ("ldrd r3, r2, [r4, 0x88]");
    0x000218b4 cmp.w r2, -1                                      |     
    0x000218b8 it eq                                             |     
                                                                 |     if (r2 == -1) {
    0x000218ba cmpeq r3, -1                                      |         __asm ("cmpeq r3, -1");
                                                                 |     }
                                                                 |     if (r2 != -1) {
    0x000218be beq 0x218f0                                       |         
    0x000218c0 ldrd r1, r0, [r4, 0x80]                           |         __asm ("ldrd r1, r0, [r4, 0x80]");
    0x000218c4 cmp.w r0, -1                                      |         
    0x000218c8 it eq                                             |         
                                                                 |         if (r0 == -1) {
    0x000218ca cmpeq r1, -1                                      |             __asm ("cmpeq r1, -1");
                                                                 |         }
                                                                 |         if (r0 == -1) {
    0x000218ce beq.w 0x21be8                                     |             goto label_40;
                                                                 |         }
    0x000218d2 ldrd r7, ip, [r4, 0xc8]                           |         __asm ("ldrd r7, ip, [r4, 0xc8]");
    0x000218d6 cmp.w ip, -1                                      |         
    0x000218da it eq                                             |         
                                                                 |         if (ip == -1) {
    0x000218dc cmpeq r7, -1                                      |             __asm ("cmpeq r7, -1");
                                                                 |         }
                                                                 |         if (ip == -1) {
    0x000218e0 beq.w 0x21bf4                                     |             goto label_41;
                                                                 |         }
    0x000218e4 adds r3, r3, r1                                   |         r3 += r1;
    0x000218e6 adc.w r2, r2, r0                                  |         __asm ("adc.w r2, r2, r0");
    0x000218ea adds r3, r3, r7                                   |         r3 += r7;
    0x000218ec adc.w r2, ip, r2                                  |         __asm ("adc.w r2, ip, r2");
                                                                 |     }
                                                                 | label_11:
    0x000218f0 ldr r1, [pc, 0x35c]                               |     
    0x000218f2 mov r0, r5                                        |     r0 = r5;
    0x000218f4 strd r3, r2, [r4, 0xc0]                           |     __asm ("strd r3, r2, [r4, 0xc0]");
    0x000218f8 movs r3, 0                                        |     r3 = 0;
    0x000218fa str r3, [sp]                                      |     *(sp) = r3;
    0x000218fc movs r2, 2                                        |     r2 = 2;
    0x000218fe add.w r3, r4, 0x78                                |     r3 = r4 + 0x78;
    0x00021902 add r1, pc                                        |     r1 = 0x43556;
    0x00021904 bl 0x20e0c                                        |     r0 = fcn_00020e0c (r0, r1, r2, r3, r4, r5, r6);
    0x00021908 mov r7, r0                                        |     r7 = r0;
    0x0002190a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002190c beq.w 0x21b84                                     |         goto label_42;
                                                                 |     }
    0x00021910 vmov.i8 d17, 0xff                                 |     __asm ("vmov.i8 d17, 0xff");
    0x00021914 add r7, sp, 0x10                                  |     r7 += var_10h_2;
    0x00021916 vmov.f64 d16, -1.000000e+00                       |     __asm ("vmov.f64 d16, -1");
    0x0002191a vstr d17, [r4, 0x78]                              |     __asm ("vstr d17, [r4, 0x78]");
                                                                 | label_10:
    0x0002191e movs r3, 0                                        |     r3 = 0;
    0x00021920 vstr d16, [r4, 0x70]                              |     __asm ("vstr d16, [r4, 0x70]");
    0x00021924 str r3, [r4, 0x14]                                |     *((r4 + 0x14)) = r3;
    0x00021926 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x00021928 beq.w 0x21b44                                     |         goto label_43;
                                                                 |     }
                                                                 | label_3:
    0x0002192c ldr r1, [pc, 0x324]                               |     
    0x0002192e movs r3, 0                                        |     r3 = 0;
    0x00021930 str r3, [sp]                                      |     *(sp) = r3;
    0x00021932 movs r2, 1                                        |     r2 = 1;
    0x00021934 add.w r3, r4, 0x50                                |     r3 = r4 + 0x50;
    0x00021938 mov r0, r5                                        |     r0 = r5;
    0x0002193a add r1, pc                                        |     r1 = 0x43592;
    0x0002193c bl 0x20e0c                                        |     r0 = fcn_00020e0c (r0, r1, r2, r3, r4, r5, r6);
                                                                 |     if (r0 != 0) {
    0x00021940 cbz r0, 0x2194a                                   |         
    0x00021942 vmov.i8 d16, 0xff                                 |         __asm ("vmov.i8 d16, 0xff");
    0x00021946 vstr d16, [r4, 0x50]                              |         __asm ("vstr d16, [r4, 0x50]");
                                                                 |     }
    0x0002194a ldr r1, [pc, 0x30c]                               |     
    0x0002194c movs r3, 0                                        |     r3 = 0;
    0x0002194e str r3, [sp]                                      |     *(sp) = r3;
    0x00021950 movs r2, 1                                        |     r2 = 1;
    0x00021952 mov r3, r7                                        |     r3 = r7;
    0x00021954 mov r0, r5                                        |     r0 = r5;
    0x00021956 add r1, pc                                        |     r1 = 0x435b4;
    0x00021958 bl 0x20e0c                                        |     r0 = fcn_00020e0c (r0, r1, r2, r3, r4, r5, r6);
    0x0002195c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002195e beq.w 0x21ace                                     |         goto label_44;
                                                                 |     }
    0x00021962 ldrd r2, r3, [r4, 0x50]                           |     __asm ("ldrd r2, r3, [r4, 0x50]");
    0x00021966 vmov.i8 d16, 0xff                                 |     __asm ("vmov.i8 d16, 0xff");
    0x0002196a cmp.w r3, -1                                      |     
    0x0002196e it eq                                             |     
                                                                 |     if (r3 == -1) {
    0x00021970 cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |     }
    0x00021974 vstr d16, [r7]                                    |     __asm ("vstr d16, [r7]");
                                                                 |     if (r3 != -1) {
    0x00021978 bne 0x21a68                                       |         goto label_7;
                                                                 |     }
                                                                 | label_6:
    0x0002197a cmp r6, 2                                         |     
                                                                 |     if (r6 != 2) {
    0x0002197c bne 0x21a74                                       |         goto label_45;
                                                                 |     }
                                                                 | label_4:
    0x0002197e movs r3, 0                                        |     r3 = 0;
    0x00021980 str r3, [r4, 0x1c]                                |     *((r4 + 0x1c)) = r3;
                                                                 | label_5:
    0x00021982 vmov.i8 d16, 0xff                                 |     __asm ("vmov.i8 d16, 0xff");
    0x00021986 movs r1, 0                                        |     r1 = 0;
    0x00021988 movs r0, 0                                        |     r0 = 0;
    0x0002198a movt r1, 0xbff0                                   |     r1 = (r1 & 0xFFFF) | 0xbff00000;
    0x0002198e add r5, sp, 0x1c                                  |     r5 += var_1ch_2;
    0x00021990 strd r0, r1, [r4, 0x40]                           |     __asm ("strd r0, r1, [r4, 0x40]");
    0x00021994 strd r0, r1, [r4, 0x48]                           |     __asm ("strd r0, r1, [r4, 0x48]");
    0x00021998 mov r2, r8                                        |     r2 = r8;
    0x0002199a mov.w r1, 0x800                                   |     r1 = 0x800;
    0x0002199e mov r0, r5                                        |     r0 = r5;
    0x000219a0 vstr d16, [r4, 0x60]                              |     __asm ("vstr d16, [r4, 0x60]");
    0x000219a4 blx 0xdc98                                        |     r0 = fcn_0000dc98 ();
                                                                 |     if (r0 == 0) {
    0x000219a8 cbz r0, 0x21a0c                                   |         goto label_8;
                                                                 |     }
    0x000219aa mov r0, r5                                        |     r0 = r5;
    0x000219ac movs r1, 0x29                                     |     r1 = 0x29;
    0x000219ae blx 0xdda8                                        |     r0 = statvfs64 ();
    0x000219b2 mov r5, r0                                        |     r5 = r0;
                                                                 |     if (r0 == 0) {
    0x000219b4 cbz r0, 0x21a0c                                   |         goto label_8;
                                                                 |     }
    0x000219b6 movs r0, 2                                        |     r0 = 2;
    0x000219b8 blx 0xdbf8                                        |     longjmp_chk ();
    0x000219bc ldrb r3, [r5]                                     |     r3 = *(r5);
    0x000219be mov r8, r0                                        |     r8 = r0;
                                                                 |     if (r3 == 0) {
    0x000219c0 cbz r3, 0x21a0c                                   |         goto label_8;
                                                                 |     }
    0x000219c2 movs r6, 0                                        |     r6 = 0;
    0x000219c4 b 0x219d0                                         |     goto label_46;
                                                                 | label_0:
    0x000219c6 cmp r6, 0xa                                       |     
                                                                 |     if (r6 == 0xa) {
    0x000219c8 beq.w 0x21afc                                     |         goto label_47;
                                                                 |     }
                                                                 |     do {
                                                                 | label_9:
    0x000219cc ldrb r3, [r5]                                     |         r3 = *(r5);
                                                                 |         if (r3 == 0) {
    0x000219ce cbz r3, 0x21a0c                                   |             goto label_8;
                                                                 |         }
                                                                 | label_46:
    0x000219d0 cmp r3, 0x20                                      |         
    0x000219d2 add.w r5, r5, 1                                   |         r5++;
    0x000219d6 bne 0x219cc                                       |         
                                                                 |     } while (r3 != 0x20);
    0x000219d8 adds r6, 1                                        |     r6++;
    0x000219da cmp r6, 0xc                                       |     
                                                                 |     if (r6 == 0xc) {
    0x000219dc beq.w 0x21b0e                                     |         goto label_48;
                                                                 |     }
    0x000219e0 cmp r6, 0xd                                       |     
                                                                 |     if (r6 != 0xd) {
    0x000219e2 bne 0x219c6                                       |         goto label_0;
                                                                 |     }
    0x000219e4 mov r1, r7                                        |     r1 = r7;
    0x000219e6 mov r0, r5                                        |     r0 = r5;
    0x000219e8 bl 0x20770                                        |     fcn_00020770 (r0, r1);
    0x000219ec adds r0, 1                                        |     r0++;
                                                                 |     if (r0 != 1) {
    0x000219ee beq 0x21a0c                                       |         
    0x000219f0 ldrd r0, r1, [r7]                                 |         __asm ("ldrd r0, r1, [r7]");
    0x000219f4 bl 0x4c6f4                                        |         fcn_0004c6f4 (r0, r1, r2);
    0x000219f8 vmov s15, r8                                      |         __asm ("vmov s15, r8");
    0x000219fc vcvt.f64.s32 d16, s15                             |         __asm ("vcvt.f64.s32 d16, s15");
    0x00021a00 vmov d18, r0, r1                                  |         __asm ("vmov d18, r0, r1");
    0x00021a04 vdiv.f64 d17, d18, d16                            |         __asm ("vdiv.f64 d17, d18, d16");
    0x00021a08 vstr d17, [r4, 0x48]                              |         __asm ("vstr d17, [r4, 0x48]");
                                                                 |     }
                                                                 | label_8:
    0x00021a0c ldr r2, [pc, 0x24c]                               |     
    0x00021a0e ldr r3, [pc, 0x20c]                               |     r3 = *(0x21c1e);
    0x00021a10 add r2, pc                                        |     r2 = 0x43670;
    0x00021a12 ldr r3, [r2, r3]                                  |     r3 = *(0x43670);
    0x00021a14 ldr r2, [r3]                                      |     r2 = *(0x43670);
    0x00021a16 ldr.w r3, [sp, 0x81c]                             |     r3 = var_81ch;
    0x00021a1a eors r2, r3                                       |     r2 ^= r3;
    0x00021a1c mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x00021a20 bne.w 0x21c0c                                     |         goto label_49;
                                                                 |     }
    0x00021a24 mov r0, r4                                        |     r0 = r4;
    0x00021a26 add.w sp, sp, 0x820                               |     
    0x00021a2a vpop {d8}                                         |     __asm ("vpop {d8}");
    0x00021a2e pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |     
                                                                 | label_39:
    0x00021a32 vmov.i8 d16, 0xff                                 |     __asm ("vmov.i8 d16, 0xff");
    0x00021a36 vstr d16, [r4, 0x58]                              |     __asm ("vstr d16, [r4, 0x58]");
    0x00021a3a b 0x218b0                                         |     goto label_1;
                                                                 | label_37:
    0x00021a3c vmov.i8 d16, 0xff                                 |     __asm ("vmov.i8 d16, 0xff");
    0x00021a40 cmp r6, 1                                         |     
    0x00021a42 vstr d16, [r4, 8]                                 |     __asm ("vstr d16, [r4, 8]");
                                                                 |     if (r6 != 1) {
    0x00021a46 bne.w 0x2177a                                     |         goto label_2;
                                                                 |     }
                                                                 | label_38:
    0x00021a4a ldr r1, [pc, 0x214]                               |     
    0x00021a4c add.w r3, r4, 0x14                                |     r3 = r4 + 0x14;
    0x00021a50 str r3, [sp]                                      |     *(sp) = r3;
    0x00021a52 movs r3, 0                                        |     r3 = 0;
    0x00021a54 mov r2, r3                                        |     r2 = r3;
    0x00021a56 mov r0, r5                                        |     r0 = r5;
    0x00021a58 add r1, pc                                        |     r1 = 0x436be;
    0x00021a5a bl 0x20e0c                                        |     r0 = fcn_00020e0c (r0, r1, r2, r3, r4, r5, r6);
                                                                 |     if (r0 != 0) {
    0x00021a5e cbz r0, 0x21a64                                   |         
    0x00021a60 movs r3, 0                                        |         r3 = 0;
    0x00021a62 str r3, [r4, 0x14]                                |         *((r4 + 0x14)) = r3;
                                                                 |     }
    0x00021a64 add r7, sp, 0x10                                  |     r7 += var_10h_2;
    0x00021a66 b 0x2192c                                         |     goto label_3;
                                                                 | label_7:
    0x00021a68 vmov.i8 d16, 0xff                                 |     __asm ("vmov.i8 d16, 0xff");
    0x00021a6c cmp r6, 2                                         |     
    0x00021a6e vstr d16, [r4, 0x50]                              |     __asm ("vstr d16, [r4, 0x50]");
                                                                 |     if (r6 == 2) {
    0x00021a72 beq 0x2197e                                       |         goto label_4;
                                                                 |     }
                                                                 | label_45:
    0x00021a74 ldr r1, [pc, 0x1ec]                               |     
    0x00021a76 movs r3, 0                                        |     r3 = 0;
    0x00021a78 add r6, sp, 0xc                                   |     r6 = sp + 0xc;
    0x00021a7a mov r0, r5                                        |     r0 = r5;
    0x00021a7c mov r2, r3                                        |     r2 = r3;
    0x00021a7e str r6, [sp]                                      |     *(sp) = r6;
    0x00021a80 add r1, pc                                        |     r1 = 0x436e8;
    0x00021a82 bl 0x20e0c                                        |     r0 = fcn_00020e0c (r0, r1, r2, r3, r4, r5, r6);
    0x00021a86 mov r5, r0                                        |     r5 = r0;
    0x00021a88 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00021a8a bne.w 0x2197e                                     |         goto label_4;
                                                                 |     }
    0x00021a8e ldr.w sl, [r6]                                    |     sl = *(r6);
    0x00021a92 movs r1, 0x28                                     |     r1 = 0x28;
    0x00021a94 mov r0, sl                                        |     r0 = sl;
    0x00021a96 blx 0xdcd4                                        |     r0 = fcn_0000dcd4 ();
    0x00021a9a mov sb, r0                                        |     sb = r0;
    0x00021a9c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00021a9e beq.w 0x21bee                                     |         goto label_50;
                                                                 |     }
    0x00021aa2 ldr r1, [pc, 0x1c4]                               |     
    0x00021aa4 add.w sl, r0, 1                                   |     sl = r0 + 1;
    0x00021aa8 mov r0, sl                                        |     r0 = sl;
    0x00021aaa add r1, pc                                        |     r1 = 0x43718;
    0x00021aac bl 0x444f4                                        |     zbx_rtrim ();
    0x00021ab0 ldrb.w r0, [sb, 1]                                |     r0 = *((sb + 1));
    0x00021ab4 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00021ab6 bne.w 0x21bfa                                     |         goto label_51;
                                                                 |     }
                                                                 | label_12:
    0x00021aba str r0, [r4, 0x1c]                                |     *((r4 + 0x1c)) = r0;
    0x00021abc ldr r0, [r6]                                      |     r0 = *(r6);
    0x00021abe cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00021ac0 beq.w 0x21982                                     |         goto label_5;
                                                                 |     }
    0x00021ac4 blx 0xde30                                        |     fcn_0000de30 ();
    0x00021ac8 movs r3, 0                                        |     r3 = 0;
    0x00021aca str r3, [r6]                                      |     *(r6) = r3;
    0x00021acc b 0x21982                                         |     goto label_5;
                                                                 | label_44:
    0x00021ace ldrd r3, r2, [r4, 0x50]                           |     __asm ("ldrd r3, r2, [r4, 0x50]");
    0x00021ad2 cmp.w r2, -1                                      |     
    0x00021ad6 it eq                                             |     
                                                                 |     if (r2 != -1) {
    0x00021ad8 cmpeq r3, -1                                      |         __asm ("cmpeq r3, -1");
                                                                 |         goto label_52;
                                                                 |     }
                                                                 |     if (r2 == -1) {
                                                                 | label_52:
    0x00021adc beq.w 0x2197a                                     |         goto label_6;
                                                                 |     }
    0x00021ae0 ldrd r1, r0, [r7]                                 |     __asm ("ldrd r1, r0, [r7]");
    0x00021ae4 cmp.w r0, -1                                      |     
    0x00021ae8 it eq                                             |     
                                                                 |     if (r0 != -1) {
    0x00021aea cmpeq r1, -1                                      |         __asm ("cmpeq r1, -1");
                                                                 |         goto label_53;
                                                                 |     }
                                                                 |     if (r0 == -1) {
                                                                 | label_53:
    0x00021aee beq 0x21a68                                       |         goto label_7;
                                                                 |     }
    0x00021af0 adds r3, r3, r1                                   |     r3 += r1;
    0x00021af2 adc.w r2, r2, r0                                  |     __asm ("adc.w r2, r2, r0");
    0x00021af6 strd r3, r2, [r4, 0x50]                           |     __asm ("strd r3, r2, [r4, 0x50]");
    0x00021afa b 0x2197a                                         |     goto label_6;
                                                                 | label_47:
    0x00021afc add.w r1, r4, 0x60                                |     r1 = r4 + 0x60;
    0x00021b00 mov r0, r5                                        |     r0 = r5;
    0x00021b02 bl 0x20770                                        |     r0 = fcn_00020770 (r0, r1);
    0x00021b06 adds r2, r0, 1                                    |     r2 = r0 + 1;
                                                                 |     if (r2 == r0) {
    0x00021b08 beq 0x21a0c                                       |         goto label_8;
                                                                 |     }
    0x00021b0a add r5, r0                                        |     r5 += r0;
    0x00021b0c b 0x219cc                                         |     goto label_9;
                                                                 | label_48:
    0x00021b0e cmp.w r8, 0                                       |     
                                                                 |     if (r8 <= 0) {
    0x00021b12 ble.w 0x21a0c                                     |         goto label_8;
                                                                 |     }
    0x00021b16 mov r1, r7                                        |     r1 = r7;
    0x00021b18 mov r0, r5                                        |     r0 = r5;
    0x00021b1a bl 0x20770                                        |     r0 = fcn_00020770 (r0, r1);
    0x00021b1e adds r3, r0, 1                                    |     r3 = r0 + 1;
                                                                 |     if (r3 == r0) {
    0x00021b20 beq.w 0x21a0c                                     |         goto label_8;
                                                                 |     }
    0x00021b24 add r5, r0                                        |     r5 += r0;
    0x00021b26 ldrd r0, r1, [r7]                                 |     __asm ("ldrd r0, r1, [r7]");
    0x00021b2a bl 0x4c6f4                                        |     fcn_0004c6f4 (r0, r1, r2);
    0x00021b2e vmov s15, r8                                      |     __asm ("vmov s15, r8");
    0x00021b32 vcvt.f64.s32 d17, s15                             |     __asm ("vcvt.f64.s32 d17, s15");
    0x00021b36 vmov d18, r0, r1                                  |     __asm ("vmov d18, r0, r1");
    0x00021b3a vdiv.f64 d16, d18, d17                            |     __asm ("vdiv.f64 d16, d18, d17");
    0x00021b3e vstr d16, [r4, 0x40]                              |     __asm ("vstr d16, [r4, 0x40]");
    0x00021b42 b 0x219cc                                         |     goto label_9;
                                                                 | label_43:
    0x00021b44 ldr r1, [pc, 0x124]                               |     
    0x00021b46 add.w r3, r4, 0xa8                                |     r3 = r4 + 0xa8;
    0x00021b4a movs r2, 2                                        |     r2 = 2;
    0x00021b4c mov r0, r5                                        |     r0 = r5;
    0x00021b4e str r6, [sp]                                      |     *(sp) = r6;
    0x00021b50 add r1, pc                                        |     r1 = 0x437c0;
    0x00021b52 bl 0x20e0c                                        |     r0 = fcn_00020e0c (r0, r1, r2, r3, r4, r5, r6);
                                                                 |     if (r0 != 0) {
    0x00021b56 cbz r0, 0x21b60                                   |         
    0x00021b58 vmov.i8 d16, 0xff                                 |         __asm ("vmov.i8 d16, 0xff");
    0x00021b5c vstr d16, [r4, 0xa8]                              |         __asm ("vstr d16, [r4, 0xa8]");
                                                                 |     }
    0x00021b60 ldr r1, [pc, 0x10c]                               |     
    0x00021b62 movs r3, 0                                        |     r3 = 0;
    0x00021b64 str r3, [sp]                                      |     *(sp) = r3;
    0x00021b66 movs r2, 2                                        |     r2 = 2;
    0x00021b68 add.w r3, r4, 0x90                                |     r3 = r4 + 0x90;
    0x00021b6c mov r0, r5                                        |     r0 = r5;
    0x00021b6e add r1, pc                                        |     r1 = 0x437e2;
    0x00021b70 bl 0x20e0c                                        |     r0 = fcn_00020e0c (r0, r1, r2, r3, r4, r5, r6);
    0x00021b74 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00021b76 beq.w 0x2192c                                     |         goto label_3;
                                                                 |     }
    0x00021b7a vmov.i8 d16, 0xff                                 |     __asm ("vmov.i8 d16, 0xff");
    0x00021b7e vstr d16, [r4, 0x90]                              |     __asm ("vstr d16, [r4, 0x90]");
    0x00021b82 b 0x2192c                                         |     goto label_3;
                                                                 | label_42:
    0x00021b84 ldr r1, [pc, 0xec]                                |     
    0x00021b86 ldr r0, [pc, 0xf0]                                |     
    0x00021b88 add r1, pc                                        |     r1 = 0x43800;
    0x00021b8a add r0, pc                                        |     r0 = 0x43808;
    0x00021b8c blx 0xdf90                                        |     r0 = fcn_0000df90 ();
    0x00021b90 mov sb, r0                                        |     sb = r0;
                                                                 |     if (r0 != 0) {
    0x00021b92 cbz r0, 0x21be0                                   |         
    0x00021b94 ldr r1, [pc, 0xe4]                                |         
    0x00021b96 mov r2, r7                                        |         r2 = r7;
    0x00021b98 add r7, sp, 0x10                                  |         r7 += var_10h_2;
    0x00021b9a mov r3, r7                                        |         r3 = r7;
    0x00021b9c add r1, pc                                        |         r1 = 0x4381c;
    0x00021b9e bl 0x21570                                        |         r0 = byte_value_from_proc_file ();
    0x00021ba2 mov sl, r0                                        |         sl = r0;
    0x00021ba4 mov r0, sb                                        |         r0 = sb;
    0x00021ba6 blx 0xdc8c                                        |         fcn_0000dc8c ();
    0x00021baa cmp.w sl, 0                                       |         
                                                                 |         if (sl != 0) {
    0x00021bae bne 0x21be2                                       |             goto label_54;
                                                                 |         }
    0x00021bb0 ldrd sl, sb, [r7]                                 |         __asm ("ldrd sl, sb, [r7]");
    0x00021bb4 orrs.w r3, sl, sb                                 |         r3 = sl | sb;
                                                                 |         if (r3 == sl) {
    0x00021bb8 beq 0x21be2                                       |             goto label_54;
                                                                 |         }
    0x00021bba ldrd r0, r1, [r4, 0x78]                           |         __asm ("ldrd r0, r1, [r4, 0x78]");
    0x00021bbe bl 0x4c6f4                                        |         r0 = fcn_0004c6f4 (r0, r1, r2);
    0x00021bc2 vmov d8, r0, r1                                   |         __asm ("vmov d8, r0, r1");
    0x00021bc6 mov r0, sl                                        |         r0 = sl;
    0x00021bc8 mov r1, sb                                        |         r1 = sb;
    0x00021bca bl 0x4c6f4                                        |         r0 = fcn_0004c6f4 (r0, r1, r2);
    0x00021bce vmov d18, r0, r1                                  |         __asm ("vmov d18, r0, r1");
    0x00021bd2 vldr d17, [pc, 0x3c]                              |         __asm ("vldr d17, [0x00021c14]");
    0x00021bd6 vdiv.f64 d16, d8, d18                             |         __asm ("vdiv.f64 d16, d8, d18");
    0x00021bda vmul.f64 d16, d16, d17                            |         __asm ("vmul.f64 d16, d16, d17");
    0x00021bde b 0x2191e                                         |         goto label_10;
                                                                 |     }
    0x00021be0 add r7, sp, 0x10                                  |     r7 += var_10h_2;
                                                                 | label_54:
    0x00021be2 vmov.f64 d16, -1.000000e+00                       |     __asm ("vmov.f64 d16, -1");
    0x00021be6 b 0x2191e                                         |     goto label_10;
                                                                 | label_40:
    0x00021be8 mov r3, r1                                        |     r3 = r1;
    0x00021bea mov r2, r0                                        |     r2 = r0;
    0x00021bec b 0x218f0                                         |     goto label_11;
                                                                 | label_50:
    0x00021bee str.w sl, [r4, 0x1c]                              |     __asm ("str.w sl, [r4, 0x1c]");
    0x00021bf2 b 0x21982                                         |     goto label_5;
                                                                 | label_41:
    0x00021bf4 mov r3, r7                                        |     r3 = r7;
    0x00021bf6 mov r2, ip                                        |     r2 = ip;
    0x00021bf8 b 0x218f0                                         |     goto label_11;
                                                                 | label_51:
    0x00021bfa ldr r0, [pc, 0x84]                                |     
    0x00021bfc mov r3, sl                                        |     r3 = sl;
    0x00021bfe mov r2, r5                                        |     r2 = r5;
    0x00021c00 movw r1, 0x684                                    |     r1 = 0x684;
    0x00021c04 add r0, pc                                        |     r0 = 0x4388a;
    0x00021c06 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x00021c0a b 0x21aba                                         |     goto label_12;
                                                                 | label_49:
    0x00021c0c blx 0xe158                                        |     r0 = fcn_0000e158 ();
    0x00021c10 movs r0, r0                                       |     
    0x00021c12 movs r0, r0                                       |     
    0x00021c14 movs r0, r0                                       |     
    0x00021c16 eors r1, r3                                       |     r1 ^= r3;
    0x00021c18 adr r4, 0x2a8                                     |     r4 = 0x2a8;
    0x00021c1a movs r3, r0                                       |     r3 = r0;
    0x00021c1c lsls r4, r2, 0xe                                  |     r4 = r2 << 0xe;
    0x00021c1e movs r0, r0                                       |     
    0x00021c20 lsls r0, r5, 0xe                                  |     r0 = r5 << 0xe;
    0x00021c22 movs r3, r0                                       |     r3 = r0;
    0x00021c24 lsls r4, r4, 0xf                                  |     r4 <<= 0xf;
    0x00021c26 movs r3, r0                                       |     r3 = r0;
    0x00021c28 lsls r2, r7, 0xe                                  |     r2 = r7 << 0xe;
    0x00021c2a movs r3, r0                                       |     r3 = r0;
    0x00021c2c lsls r2, r5, 0xe                                  |     r2 = r5 << 0xe;
    0x00021c2e movs r3, r0                                       |     r3 = r0;
    0x00021c30 lsls r2, r2, 0xe                                  |     r2 <<= 0xe;
    0x00021c32 movs r3, r0                                       |     r3 = r0;
    0x00021c34 lsls r2, r7, 0xd                                  |     r2 = r7 << 0xd;
    0x00021c36 movs r3, r0                                       |     r3 = r0;
    0x00021c38 lsls r2, r4, 0xd                                  |     r2 = r4 << 0xd;
    0x00021c3a movs r3, r0                                       |     r3 = r0;
    0x00021c3c lsls r2, r1, 0xd                                  |     r2 = r1 << 0xd;
    0x00021c3e movs r3, r0                                       |     r3 = r0;
    0x00021c40 lsls r2, r6, 0xc                                  |     r2 = r6 << 0xc;
    0x00021c42 movs r3, r0                                       |     r3 = r0;
    0x00021c44 lsls r4, r3, 0xc                                  |     r4 = r3 << 0xc;
    0x00021c46 movs r3, r0                                       |     r3 = r0;
    0x00021c48 lsls r6, r0, 0xc                                  |     r6 = r0 << 0xc;
    0x00021c4a movs r3, r0                                       |     r3 = r0;
    0x00021c4c lsls r0, r6, 0xb                                  |     r0 = r6 << 0xb;
    0x00021c4e movs r3, r0                                       |     r3 = r0;
    0x00021c50 lsls r2, r3, 0xa                                  |     r2 = r3 << 0xa;
    0x00021c52 movs r3, r0                                       |     r3 = r0;
    0x00021c54 lsls r6, r1, 0xa                                  |     r6 = r1 << 0xa;
    0x00021c56 movs r3, r0                                       |     r3 = r0;
    0x00021c58 lsls r2, r1, 0xa                                  |     r2 = r1 << 0xa;
    0x00021c5a movs r3, r0                                       |     r3 = r0;
    0x00021c5c adr r1, 0x320                                     |     r1 = 0x320;
    0x00021c5e movs r3, r0                                       |     r3 = r0;
    0x00021c60 lsls r0, r3, 5                                    |     r0 = r3 << 5;
    0x00021c62 movs r3, r0                                       |     r3 = r0;
    0x00021c64 lsls r4, r7, 5                                    |     r4 = r7 << 5;
    0x00021c66 movs r3, r0                                       |     r3 = r0;
                                                                 |     if (r6 == 0) {
    0x00021c68 cbnz r6, 0x21cae                                  |         
    0x00021c6a movs r2, r0                                       |         r2 = r0;
    0x00021c6c lsls r0, r5, 1                                    |         r0 = r5 << 1;
    0x00021c6e movs r3, r0                                       |         r3 = r0;
    0x00021c70 lsls r2, r2, 1                                    |         r2 <<= 1;
    0x00021c72 movs r3, r0                                       |         r3 = r0;
    0x00021c74 usat r0, 2, r8                                    |         __asm ("usat r0, 2, r8");
    0x00021c78 ldrh.w r0, [lr, r2]                               |         r0 = *((lr + r2));
    0x00021c7c movs r0, r1                                       |         r0 = r1;
    0x00021c7e movs r3, r0                                       |         r3 = r0;
    0x00021c80 cdp2 p0, 0xf, c0, c0, c2, 0                       |         __asm ("cdp2 p0, 0xf, c0, c0, c2, 0");
                                                                 |     }
    0x00021cae ldr r3, [r3]                                      |     r3 = *(r3);
    0x00021cb0 str.w r3, [sp, 0x84c]                             |     __asm ("str.w r3, [arg_84ch]");
    0x00021cb4 mov.w r3, 0                                       |     r3 = 0;
    0x00021cb8 vstr d16, [r0]                                    |     __asm ("vstr d16, [r0]");
    0x00021cbc str r1, [sp, 0x14]                                |     var_14h = r1;
                                                                 |     if (r3 > r0) {
    0x00021cbe bgt.w 0x22062                                     |         goto label_55;
                                                                 |     }
    0x00021cc2 cmp.w r8, 0                                       |     
                                                                 |     if (r8 > 0) {
    0x00021cc6 ble 0x21d7e                                       |         
    0x00021cc8 ldr r5, [r4, 8]                                   |         r5 = *((r4 + 8));
    0x00021cca cmp.w r8, 1                                       |         
    0x00021cce ldr r3, [r5]                                      |         r3 = *(r5);
    0x00021cd0 str r3, [sp, 4]                                   |         var_4h = r3;
                                                                 |         if (r8 == 1) {
    0x00021cd2 beq.w 0x2238e                                     |             goto label_56;
                                                                 |         }
    0x00021cd6 ldr.w fp, [r5, 4]                                 |         fp = *((r5 + 4));
    0x00021cda cmp.w fp, 0                                       |         
                                                                 |         if (fp == 0) {
    0x00021cde beq.w 0x22370                                     |             goto label_57;
                                                                 |         }
    0x00021ce2 ldrb.w r3, [fp]                                   |         r3 = *(fp);
    0x00021ce6 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x00021ce8 bne.w 0x2227a                                     |             goto label_58;
                                                                 |         }
    0x00021cec cmp.w r8, 2                                       |         
                                                                 |         if (r8 == 2) {
    0x00021cf0 beq.w 0x220aa                                     |             goto label_59;
                                                                 |         }
    0x00021cf4 mov r4, r3                                        |         r4 = r3;
    0x00021cf6 mov sl, r3                                        |         sl = r3;
                                                                 | label_25:
    0x00021cf8 ldr.w fp, [r5, 8]                                 |         fp = *((r5 + 8));
    0x00021cfc cmp.w fp, 0                                       |         
                                                                 |         if (fp == 0) {
    0x00021d00 beq.w 0x221f0                                     |             goto label_60;
                                                                 |         }
    0x00021d04 ldrb.w r3, [fp]                                   |         r3 = *(fp);
    0x00021d08 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x00021d0a beq.w 0x220ba                                     |             goto label_61;
                                                                 |         }
    0x00021d0e ldr.w r1, [pc, 0x5c8]                             |         
    0x00021d12 mov r0, fp                                        |         r0 = fp;
    0x00021d14 add r1, pc                                        |         r1 = 0x43ff2;
    0x00021d16 blx 0xe3b0                                        |         fcn_0000e3b0 ();
    0x00021d1a str r0, [sp, 0x1c]                                |         var_1ch = r0;
    0x00021d1c cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00021d1e beq.w 0x223b8                                     |             goto label_62;
                                                                 |         }
    0x00021d22 ldr.w r1, [pc, 0x5b8]                             |         
    0x00021d26 mov r0, fp                                        |         r0 = fp;
    0x00021d28 add r1, pc                                        |         r1 = 0x4400a;
    0x00021d2a blx 0xe3b0                                        |         r0 = fcn_0000e3b0 ();
    0x00021d2e cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00021d30 beq.w 0x22428                                     |             goto label_63;
                                                                 |         }
    0x00021d34 ldr.w r1, [pc, 0x5a8]                             |         r1 = *(0x000222e0);
    0x00021d38 mov r0, fp                                        |         r0 = fp;
    0x00021d3a add r1, pc                                        |         r1 += pc;
    0x00021d3c blx 0xe3b0                                        |         r0 = fcn_0000e3b0 ();
    0x00021d40 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00021d42 beq.w 0x22550                                     |             goto label_64;
                                                                 |         }
    0x00021d46 ldr.w r1, [pc, 0x59c]                             |         
    0x00021d4a mov r0, fp                                        |         r0 = fp;
    0x00021d4c add r1, pc                                        |         r1 = 0x44036;
    0x00021d4e blx 0xe3b0                                        |         r0 = fcn_0000e3b0 ();
    0x00021d52 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00021d54 bne.w 0x225de                                     |             goto label_65;
                                                                 |         }
    0x00021d58 cmp.w r8, 3                                       |         
                                                                 |         if (r8 == 3) {
    0x00021d5c beq.w 0x22742                                     |             goto label_66;
                                                                 |         }
    0x00021d60 cmp.w r8, 4                                       |         
    0x00021d64 ldr.w fp, [r5, 0xc]                               |         fp = *((r5 + 0xc));
    0x00021d68 itt ne                                            |         
                                                                 |         if (r8 == 4) {
    0x00021d6a movne r3, 2                                       |             r3 = 2;
                                                                 |         }
                                                                 |         if (r8 == 4) {
    0x00021d6c strne r3, [sp, 0x1c]                              |             var_1ch = r3;
                                                                 |         }
                                                                 |         if (r8 != 4) {
    0x00021d6e bne.w 0x220d0                                     |             goto label_28;
                                                                 |         }
    0x00021d72 cmp r4, 0                                         |         
                                                                 |         if (r4 == 0) {
    0x00021d74 beq.w 0x22732                                     |             goto label_67;
                                                                 |         }
                                                                 | label_22:
    0x00021d78 ldr r3, [sp, 0x14]                                |         r3 = var_14h;
    0x00021d7a ldr r4, [r3, 0x28]                                |         r4 = *((r3 + 0x28));
    0x00021d7c b 0x222be                                         |         goto label_68;
                                                                 |     }
    0x00021d7e ldr.w r2, [pc, 0x568]                             |     r2 = *(0x000222e8);
    0x00021d82 movs r3, 0                                        |     r3 = 0;
    0x00021d84 mov sl, r3                                        |     sl = r3;
    0x00021d86 mov fp, r3                                        |     
    0x00021d88 mov.w r8, 2                                       |     r8 = 2;
    0x00021d8c str r3, [sp, 4]                                   |     var_4h = r3;
    0x00021d8e add r2, pc                                        |     r2 += pc;
    0x00021d90 str r3, [sp, 0x1c]                                |     var_1ch = r3;
    0x00021d92 str r2, [sp, 0x18]                                |     var_18h = r2;
                                                                 | label_21:
    0x00021d94 ldr.w r0, [pc, 0x554]                             |     
    0x00021d98 add r0, pc                                        |     r0 = 0x44088;
    0x00021d9a blx 0xdbdc                                        |     r0 = fcn_0000dbdc ();
    0x00021d9e mov r7, r0                                        |     r7 = r0;
    0x00021da0 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00021da2 beq.w 0x2268e                                     |         goto label_69;
                                                                 |     }
    0x00021da6 ldr.w r3, [pc, 0x548]                             |     r3 = *(0x000222f0);
    0x00021daa ldr.w sb, [pc, 0x548]                             |     sb = *(0x000222f4);
    0x00021dae vmov.i64 d8, 0                                    |     __asm ("vmov.i64 d8, 0");
    0x00021db2 add r3, pc                                        |     r3 += pc;
    0x00021db4 str r3, [sp, 8]                                   |     var_8h = r3;
    0x00021db6 add sb, pc                                        |     sb += pc;
    0x00021db8 ldr.w r3, [pc, 0x53c]                             |     
    0x00021dbc add r3, pc                                        |     r3 = 0x440b8;
    0x00021dbe str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x00021dc0 movs r3, 0                                        |     r3 = 0;
    0x00021dc2 mov r5, r3                                        |     r5 = r3;
    0x00021dc4 strd r3, r3, [sp, 0x20]                           |     __asm ("strd r3, r3, [sp, 0x20]");
    0x00021dc8 strd r3, r3, [sp, 0x28]                           |     __asm ("strd r3, r3, [sp, 0x28]");
                                                                 | label_13:
    0x00021dcc mov r6, r5                                        |     r6 = r5;
                                                                 | label_14:
    0x00021dce mov r0, r7                                        |     r0 = r7;
    0x00021dd0 blx 0xe28c                                        |     r0 = fcn_0000e28c ();
    0x00021dd4 mov r4, r0                                        |     r4 = r0;
    0x00021dd6 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00021dd8 beq.w 0x22054                                     |         goto label_70;
                                                                 |     }
                                                                 |     if (r5 != 0) {
                                                                 | label_17:
    0x00021ddc cbz r5, 0x21de4                                   |         
    0x00021dde mov r0, r5                                        |         r0 = r5;
    0x00021de0 blx 0xdc8c                                        |         fcn_0000dc8c ();
                                                                 |     }
                                                                 |     if (r6 == 0) {
    0x00021de4 cbz r6, 0x21dec                                   |         goto label_71;
                                                                 |     }
    0x00021de6 mov r0, r6                                        |     r0 = r6;
    0x00021de8 blx 0xdc8c                                        |     fcn_0000dc8c ();
                                                                 |     do {
                                                                 | label_71:
    0x00021dec adds r4, 0x13                                     |         r4 += 0x13;
    0x00021dee movs r2, 0xa                                      |         r2 = 0xa;
    0x00021df0 movs r1, 0                                        |         r1 = 0;
    0x00021df2 mov r0, r4                                        |         r0 = r4;
    0x00021df4 blx 0xdfe8                                        |         r0 = waitpid ();
    0x00021df8 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00021dfa bne 0x21e70                                       |             goto label_72;
                                                                 |         }
    0x00021dfc mov r0, r7                                        |         r0 = r7;
    0x00021dfe blx 0xe28c                                        |         r0 = fcn_0000e28c ();
    0x00021e02 mov r4, r0                                        |         r4 = r0;
    0x00021e04 cmp r0, 0                                         |         
    0x00021e06 bne 0x21dec                                       |         
                                                                 |     } while (r0 != 0);
    0x00021e08 mov r6, r0                                        |     r6 = r0;
                                                                 | label_18:
    0x00021e0a ldrd r3, r4, [sp, 0x20]                           |     __asm ("ldrd r3, r4, [var_20h]");
    0x00021e0e cmp r3, 0                                         |     
    0x00021e10 ite ne                                            |     
                                                                 |     if (r3 == 0) {
    0x00021e12 movne r4, 0                                       |         r4 = 0;
                                                                 |     }
                                                                 |     if (r3 != 0) {
    0x00021e14 andeq r4, r4, 1                                   |         r4 &= 1;
                                                                 |     }
    0x00021e18 cmp r6, 0                                         |     
                                                                 |     if (r6 != 0) {
    0x00021e1a bne.w 0x21f76                                     |         goto label_73;
                                                                 |     }
    0x00021e1e mov r0, r7                                        |     r0 = r7;
    0x00021e20 blx 0xe0d0                                        |     fcn_0000e0d0 ();
    0x00021e24 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x00021e26 beq.w 0x21f88                                     |         goto label_74;
                                                                 |     }
                                                                 | label_15:
    0x00021e2a ldr.w r0, [pc, 0x4d0]                             |     r0 = *(0x000222fc);
    0x00021e2e movs r2, 0                                        |     r2 = 0;
    0x00021e30 ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x00021e32 mov.w r1, 0x348                                   |     r1 = 0x348;
    0x00021e36 add r0, pc                                        |     r0 += pc;
    0x00021e38 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x00021e3c ldr.w r1, [pc, 0x4c0]                             |     r1 = *(0x00022300);
    0x00021e40 mov r4, r0                                        |     r4 = r0;
    0x00021e42 add r1, pc                                        |     r1 += pc;
    0x00021e44 bl 0x444f4                                        |     zbx_rtrim ();
    0x00021e48 ldr r5, [sp, 0x14]                                |     r5 = var_14h;
    0x00021e4a mov r2, r4                                        |     r2 = r4;
    0x00021e4c ldr.w r1, [pc, 0x4b4]                             |     
    0x00021e50 movs r0, 0                                        |     r0 = 0;
    0x00021e52 ldr r3, [r5, 0x28]                                |     r3 = *((r5 + 0x28));
    0x00021e54 add r1, pc                                        |     r1 = 0x4415c;
    0x00021e56 orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x00021e5a str r3, [r5, 0x28]                                |     *((r5 + 0x28)) = r3;
    0x00021e5c bl 0x44820                                        |     zbx_dsprintf ()
    0x00021e60 str r0, [r5, 0x20]                                |     *((r5 + 0x20)) = r0;
    0x00021e62 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x00021e64 beq.w 0x22080                                     |         goto label_34;
                                                                 |     }
    0x00021e68 mov r0, r4                                        |     r0 = r4;
    0x00021e6a blx 0xde30                                        |     fcn_0000de30 ();
    0x00021e6e b 0x22080                                         |     goto label_34;
                                                                 | label_72:
    0x00021e70 add r6, sp, 0x4c                                  |     r6 += arg_4ch;
    0x00021e72 ldr r2, [sp, 8]                                   |     r2 = var_8h;
    0x00021e74 mov r3, r4                                        |     r3 = r4;
    0x00021e76 mov.w r1, 0x800                                   |     r1 = 0x800;
    0x00021e7a mov r0, r6                                        |     r0 = r6;
    0x00021e7c bl 0x43f38                                        |     zbx_snprintf ();
    0x00021e80 mov r1, sb                                        |     r1 = sb;
    0x00021e82 mov r0, r6                                        |     r0 = r6;
    0x00021e84 blx 0xdf90                                        |     r0 = fcn_0000df90 ();
    0x00021e88 mov r5, r0                                        |     r5 = r0;
    0x00021e8a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00021e8c beq 0x21dcc                                       |         goto label_13;
                                                                 |     }
    0x00021e8e ldr r2, [sp, 0xc]                                 |     r2 = var_ch;
    0x00021e90 mov r3, r4                                        |     r3 = r4;
    0x00021e92 mov.w r1, 0x800                                   |     r1 = 0x800;
    0x00021e96 mov r0, r6                                        |     r0 = r6;
    0x00021e98 bl 0x43f38                                        |     zbx_snprintf ();
    0x00021e9c mov r0, r6                                        |     r0 = r6;
    0x00021e9e mov r1, sb                                        |     r1 = sb;
    0x00021ea0 blx 0xdf90                                        |     r0 = fcn_0000df90 ();
    0x00021ea4 mov r6, r0                                        |     r6 = r0;
    0x00021ea6 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00021ea8 beq 0x21dce                                       |         goto label_14;
                                                                 |     }
    0x00021eaa mov r1, r0                                        |     r1 = r0;
    0x00021eac ldr r2, [sp, 4]                                   |     r2 = var_4h;
    0x00021eae mov r0, r5                                        |     r0 = r5;
    0x00021eb0 bl 0x20980                                        |     fcn_00020980 (r0, r1, r2);
    0x00021eb4 adds r0, 1                                        |     r0++;
                                                                 |     if (r0 == 1) {
    0x00021eb6 beq 0x21dce                                       |         goto label_14;
                                                                 |     }
    0x00021eb8 cmp.w sl, 0                                       |     
                                                                 |     if (sl == 0) {
    0x00021ebc beq 0x21ee2                                       |         goto label_75;
                                                                 |     }
    0x00021ebe add r4, sp, 0x40                                  |     r4 += arg_40h;
    0x00021ec0 movs r1, 0                                        |     r1 = 0;
    0x00021ec2 mov r2, r4                                        |     r2 = r4;
    0x00021ec4 mov r0, r6                                        |     r0 = r6;
    0x00021ec6 bl 0x21040                                        |     r0 = fcn_00021040 (r0, r1, r2, r3);
    0x00021eca cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00021ecc bne.w 0x21dce                                     |         goto label_14;
                                                                 |     }
    0x00021ed0 ldr.w r2, [sl, 8]                                 |     r2 = *((sl + 8));
    0x00021ed4 ldrd r1, r3, [sp, 0x40]                           |     __asm ("ldrd r1, r3, [arg_40h]");
    0x00021ed8 cmp r0, r3                                        |     
    0x00021eda it eq                                             |     
                                                                 |     if (r0 != r3) {
    0x00021edc cmpeq r2, r1                                      |         __asm ("cmpeq r2, r1");
                                                                 |         goto label_76;
                                                                 |     }
                                                                 |     if (r0 != r3) {
                                                                 | label_76:
    0x00021ede bne.w 0x21dce                                     |         goto label_14;
                                                                 |     }
                                                                 | label_75:
    0x00021ee2 mov r1, fp                                        |     r1 = fp;
    0x00021ee4 mov r0, r5                                        |     r0 = r5;
    0x00021ee6 bl 0x20a18                                        |     fcn_00020a18 (r0, r1);
    0x00021eea adds r0, 1                                        |     r0++;
                                                                 |     if (r0 == 1) {
    0x00021eec beq.w 0x21dce                                     |         goto label_14;
                                                                 |     }
    0x00021ef0 mov r0, r6                                        |     r0 = r6;
    0x00021ef2 blx 0xdc5c                                        |     fcn_0000dc5c ();
    0x00021ef6 cmp.w r8, 3                                       |     
                                                                 |     if (r8 == 3) {
    0x00021efa beq 0x21fd0                                       |         goto label_77;
                                                                 |     }
    0x00021efc ble 0x21f4a                                       |     
                                                                 |     while (r3 < 1) {
    0x00021efe ldr r3, [sp, 0x10]                                |         r3 = var_10h;
    0x00021f00 movs r2, 0                                        |         r2 = 0;
    0x00021f02 ldr r1, [sp, 0x18]                                |         r1 = var_18h;
    0x00021f04 mov r0, r6                                        |         r0 = r6;
    0x00021f06 bl 0x21570                                        |         r0 = byte_value_from_proc_file ();
    0x00021f0a adds r3, r0, 2                                    |         r3 = r0 + 2;
                                                                 |         if (r3 == r0) {
    0x00021f0c beq.w 0x22042                                     |             goto label_31;
                                                                 |         }
    0x00021f10 adds r0, 1                                        |         r0++;
                                                                 |         if (r0 == 1) {
    0x00021f12 beq 0x21f6e                                       |             goto label_78;
                                                                 |         }
    0x00021f14 ldr r3, [sp, 0x10]                                |         r3 = var_10h;
    0x00021f16 ldrd r2, r3, [r3]                                 |         __asm ("ldrd r2, r3, [r3]");
                                                                 | label_24:
    0x00021f1a ldr r0, [sp, 0x20]                                |         r0 = var_20h;
    0x00021f1c adds r1, r0, 1                                    |         r1 = r0 + 1;
    0x00021f1e cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00021f20 beq.w 0x22084                                     |             goto label_79;
                                                                 |         }
    0x00021f24 ldr r0, [sp, 0x1c]                                |         r0 = var_1ch;
    0x00021f26 cmp r0, 1                                         |         
                                                                 |         if (r0 == 1) {
    0x00021f28 beq.w 0x22032                                     |             goto label_80;
                                                                 |         }
    0x00021f2c ldr r0, [sp, 0x1c]                                |         r0 = var_1ch;
    0x00021f2e cmp r0, 2                                         |         
    0x00021f30 ldr r0, [sp, 0x28]                                |         r0 = *(arg_28h);
                                                                 |         if (r0 == 2) {
    0x00021f32 beq.w 0x22498                                     |             goto label_81;
                                                                 |         }
    0x00021f36 adds r2, r0, r2                                   |         r2 = r0 + r2;
    0x00021f38 ldr r0, [sp, 0x2c]                                |         r0 = *(arg_2ch);
    0x00021f3a str r1, [sp, 0x20]                                |         var_20h = r1;
    0x00021f3c adc.w r3, r0, r3                                  |         __asm ("adc.w r3, r0, r3");
    0x00021f40 strd r2, r3, [sp, 0x28]                           |         __asm ("strd r2, r3, [sp, 0x28]");
    0x00021f44 movs r3, 1                                        |         r3 = 1;
    0x00021f46 str r3, [sp, 0x24]                                |         *(arg_24h) = r3;
    0x00021f48 b 0x21dce                                         |         goto label_14;
    0x00021f4a add.w r3, r8, -1                                  |         r3 = r8 + -1;
    0x00021f4e cmp r3, 1                                         |         
    0x00021f50 bls 0x21efe                                       |         
                                                                 |     }
    0x00021f52 ldr r4, [pc, 0x3b4]                               |     
    0x00021f54 movs r2, 0                                        |     r2 = 0;
    0x00021f56 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x00021f58 mov r0, r6                                        |     r0 = r6;
    0x00021f5a add r4, pc                                        |     r4 = zbx_chrcpy_alloc;
    0x00021f5c mov r1, r4                                        |     r1 = r4;
    0x00021f5e bl 0x21570                                        |     r0 = byte_value_from_proc_file ();
    0x00021f62 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00021f64 beq.w 0x2221c                                     |         goto label_82;
                                                                 |     }
                                                                 | label_16:
    0x00021f68 str r4, [sp, 0x18]                                |     var_18h = r4;
                                                                 | label_23:
    0x00021f6a adds r0, 2                                        |     r0 += 2;
                                                                 |     if (r0 == 2) {
    0x00021f6c beq 0x22042                                       |         goto label_31;
                                                                 |     }
                                                                 | label_78:
    0x00021f6e movs r4, 1                                        |     r4 = 1;
    0x00021f70 mov r0, r5                                        |     r0 = r5;
    0x00021f72 blx 0xdc8c                                        |     fcn_0000dc8c ();
                                                                 | label_73:
    0x00021f76 mov r0, r6                                        |     r0 = r6;
    0x00021f78 blx 0xdc8c                                        |     fcn_0000dc8c ();
    0x00021f7c mov r0, r7                                        |     r0 = r7;
    0x00021f7e blx 0xe0d0                                        |     fcn_0000e0d0 ();
    0x00021f82 cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x00021f84 bne.w 0x21e2a                                     |         goto label_15;
                                                                 |     }
                                                                 | label_74:
    0x00021f88 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x00021f8a cmp.w r8, 3                                       |     
    0x00021f8e ldr r4, [r3, 0x28]                                |     r4 = *((r3 + 0x28));
                                                                 |     if (r8 != 3) {
    0x00021f90 bne 0x22090                                       |         goto label_83;
                                                                 |     }
    0x00021f92 ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x00021f94 orr r2, r4, 2                                     |     r2 = r4 | 2;
    0x00021f98 cmp r3, 3                                         |     
                                                                 |     if (r3 == 3) {
    0x00021f9a beq.w 0x223e0                                     |         goto label_84;
                                                                 |     }
                                                                 | label_35:
    0x00021f9e ldr r2, [sp, 0x14]                                |     r2 = var_14h;
    0x00021fa0 movs r0, r0                                       |     
    0x00021fa2 movs r0, r0                                       |     
    0x00021fa4 vstr d8, [r2, 0x10]                               |     __asm ("vstr d8, [r2, 0x10]");
    0x00021fa8 str r3, [r6, 0x28]                                |     *((r6 + 0x28)) = r3;
                                                                 | label_20:
    0x00021faa movs r0, 0                                        |     r0 = 0;
                                                                 | label_19:
    0x00021fac ldr r2, [pc, 0x35c]                               |     
    0x00021fae ldr r3, [pc, 0x324]                               |     r3 = *(0x222d6);
    0x00021fb0 add r2, pc                                        |     r2 = 0x442c0;
    0x00021fb2 ldr r3, [r2, r3]                                  |     r3 = *(0x442c0);
    0x00021fb4 ldr r2, [r3]                                      |     r2 = *(0x442c0);
    0x00021fb6 ldr.w r3, [sp, 0x84c]                             |     r3 = *(arg_84ch);
    0x00021fba eors r2, r3                                       |     r2 ^= r3;
    0x00021fbc mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x00021fc0 bne.w 0x2261c                                     |         goto label_85;
                                                                 |     }
    0x00021fc4 addw sp, sp, 0x854                                |     __asm ("addw sp, sp, 0x854");
    0x00021fc8 vpop {d8, d9}                                     |     __asm ("vpop {d8, d9}");
    0x00021fcc pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_77:
    0x00021fd0 ldr r4, [pc, 0x33c]                               |     
    0x00021fd2 movs r2, 0                                        |     r2 = 0;
    0x00021fd4 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x00021fd6 mov r0, r6                                        |     r0 = r6;
    0x00021fd8 add r4, pc                                        |     r4 = 0x442ec;
    0x00021fda mov r1, r4                                        |     r1 = r4;
    0x00021fdc bl 0x21570                                        |     r0 = byte_value_from_proc_file ();
    0x00021fe0 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00021fe2 bne 0x21f68                                       |         goto label_16;
                                                                 |     }
    0x00021fe4 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x00021fe6 ldrd r0, r1, [r3]                                 |     __asm ("ldrd r0, r1, [r3]");
    0x00021fea bl 0x4c6f4                                        |     r0 = fcn_0004c6f4 (r0, r1, r2);
    0x00021fee vmov d9, r0, r1                                   |     __asm ("vmov d9, r0, r1");
    0x00021ff2 ldrd r0, r1, [sp, 0x38]                           |     __asm ("ldrd r0, r1, [arg_38h]");
    0x00021ff6 bl 0x4c6f4                                        |     r0 = fcn_0004c6f4 (r0, r1, r2);
    0x00021ffa vmov d18, r0, r1                                  |     __asm ("vmov d18, r0, r1");
    0x00021ffe vldr d17, [pc, 0x2c8]                             |     __asm ("vldr d17, [0x000222cc]");
    0x00022002 vdiv.f64 d16, d9, d18                             |     __asm ("vdiv.f64 d16, d9, d18");
    0x00022006 ldr r2, [sp, 0x20]                                |     r2 = var_20h;
    0x00022008 adds r3, r2, 1                                    |     r3 = r2 + 1;
    0x0002200a vmul.f64 d16, d16, d17                            |     __asm ("vmul.f64 d16, d16, d17");
    0x0002200e cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00022010 beq.w 0x222a4                                     |         goto label_86;
                                                                 |     }
    0x00022014 ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x00022016 cmp r2, 1                                         |     
                                                                 |     if (r2 == 1) {
    0x00022018 beq.w 0x224be                                     |         goto label_87;
                                                                 |     }
    0x0002201c ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x0002201e cmp r2, 2                                         |     
                                                                 |     if (r2 == 2) {
    0x00022020 beq.w 0x2247e                                     |         goto label_88;
                                                                 |     }
    0x00022024 str r3, [sp, 0x20]                                |     var_20h = r3;
    0x00022026 movs r3, 1                                        |     r3 = 1;
    0x00022028 vadd.f64 d8, d8, d16                              |     __asm ("vadd.f64 d8, d8, d16");
    0x0002202c str r4, [sp, 0x18]                                |     var_18h = r4;
    0x0002202e str r3, [sp, 0x24]                                |     *(arg_24h) = r3;
    0x00022030 b 0x21dce                                         |     goto label_14;
                                                                 | label_80:
    0x00022032 ldr r0, [sp, 0x28]                                |     r0 = *(arg_28h);
    0x00022034 cmp r0, r2                                        |     
    0x00022036 ldr r0, [sp, 0x2c]                                |     r0 = *(arg_2ch);
    0x00022038 sbcs r0, r3                                       |     __asm ("sbcs r0, r3");
                                                                 |     if (r0 < r2) {
    0x0002203a bhs 0x22040                                       |         
                                                                 | label_33:
    0x0002203c strd r2, r3, [sp, 0x28]                           |         __asm ("strd r2, r3, [sp, 0x28]");
                                                                 |     }
                                                                 | label_32:
    0x00022040 str r1, [sp, 0x20]                                |     var_20h = r1;
                                                                 | label_31:
    0x00022042 movs r3, 1                                        |     r3 = 1;
    0x00022044 mov r0, r7                                        |     r0 = r7;
    0x00022046 str r3, [sp, 0x24]                                |     *(arg_24h) = r3;
    0x00022048 blx 0xe28c                                        |     r0 = fcn_0000e28c ();
    0x0002204c mov r4, r0                                        |     r4 = r0;
    0x0002204e cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00022050 bne.w 0x21ddc                                     |         goto label_17;
                                                                 |     }
                                                                 | label_70:
    0x00022054 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00022056 beq.w 0x21e0a                                     |         goto label_18;
                                                                 |     }
    0x0002205a mov r0, r5                                        |     r0 = r5;
    0x0002205c blx 0xdc8c                                        |     fcn_0000dc8c ();
    0x00022060 b 0x21e0a                                         |     goto label_18;
                                                                 | label_55:
    0x00022062 ldr r0, [r1, 0x28]                                |     r0 = *((r1 + 0x28));
    0x00022064 mov r4, r1                                        |     r4 = r1;
    0x00022066 ldr r3, [pc, 0x2ac]                               |     
    0x00022068 movs r2, 0                                        |     r2 = 0;
    0x0002206a mov.w r1, 0x214                                   |     r1 = 0x214;
    0x0002206e orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x00022072 str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x00022074 add r3, pc                                        |     r3 = 0x4438e;
    0x00022076 ldr r0, [pc, 0x2a0]                               |     
    0x00022078 add r0, pc                                        |     r0 = 0x44396;
    0x0002207a bl 0x40ed8                                        |     zbx_strdup2 ();
    0x0002207e str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
                                                                 | label_34:
    0x00022080 movs r0, 1                                        |     r0 = 1;
    0x00022082 b 0x21fac                                         |     goto label_19;
                                                                 | label_79:
    0x00022084 strd r2, r3, [sp, 0x28]                           |     __asm ("strd r2, r3, [sp, 0x28]");
    0x00022088 movs r3, 1                                        |     r3 = 1;
    0x0002208a strd r3, r3, [sp, 0x20]                           |     __asm ("strd r3, r3, [sp, 0x20]");
    0x0002208e b 0x21dce                                         |     goto label_14;
                                                                 | label_83:
    0x00022090 ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x00022092 cmp r3, 3                                         |     
                                                                 |     if (r3 == 3) {
    0x00022094 beq.w 0x223fc                                     |         goto label_89;
                                                                 |     }
                                                                 | label_26:
    0x00022098 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0002209a orr r4, r4, 1                                     |     r4 |= 1;
    0x0002209e ldr r2, [sp, 0x28]                                |     r2 = *(arg_28h);
    0x000220a0 str r4, [r3, 0x28]                                |     *((r3 + 0x28)) = r4;
    0x000220a2 str r2, [r3, 8]                                   |     *((r3 + 8)) = r2;
    0x000220a4 ldr r2, [sp, 0x2c]                                |     r2 = *(arg_2ch);
    0x000220a6 str r2, [r3, 0xc]                                 |     *((r3 + 0xc)) = r2;
    0x000220a8 b 0x21faa                                         |     goto label_20;
                                                                 | label_59:
    0x000220aa mov sl, r3                                        |     sl = r3;
    0x000220ac ldr r3, [pc, 0x26c]                               |     
    0x000220ae mov fp, sl                                        |     
    0x000220b0 str.w sl, [sp, 0x1c]                              |     __asm ("str.w sl, [var_1ch]");
    0x000220b4 add r3, pc                                        |     r3 = 0x443d4;
    0x000220b6 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x000220b8 b 0x21d94                                         |     goto label_21;
                                                                 | label_61:
    0x000220ba cmp.w r8, 3                                       |     
                                                                 |     if (r8 == 3) {
    0x000220be beq.w 0x2265e                                     |         goto label_90;
                                                                 |     }
    0x000220c2 cmp.w r8, 4                                       |     
    0x000220c6 ldr.w fp, [r5, 0xc]                               |     fp = *((r5 + 0xc));
                                                                 |     if (r8 == 4) {
    0x000220ca beq.w 0x22648                                     |         goto label_91;
                                                                 |     }
                                                                 |     do {
    0x000220ce str r3, [sp, 0x1c]                                |         var_1ch = r3;
                                                                 | label_28:
    0x000220d0 ldr r6, [r5, 0x10]                                |         r6 = *((r5 + 0x10));
    0x000220d2 cmp r6, 0                                         |         
                                                                 |         if (r6 != 0) {
    0x000220d4 beq.w 0x221e0                                     |             
    0x000220d8 ldrb r3, [r6]                                     |             r3 = *(r6);
    0x000220da cmp r3, 0                                         |             
                                                                 |             if (r3 != 0) {
    0x000220dc beq 0x221d0                                       |                 
    0x000220de ldr r1, [pc, 0x240]                               |                 
    0x000220e0 mov r0, r6                                        |                 r0 = r6;
    0x000220e2 add r1, pc                                        |                 r1 = 0x44408;
    0x000220e4 blx 0xe3b0                                        |                 r0 = fcn_0000e3b0 ();
    0x000220e8 cmp r0, 0                                         |                 
                                                                 |                 if (r0 == 0) {
    0x000220ea beq.w 0x223a6                                     |                     goto label_92;
                                                                 |                 }
    0x000220ee ldr r1, [pc, 0x234]                               |                 
    0x000220f0 mov r0, r6                                        |                 r0 = r6;
    0x000220f2 add r1, pc                                        |                 r1 = 0x4441c;
    0x000220f4 blx 0xe3b0                                        |                 r0 = fcn_0000e3b0 ();
    0x000220f8 cmp r0, 0                                         |                 
                                                                 |                 if (r0 == 0) {
    0x000220fa beq.w 0x22466                                     |                     goto label_93;
                                                                 |                 }
    0x000220fe ldr r1, [pc, 0x228]                               |                 
    0x00022100 mov r0, r6                                        |                 r0 = r6;
    0x00022102 add r1, pc                                        |                 r1 = 0x44430;
    0x00022104 blx 0xe3b0                                        |                 r0 = fcn_0000e3b0 ();
    0x00022108 mov r5, r0                                        |                 r5 = r0;
    0x0002210a cmp r0, 0                                         |                 
                                                                 |                 if (r0 == 0) {
    0x0002210c beq.w 0x224d0                                     |                     goto label_94;
                                                                 |                 }
    0x00022110 ldr r1, [pc, 0x218]                               |                 
    0x00022112 mov r0, r6                                        |                 r0 = r6;
    0x00022114 add r1, pc                                        |                 r1 = 0x44444;
    0x00022116 blx 0xe3b0                                        |                 r0 = fcn_0000e3b0 ();
    0x0002211a cmp r0, 0                                         |                 
                                                                 |                 if (r0 == 0) {
    0x0002211c beq.w 0x2258c                                     |                     goto label_95;
                                                                 |                 }
    0x00022120 ldr r1, [pc, 0x20c]                               |                 
    0x00022122 mov r0, r6                                        |                 r0 = r6;
    0x00022124 add r1, pc                                        |                 r1 = 0x44458;
    0x00022126 blx 0xe3b0                                        |                 r0 = fcn_0000e3b0 ();
    0x0002212a cmp r0, 0                                         |                 
                                                                 |                 if (r0 == 0) {
    0x0002212c beq.w 0x225ba                                     |                     goto label_96;
                                                                 |                 }
    0x00022130 ldr r1, [pc, 0x200]                               |                 
    0x00022132 mov r0, r6                                        |                 r0 = r6;
    0x00022134 add r1, pc                                        |                 r1 = 0x4446c;
    0x00022136 blx 0xe3b0                                        |                 r0 = fcn_0000e3b0 ();
    0x0002213a cmp r0, 0                                         |                 
                                                                 |                 if (r0 == 0) {
    0x0002213c beq.w 0x225fe                                     |                     goto label_97;
                                                                 |                 }
    0x00022140 ldr r1, [pc, 0x1f4]                               |                 
    0x00022142 mov r0, r6                                        |                 r0 = r6;
    0x00022144 add r1, pc                                        |                 r1 = 0x44480;
    0x00022146 blx 0xe3b0                                        |                 r0 = fcn_0000e3b0 ();
    0x0002214a cmp r0, 0                                         |                 
                                                                 |                 if (r0 == 0) {
    0x0002214c beq.w 0x22634                                     |                     goto label_98;
                                                                 |                 }
    0x00022150 ldr r1, [pc, 0x1e8]                               |                 
    0x00022152 mov r0, r6                                        |                 r0 = r6;
    0x00022154 add r1, pc                                        |                 r1 = 0x44494;
    0x00022156 blx 0xe3b0                                        |                 r0 = fcn_0000e3b0 ();
    0x0002215a cmp r0, 0                                         |                 
                                                                 |                 if (r0 == 0) {
    0x0002215c beq.w 0x22620                                     |                     goto label_99;
                                                                 |                 }
    0x00022160 ldr r1, [pc, 0x1dc]                               |                 
    0x00022162 mov r0, r6                                        |                 r0 = r6;
    0x00022164 add r1, pc                                        |                 r1 = 0x444a8;
    0x00022166 blx 0xe3b0                                        |                 r0 = fcn_0000e3b0 ();
    0x0002216a cmp r0, 0                                         |                 
                                                                 |                 if (r0 == 0) {
    0x0002216c beq.w 0x226ee                                     |                     goto label_100;
                                                                 |                 }
    0x00022170 ldr r1, [pc, 0x1d0]                               |                 
    0x00022172 mov r0, r6                                        |                 r0 = r6;
    0x00022174 add r1, pc                                        |                 r1 = 0x444bc;
    0x00022176 blx 0xe3b0                                        |                 r0 = fcn_0000e3b0 ();
    0x0002217a cmp r0, 0                                         |                 
                                                                 |                 if (r0 == 0) {
    0x0002217c beq.w 0x226da                                     |                     goto label_101;
                                                                 |                 }
    0x00022180 ldr r1, [pc, 0x1c4]                               |                 
    0x00022182 mov r0, r6                                        |                 r0 = r6;
    0x00022184 add r1, pc                                        |                 r1 = 0x444d0;
    0x00022186 blx 0xe3b0                                        |                 r0 = fcn_0000e3b0 ();
    0x0002218a cmp r0, 0                                         |                 
                                                                 |                 if (r0 == 0) {
    0x0002218c beq.w 0x226c6                                     |                     goto label_102;
                                                                 |                 }
    0x00022190 ldr r1, [pc, 0x1b8]                               |                 
    0x00022192 mov r0, r6                                        |                 r0 = r6;
    0x00022194 add r1, pc                                        |                 r1 = 0x444e4;
    0x00022196 blx 0xe3b0                                        |                 r0 = fcn_0000e3b0 ();
    0x0002219a cmp r0, 0                                         |                 
                                                                 |                 if (r0 == 0) {
    0x0002219c beq.w 0x226b2                                     |                     goto label_103;
                                                                 |                 }
    0x000221a0 ldr r1, [pc, 0x1ac]                               |                 
    0x000221a2 mov r0, r6                                        |                 r0 = r6;
    0x000221a4 add r1, pc                                        |                 r1 = 0x444f8;
    0x000221a6 blx 0xe3b0                                        |                 r0 = fcn_0000e3b0 ();
    0x000221aa cmp r0, 0                                         |                 
                                                                 |                 if (r0 == 0) {
    0x000221ac beq.w 0x2277a                                     |                     goto label_104;
                                                                 |                 }
    0x000221b0 ldr r1, [pc, 0x1a0]                               |                 
    0x000221b2 mov r0, r6                                        |                 r0 = r6;
    0x000221b4 add r1, pc                                        |                 r1 = 0x4450c;
    0x000221b6 blx 0xe3b0                                        |                 r0 = fcn_0000e3b0 ();
    0x000221ba cmp r0, 0                                         |                 
                                                                 |                 if (r0 != 0) {
    0x000221bc bne.w 0x2275a                                     |                     goto label_105;
                                                                 |                 }
    0x000221c0 cmp r4, 0                                         |                 
                                                                 |                 if (r4 != 0) {
    0x000221c2 bne 0x222b2                                       |                     goto label_27;
                                                                 |                 }
    0x000221c4 ldr r3, [pc, 0x190]                               |                 
    0x000221c6 mov.w r8, 0xd                                     |                 r8 = 0xd;
    0x000221ca add r3, pc                                        |                 r3 = 0x44526;
    0x000221cc str r3, [sp, 0x18]                                |                 var_18h = r3;
    0x000221ce b 0x21d94                                         |                 goto label_21;
                                                                 |             }
    0x000221d0 cmp r4, 0                                         |             
                                                                 |             if (r4 != 0) {
    0x000221d2 bne 0x222b2                                       |                 goto label_27;
                                                                 |             }
    0x000221d4 ldr r3, [pc, 0x184]                               |             
    0x000221d6 mov.w r8, 2                                       |             r8 = 2;
    0x000221da add r3, pc                                        |             r3 = 0x4453a;
    0x000221dc str r3, [sp, 0x18]                                |             var_18h = r3;
    0x000221de b 0x21d94                                         |             goto label_21;
                                                                 |         }
    0x000221e0 cmp r4, 0                                         |         
                                                                 |         if (r4 != 0) {
    0x000221e2 bne 0x222b2                                       |             goto label_27;
                                                                 |         }
    0x000221e4 ldr r3, [pc, 0x178]                               |         
    0x000221e6 mov.w r8, 2                                       |         r8 = 2;
    0x000221ea add r3, pc                                        |         r3 = 0x4454e;
    0x000221ec str r3, [sp, 0x18]                                |         var_18h = r3;
    0x000221ee b 0x21d94                                         |         goto label_21;
                                                                 | label_60:
    0x000221f0 cmp.w r8, 3                                       |         
                                                                 |         if (r8 == 3) {
    0x000221f4 beq.w 0x2271c                                     |             goto label_106;
                                                                 |         }
    0x000221f8 cmp.w r8, 4                                       |         
    0x000221fc ldr.w fp, [r5, 0xc]                               |         fp = *((r5 + 0xc));
    0x00022200 it ne                                             |         
                                                                 |         if (r8 == 4) {
    0x00022202 movne r3, 0                                       |             r3 = 0;
                                                                 |         }
    0x00022204 bne.w 0x220ce                                     |         
                                                                 |     } while (r8 != 4);
    0x00022208 cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x0002220a bne.w 0x21d78                                     |         goto label_22;
                                                                 |     }
    0x0002220e ldr r3, [pc, 0x154]                               |     
    0x00022210 mov.w r8, 2                                       |     r8 = 2;
    0x00022214 str r4, [sp, 0x1c]                                |     var_1ch = r4;
    0x00022216 add r3, pc                                        |     r3 = 0x44580;
    0x00022218 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x0002221a b 0x21d94                                         |     goto label_21;
                                                                 | label_82:
    0x0002221c ldr r4, [pc, 0x148]                               |     
    0x0002221e add r3, sp, 0x40                                  |     r3 += arg_40h;
    0x00022220 mov r2, r0                                        |     r2 = r0;
    0x00022222 mov r0, r6                                        |     r0 = r6;
    0x00022224 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x00022226 add r4, pc                                        |     r4 = 0x44592;
    0x00022228 mov r1, r4                                        |     r1 = r4;
    0x0002222a bl 0x21570                                        |     byte_value_from_proc_file ();
    0x0002222e ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x00022230 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00022232 bne.w 0x21f68                                     |         goto label_16;
                                                                 |     }
    0x00022234 add r6, sp, 0x264                                 |     r6 = sp + 0x264;
    0x00022236 ldr r4, [sp, 0x10]                                |     r4 = var_10h;
    0x00022238 mov r2, r0                                        |     r2 = r0;
    0x0002223a ldr r0, [r3]                                      |     r0 = *(r3);
    0x0002223c str r3, [sp, 0x24]                                |     *(arg_24h) = r3;
    0x0002223e ldr r1, [r4]                                      |     r1 = *(r4);
    0x00022240 adds r1, r1, r0                                   |     r1 += r0;
    0x00022242 ldr r0, [r3, 4]                                   |     r0 = *((r3 + 4));
    0x00022244 str r1, [r4]                                      |     *(r4) = r1;
    0x00022246 ldr r1, [r4, 4]                                   |     r1 = *((r4 + 4));
    0x00022248 adc.w r1, r1, r0                                  |     __asm ("adc.w r1, r1, r0");
    0x0002224c mov r0, r6                                        |     r0 = r6;
    0x0002224e str r1, [r4, 4]                                   |     *((r4 + 4)) = r1;
    0x00022250 ldr r4, [pc, 0x118]                               |     
    0x00022252 add r4, pc                                        |     r4 = 0x445c2;
    0x00022254 mov r1, r4                                        |     r1 = r4;
    0x00022256 bl 0x21570                                        |     byte_value_from_proc_file ();
    0x0002225a str r4, [sp, 0x18]                                |     var_18h = r4;
    0x0002225c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0002225e bne.w 0x21f6a                                     |         goto label_23;
                                                                 |     }
    0x00022262 ldr r0, [sp, 0x10]                                |     r0 = var_10h;
    0x00022264 ldr r3, [sp, 0x24]                                |     r3 = *(arg_24h);
    0x00022266 ldr r2, [r0]                                      |     r2 = *(r0);
    0x00022268 ldr r1, [r3]                                      |     r1 = *(r3);
    0x0002226a adds r2, r2, r1                                   |     r2 += r1;
    0x0002226c ldr r1, [r3, 4]                                   |     r1 = *((r3 + 4));
    0x0002226e ldr r3, [r0, 4]                                   |     r3 = *((r0 + 4));
    0x00022270 str r2, [r0]                                      |     *(r0) = r2;
    0x00022272 adc.w r3, r3, r1                                  |     __asm ("adc.w r3, r3, r1");
    0x00022276 str r3, [r0, 4]                                   |     *((r0 + 4)) = r3;
    0x00022278 b 0x21f1a                                         |     goto label_24;
                                                                 | label_58:
    0x0002227a blx 0xe3d4                                        |     fcn_0000e3d4 ();
    0x0002227e movs r6, 0                                        |     r6 = 0;
    0x00022280 mov r5, r0                                        |     r5 = r0;
    0x00022282 str r6, [r5]                                      |     *(r5) = r6;
    0x00022284 mov r0, fp                                        |     r0 = fp;
    0x00022286 blx 0xe3f8                                        |     r0 = fcn_0000e3f8 ();
    0x0002228a mov sl, r0                                        |     sl = r0;
    0x0002228c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002228e beq.w 0x224a6                                     |         goto label_107;
                                                                 |     }
    0x00022292 ldr.w r8, [r4, 4]                                 |     r8 = *((r4 + 4));
    0x00022296 cmp.w r8, 2                                       |     
                                                                 |     if (r8 <= 2) {
    0x0002229a ble.w 0x22456                                     |         goto label_108;
                                                                 |     }
    0x0002229e ldr r5, [r4, 8]                                   |     r5 = *((r4 + 8));
    0x000222a0 mov r4, r6                                        |     r4 = r6;
    0x000222a2 b 0x21cf8                                         |     goto label_25;
                                                                 | label_86:
    0x000222a4 movs r3, 1                                        |     r3 = 1;
    0x000222a6 vmov.f64 d8, d16                                  |     __asm ("vmov.f64 d8, d16");
    0x000222aa str r4, [sp, 0x18]                                |     var_18h = r4;
    0x000222ac strd r3, r3, [sp, 0x20]                           |     __asm ("strd r3, r3, [sp, 0x20]");
    0x000222b0 b 0x21dce                                         |     goto label_14;
                                                                 | label_27:
    0x000222b2 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x000222b4 ldr r4, [r3, 0x28]                                |     r4 = *((r3 + 0x28));
    0x000222b6 ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x000222b8 cmp r3, 3                                         |     
                                                                 |     if (r3 == 3) {
    0x000222ba beq.w 0x2244c                                     |         goto label_109;
                                                                 |     }
                                                                 | label_68:
    0x000222be movs r3, 0                                        |     r3 = 0;
    0x000222c0 strd r3, r3, [sp, 0x28]                           |     __asm ("strd r3, r3, [sp, 0x28]");
    0x000222c4 b 0x22098                                         |     goto label_26;
                                                                 | label_57:
    0x00022370 cmp.w r8, 2                                       |     
    0x00022374 itt ne                                            |     
                                                                 |     if (r8 == 2) {
    0x00022376 movne sl, fp                                      |         sl = fp;
                                                                 |     }
                                                                 |     if (r8 != 2) {
    0x00022378 movne r4, sl                                      |         r4 = sl;
                                                                 |         goto label_110;
                                                                 |     }
                                                                 |     if (r8 != 2) {
                                                                 | label_110:
    0x0002237a bne.w 0x21cf8                                     |         goto label_25;
                                                                 |     }
    0x0002237e ldr.w r3, [pc, 0x43c]                             |     
    0x00022382 mov sl, fp                                        |     sl = fp;
    0x00022384 str.w fp, [sp, 0x1c]                              |     __asm ("str.w fp, [var_1ch]");
    0x00022388 add r3, pc                                        |     r3 = 0x44b4a;
    0x0002238a str r3, [sp, 0x18]                                |     var_18h = r3;
    0x0002238c b 0x21d94                                         |     goto label_21;
                                                                 | label_56:
    0x0002238e ldr.w r3, [pc, 0x430]                             |     
    0x00022392 mov.w sl, 0                                       |     sl = 0;
    0x00022396 mov fp, sl                                        |     
    0x00022398 mov.w r8, 2                                       |     r8 = 2;
    0x0002239c str.w sl, [sp, 0x1c]                              |     __asm ("str.w sl, [var_1ch]");
    0x000223a0 add r3, pc                                        |     r3 = 0x44b66;
    0x000223a2 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x000223a4 b 0x21d94                                         |     goto label_21;
                                                                 | label_92:
    0x000223a6 cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x000223a8 bne 0x222b2                                       |         goto label_27;
                                                                 |     }
    0x000223aa ldr.w r3, [pc, 0x418]                             |     r3 = *(0x000227c4);
    0x000223ae mov.w r8, 2                                       |     r8 = 2;
    0x000223b2 add r3, pc                                        |     r3 += pc;
    0x000223b4 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x000223b6 b 0x21d94                                         |     goto label_21;
                                                                 | label_62:
    0x000223b8 cmp.w r8, 3                                       |     
                                                                 |     if (r8 == 3) {
    0x000223bc beq.w 0x22676                                     |         goto label_111;
                                                                 |     }
    0x000223c0 cmp.w r8, 4                                       |     
    0x000223c4 ldr.w fp, [r5, 0xc]                               |     fp = *((r5 + 0xc));
                                                                 |     if (r8 != 4) {
    0x000223c8 bne.w 0x220d0                                     |         goto label_28;
                                                                 |     }
    0x000223cc cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x000223ce bne.w 0x21d78                                     |         goto label_22;
                                                                 |     }
    0x000223d2 ldr r3, [pc, 0x3f4]                               |     
    0x000223d4 mov.w r8, 2                                       |     r8 = 2;
    0x000223d8 str r4, [sp, 0x1c]                                |     var_1ch = r4;
    0x000223da add r3, pc                                        |     r3 = 0x44ba8;
    0x000223dc str r3, [sp, 0x18]                                |     var_18h = r3;
    0x000223de b 0x21d94                                         |     goto label_21;
                                                                 | label_84:
    0x000223e0 ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x000223e2 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x000223e4 beq 0x22478                                       |         goto label_112;
                                                                 |     }
    0x000223e6 vmov s15, r3                                      |     __asm ("vmov s15, r3");
    0x000223ea vcvt.f64.s32 d17, s15                             |     __asm ("vcvt.f64.s32 d17, s15");
    0x000223ee vdiv.f64 d16, d8, d17                             |     __asm ("vdiv.f64 d16, d8, d17");
                                                                 | label_30:
    0x000223f2 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x000223f4 str r2, [r3, 0x28]                                |     *((r3 + 0x28)) = r2;
    0x000223f6 vstr d16, [r3, 0x10]                              |     __asm ("vstr d16, [r3, 0x10]");
    0x000223fa b 0x21faa                                         |     goto label_20;
                                                                 | label_89:
    0x000223fc ldr r5, [sp, 0x20]                                |     r5 = var_20h;
    0x000223fe orr r4, r4, 2                                     |     r4 |= 2;
    0x00022402 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00022404 beq 0x22492                                       |         goto label_113;
                                                                 |     }
    0x00022406 ldrd r0, r1, [sp, 0x28]                           |     __asm ("ldrd r0, r1, [arg_28h]");
    0x0002240a bl 0x4c6f4                                        |     fcn_0004c6f4 (r0, r1, r2);
    0x0002240e vmov s15, r5                                      |     __asm ("vmov s15, r5");
    0x00022412 vcvt.f64.s32 d17, s15                             |     __asm ("vcvt.f64.s32 d17, s15");
    0x00022416 vmov d18, r0, r1                                  |     __asm ("vmov d18, r0, r1");
    0x0002241a vdiv.f64 d16, d18, d17                            |     __asm ("vdiv.f64 d16, d18, d17");
                                                                 | label_29:
    0x0002241e ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x00022420 str r4, [r3, 0x28]                                |     *((r3 + 0x28)) = r4;
    0x00022422 vstr d16, [r3, 0x10]                              |     __asm ("vstr d16, [r3, 0x10]");
    0x00022426 b 0x21faa                                         |     goto label_20;
                                                                 | label_63:
    0x00022428 cmp.w r8, 3                                       |     
                                                                 |     if (r8 == 3) {
    0x0002242c beq.w 0x227a0                                     |         goto label_114;
                                                                 |     }
    0x00022430 cmp.w r8, 4                                       |     
    0x00022434 ldr.w fp, [r5, 0xc]                               |     fp = *((r5 + 0xc));
    0x00022438 itt ne                                            |     
                                                                 |     if (r8 == 4) {
    0x0002243a movne r3, 3                                       |         r3 = 3;
                                                                 |     }
                                                                 |     if (r8 != 4) {
    0x0002243c strne r3, [sp, 0x1c]                              |         var_1ch = r3;
                                                                 |         goto label_115;
                                                                 |     }
                                                                 |     if (r8 != 4) {
                                                                 | label_115:
    0x0002243e bne.w 0x220d0                                     |         goto label_28;
                                                                 |     }
    0x00022442 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x00022444 beq.w 0x2278e                                     |         goto label_116;
                                                                 |     }
                                                                 | label_36:
    0x00022448 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0002244a ldr r4, [r3, 0x28]                                |     r4 = *((r3 + 0x28));
                                                                 | label_109:
    0x0002244c vmov.i64 d16, 0                                   |     __asm ("vmov.i64 d16, 0");
    0x00022450 orr r4, r4, 2                                     |     r4 |= 2;
    0x00022454 b 0x2241e                                         |     goto label_29;
                                                                 | label_108:
    0x00022456 ldr r3, [pc, 0x374]                               |     
    0x00022458 mov fp, r6                                        |     
    0x0002245a mov.w r8, 2                                       |     r8 = 2;
    0x0002245e str r6, [sp, 0x1c]                                |     var_1ch = r6;
    0x00022460 add r3, pc                                        |     r3 = 0x44c32;
    0x00022462 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x00022464 b 0x21d94                                         |     goto label_21;
                                                                 | label_93:
    0x00022466 cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x00022468 bne.w 0x222b2                                     |         goto label_27;
                                                                 |     }
    0x0002246c ldr r3, [pc, 0x360]                               |     
    0x0002246e mov.w r8, 1                                       |     r8 = 1;
    0x00022472 add r3, pc                                        |     r3 = 0x44c46;
    0x00022474 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x00022476 b 0x21d94                                         |     goto label_21;
                                                                 | label_112:
    0x00022478 vmov.i64 d16, 0                                   |     __asm ("vmov.i64 d16, 0");
    0x0002247c b 0x223f2                                         |     goto label_30;
                                                                 | label_88:
    0x0002247e vcmpe.f64 d8, d16                                 |     __asm ("vcmpe.f64 d8, d16");
    0x00022482 vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
    0x00022486 str r3, [sp, 0x20]                                |     var_20h = r3;
                                                                 |     if (r4 >= 0) {
    0x00022488 bmi 0x2248e                                       |         
    0x0002248a vmov.f64 d8, d16                                  |         __asm ("vmov.f64 d8, d16");
                                                                 |     }
    0x0002248e str r4, [sp, 0x18]                                |     var_18h = r4;
    0x00022490 b 0x22042                                         |     goto label_31;
                                                                 | label_113:
    0x00022492 vmov.i64 d16, 0                                   |     __asm ("vmov.i64 d16, 0");
    0x00022496 b 0x2241e                                         |     goto label_29;
                                                                 | label_81:
    0x00022498 cmp r2, r0                                        |     
    0x0002249a ldr r0, [sp, 0x2c]                                |     r0 = *(arg_2ch);
    0x0002249c sbcs.w r0, r3, r0                                 |     __asm ("sbcs.w r0, r3, r0");
                                                                 |     if (r2 >= r0) {
    0x000224a0 bhs.w 0x22040                                     |         goto label_32;
                                                                 |     }
    0x000224a4 b 0x2203c                                         |     goto label_33;
                                                                 | label_107:
    0x000224a6 ldr r3, [r5]                                      |     r3 = *(r5);
    0x000224a8 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x000224aa bne 0x2259a                                       |         goto label_117;
                                                                 |     }
    0x000224ac ldr.w r8, [r4, 4]                                 |     r8 = *((r4 + 4));
    0x000224b0 cmp.w r8, 2                                       |     
                                                                 |     if (r8 <= 2) {
    0x000224b4 ble.w 0x21d78                                     |         goto label_22;
                                                                 |     }
    0x000224b8 ldr r5, [r4, 8]                                   |     r5 = *((r4 + 8));
    0x000224ba movs r4, 1                                        |     r4 = 1;
    0x000224bc b 0x21cf8                                         |     goto label_25;
                                                                 | label_87:
    0x000224be vcmpe.f64 d8, d16                                 |     __asm ("vcmpe.f64 d8, d16");
    0x000224c2 vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
    0x000224c6 str r3, [sp, 0x20]                                |     var_20h = r3;
                                                                 |     if (r4 <= 1) {
    0x000224c8 ble 0x22580                                       |         goto label_118;
                                                                 |     }
    0x000224ca str r4, [sp, 0x18]                                |     var_18h = r4;
    0x000224cc str r2, [sp, 0x24]                                |     *(arg_24h) = r2;
    0x000224ce b 0x21dce                                         |     goto label_14;
                                                                 | label_94:
    0x000224d0 cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x000224d2 bne 0x225ce                                       |         goto label_119;
                                                                 |     }
    0x000224d4 ldr r1, [pc, 0x2fc]                               |     
    0x000224d6 ldr r0, [pc, 0x300]                               |     
    0x000224d8 add r1, pc                                        |     r1 = 0x44cb0;
    0x000224da add r0, pc                                        |     r0 = 0x44cb8;
    0x000224dc blx 0xdf90                                        |     r0 = fcn_0000df90 ();
    0x000224e0 mov r4, r0                                        |     r4 = r0;
                                                                 |     if (r0 == 0) {
    0x000224e2 cbz r0, 0x2252c                                   |         goto label_120;
                                                                 |     }
    0x000224e4 ldr r1, [pc, 0x2f4]                               |     
    0x000224e6 mov r2, r5                                        |     r2 = r5;
    0x000224e8 add r3, sp, 0x38                                  |     r3 += arg_38h;
    0x000224ea add r1, pc                                        |     r1 = 0x44cca;
    0x000224ec bl 0x21570                                        |     r0 = byte_value_from_proc_file ();
    0x000224f0 mov r5, r0                                        |     r5 = r0;
    0x000224f2 mov r0, r4                                        |     r0 = r4;
    0x000224f4 blx 0xdc8c                                        |     fcn_0000dc8c ();
                                                                 |     if (r5 != 0) {
    0x000224f8 cbnz r5, 0x2252c                                  |         goto label_120;
                                                                 |     }
    0x000224fa ldrd r3, r2, [sp, 0x38]                           |     __asm ("ldrd r3, r2, [arg_38h]");
    0x000224fe orrs r3, r2                                       |     r3 |= r2;
    0x00022500 itt ne                                            |     
                                                                 |     if (r3 == r2) {
    0x00022502 movne r8, 3                                       |         r8 = 3;
                                                                 |     }
                                                                 |     if (r3 == r2) {
    0x00022506 str r5, [sp, 0x18]                                |         var_18h = r5;
                                                                 |         goto label_121;
                                                                 |     }
                                                                 |     if (r3 != r2) {
                                                                 | label_121:
    0x00022508 bne.w 0x21d94                                     |         goto label_21;
                                                                 |     }
    0x0002250c ldr r4, [sp, 0x14]                                |     r4 = var_14h;
    0x0002250e mov r2, r5                                        |     r2 = r5;
    0x00022510 ldr r3, [pc, 0x2cc]                               |     
    0x00022512 movw r1, 0x29e                                    |     r1 = 0x29e;
    0x00022516 ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x00022518 add r3, pc                                        |     r3 = 0x44cfc;
    0x0002251a orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x0002251e str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x00022520 ldr r0, [pc, 0x2c0]                               |     
    0x00022522 add r0, pc                                        |     r0 = 0x44d0a;
    0x00022524 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x00022528 str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x0002252a b 0x22080                                         |     goto label_34;
                                                                 | label_120:
    0x0002252c ldr r4, [sp, 0x14]                                |     r4 = var_14h;
    0x0002252e ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x00022530 orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x00022534 str r3, [r4, 0x28]                                |     *((r4 + 0x28)) = r3;
    0x00022536 blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x0002253a ldr r0, [r0]                                      |     r0 = *(r0);
    0x0002253c bl 0x30b74                                        |     zbx_strerror ();
    0x00022540 ldr r1, [pc, 0x2a4]                               |     
    0x00022542 mov r2, r0                                        |     r2 = r0;
    0x00022544 movs r0, 0                                        |     r0 = 0;
    0x00022546 add r1, pc                                        |     r1 = 0x44d32;
    0x00022548 bl 0x44820                                        |     zbx_dsprintf ()
    0x0002254c str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x0002254e b 0x22080                                         |     goto label_34;
                                                                 | label_64:
    0x00022550 cmp.w r8, 3                                       |     
                                                                 |     if (r8 == 3) {
    0x00022554 beq.w 0x22702                                     |         goto label_122;
                                                                 |     }
    0x00022558 cmp.w r8, 4                                       |     
    0x0002255c ldr.w fp, [r5, 0xc]                               |     fp = *((r5 + 0xc));
    0x00022560 itt ne                                            |     
                                                                 |     if (r8 == 4) {
    0x00022562 movne r3, 1                                       |         r3 = 1;
                                                                 |     }
                                                                 |     if (r8 != 4) {
    0x00022564 strne r3, [sp, 0x1c]                              |         var_1ch = r3;
                                                                 |         goto label_123;
                                                                 |     }
                                                                 |     if (r8 != 4) {
                                                                 | label_123:
    0x00022566 bne.w 0x220d0                                     |         goto label_28;
                                                                 |     }
    0x0002256a cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x0002256c bne.w 0x21d78                                     |         goto label_22;
                                                                 |     }
    0x00022570 ldr r3, [pc, 0x278]                               |     
    0x00022572 mov.w r8, 2                                       |     r8 = 2;
    0x00022576 add r3, pc                                        |     r3 = 0x44d66;
    0x00022578 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x0002257a movs r3, 1                                        |     r3 = 1;
    0x0002257c str r3, [sp, 0x1c]                                |     var_1ch = r3;
    0x0002257e b 0x21d94                                         |     goto label_21;
                                                                 | label_118:
    0x00022580 ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x00022582 vmov.f64 d8, d16                                  |     __asm ("vmov.f64 d8, d16");
    0x00022586 str r4, [sp, 0x18]                                |     var_18h = r4;
    0x00022588 str r3, [sp, 0x24]                                |     *(arg_24h) = r3;
    0x0002258a b 0x21dce                                         |     goto label_14;
                                                                 | label_95:
    0x0002258c cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x0002258e bne.w 0x222b2                                     |         goto label_27;
                                                                 |     }
    0x00022592 mov r8, r4                                        |     r8 = r4;
    0x00022594 str r0, [sp, 0x18]                                |     var_18h = r0;
    0x00022596 b.w 0x21d94                                       |     goto label_21;
                                                                 | label_117:
    0x0002259a ldr r4, [sp, 0x14]                                |     r4 = var_14h;
    0x0002259c ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x0002259e orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x000225a2 str r3, [r4, 0x28]                                |     *((r4 + 0x28)) = r3;
    0x000225a4 ldr r0, [r5]                                      |     r0 = *(r5);
    0x000225a6 bl 0x30b74                                        |     zbx_strerror ();
    0x000225aa ldr r1, [pc, 0x244]                               |     
    0x000225ac mov r2, r0                                        |     r2 = r0;
    0x000225ae mov r0, sl                                        |     r0 = sl;
    0x000225b0 add r1, pc                                        |     r1 = 0x44da6;
    0x000225b2 bl 0x44820                                        |     zbx_dsprintf ()
    0x000225b6 str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x000225b8 b 0x22080                                         |     goto label_34;
                                                                 | label_96:
    0x000225ba cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x000225bc bne.w 0x222b2                                     |         goto label_27;
                                                                 |     }
    0x000225c0 ldr r3, [pc, 0x230]                               |     
    0x000225c2 mov.w r8, 4                                       |     r8 = 4;
    0x000225c6 add r3, pc                                        |     r3 = 0x44dbe;
    0x000225c8 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x000225ca b.w 0x21d94                                       |     goto label_21;
                                                                 | label_119:
    0x000225ce ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x000225d0 ldr r4, [r3, 0x28]                                |     r4 = *((r3 + 0x28));
    0x000225d2 ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x000225d4 cmp r3, 3                                         |     
                                                                 |     if (r3 == 3) {
    0x000225d6 beq 0x22612                                       |         goto label_124;
                                                                 |     }
    0x000225d8 vmov.i64 d8, 0                                    |     __asm ("vmov.i64 d8, 0");
    0x000225dc b 0x21f9e                                         |     goto label_35;
                                                                 | label_65:
    0x000225de ldr r4, [sp, 0x14]                                |     r4 = var_14h;
    0x000225e0 movs r2, 0                                        |     r2 = 0;
    0x000225e2 ldr r3, [pc, 0x214]                               |     
    0x000225e4 movw r1, 0x23a                                    |     r1 = 0x23a;
    0x000225e8 ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x000225ea add r3, pc                                        |     r3 = 0x44de8;
    0x000225ec orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x000225f0 str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x000225f2 ldr r0, [pc, 0x208]                               |     
    0x000225f4 add r0, pc                                        |     r0 = 0x44df6;
    0x000225f6 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x000225fa str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x000225fc b 0x22080                                         |     goto label_34;
                                                                 | label_97:
    0x000225fe cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x00022600 bne.w 0x222b2                                     |         goto label_27;
                                                                 |     }
    0x00022604 ldr r3, [pc, 0x1f8]                               |     
    0x00022606 mov.w r8, 5                                       |     r8 = 5;
    0x0002260a add r3, pc                                        |     r3 = 0x44e0e;
    0x0002260c str r3, [sp, 0x18]                                |     var_18h = r3;
    0x0002260e b.w 0x21d94                                       |     goto label_21;
                                                                 | label_124:
    0x00022612 vmov.i64 d16, 0                                   |     __asm ("vmov.i64 d16, 0");
    0x00022616 orr r2, r4, 2                                     |     r2 = r4 | 2;
    0x0002261a b 0x223f2                                         |     goto label_30;
                                                                 | label_85:
    0x0002261c blx 0xe158                                        |     fcn_0000e158 ();
                                                                 | label_99:
    0x00022620 cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x00022622 bne.w 0x222b2                                     |         goto label_27;
                                                                 |     }
    0x00022626 ldr r3, [pc, 0x1dc]                               |     
    0x00022628 mov.w r8, 7                                       |     r8 = 7;
    0x0002262c add r3, pc                                        |     r3 = 0x44e36;
    0x0002262e str r3, [sp, 0x18]                                |     var_18h = r3;
    0x00022630 b.w 0x21d94                                       |     goto label_21;
                                                                 | label_98:
    0x00022634 cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x00022636 bne.w 0x222b2                                     |         goto label_27;
                                                                 |     }
    0x0002263a ldr r3, [pc, 0x1cc]                               |     
    0x0002263c mov.w r8, 6                                       |     r8 = 6;
    0x00022640 add r3, pc                                        |     r3 = 0x44e4e;
    0x00022642 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x00022644 b.w 0x21d94                                       |     goto label_21;
                                                                 | label_91:
    0x00022648 cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x0002264a bne.w 0x21d78                                     |         goto label_22;
                                                                 |     }
    0x0002264e ldr r3, [pc, 0x1bc]                               |     
    0x00022650 mov.w r8, 2                                       |     r8 = 2;
    0x00022654 str r4, [sp, 0x1c]                                |     var_1ch = r4;
    0x00022656 add r3, pc                                        |     r3 = 0x44e68;
    0x00022658 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x0002265a b.w 0x21d94                                       |     goto label_21;
                                                                 | label_90:
    0x0002265e cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x00022660 bne.w 0x21d78                                     |         goto label_22;
                                                                 |     }
    0x00022664 mov fp, r3                                        |     
    0x00022666 ldr r3, [pc, 0x1a8]                               |     
    0x00022668 mov.w r8, 2                                       |     r8 = 2;
    0x0002266c str r4, [sp, 0x1c]                                |     var_1ch = r4;
    0x0002266e add r3, pc                                        |     r3 = 0x44e84;
    0x00022670 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x00022672 b.w 0x21d94                                       |     goto label_21;
                                                                 | label_111:
    0x00022676 cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x00022678 bne.w 0x21d78                                     |         goto label_22;
                                                                 |     }
    0x0002267c ldr r3, [pc, 0x194]                               |     
    0x0002267e mov fp, r0                                        |     
    0x00022680 mov.w r8, 2                                       |     r8 = 2;
    0x00022684 str r4, [sp, 0x1c]                                |     var_1ch = r4;
    0x00022686 add r3, pc                                        |     r3 = 0x44e9e;
    0x00022688 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x0002268a b.w 0x21d94                                       |     goto label_21;
                                                                 | label_69:
    0x0002268e ldr r4, [sp, 0x14]                                |     r4 = var_14h;
    0x00022690 ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x00022692 orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x00022696 str r3, [r4, 0x28]                                |     *((r4 + 0x28)) = r3;
    0x00022698 blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x0002269c ldr r0, [r0]                                      |     r0 = *(r0);
    0x0002269e bl 0x30b74                                        |     zbx_strerror ();
    0x000226a2 ldr r1, [pc, 0x174]                               |     
    0x000226a4 mov r2, r0                                        |     r2 = r0;
    0x000226a6 mov r0, r7                                        |     r0 = r7;
    0x000226a8 add r1, pc                                        |     r1 = 0x44ec6;
    0x000226aa bl 0x44820                                        |     zbx_dsprintf ()
    0x000226ae str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x000226b0 b 0x22080                                         |     goto label_34;
                                                                 | label_103:
    0x000226b2 cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x000226b4 bne.w 0x222b2                                     |         goto label_27;
                                                                 |     }
    0x000226b8 ldr r3, [pc, 0x160]                               |     
    0x000226ba mov.w r8, 0xb                                     |     r8 = 0xb;
    0x000226be add r3, pc                                        |     r3 = 0x44ede;
    0x000226c0 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x000226c2 b.w 0x21d94                                       |     goto label_21;
                                                                 | label_102:
    0x000226c6 cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x000226c8 bne.w 0x222b2                                     |         goto label_27;
                                                                 |     }
    0x000226cc ldr r3, [pc, 0x150]                               |     
    0x000226ce mov.w r8, 0xa                                     |     r8 = 0xa;
    0x000226d2 add r3, pc                                        |     r3 = 0x44ef6;
    0x000226d4 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x000226d6 b.w 0x21d94                                       |     goto label_21;
                                                                 | label_101:
    0x000226da cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x000226dc bne.w 0x222b2                                     |         goto label_27;
                                                                 |     }
    0x000226e0 ldr r3, [pc, 0x140]                               |     
    0x000226e2 mov.w r8, 9                                       |     r8 = 9;
    0x000226e6 add r3, pc                                        |     r3 = 0x44f0e;
    0x000226e8 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x000226ea b.w 0x21d94                                       |     goto label_21;
                                                                 | label_100:
    0x000226ee cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x000226f0 bne.w 0x222b2                                     |         goto label_27;
                                                                 |     }
    0x000226f4 ldr r3, [pc, 0x130]                               |     
    0x000226f6 mov.w r8, 8                                       |     r8 = 8;
    0x000226fa add r3, pc                                        |     r3 = 0x44f26;
    0x000226fc str r3, [sp, 0x18]                                |     var_18h = r3;
    0x000226fe b.w 0x21d94                                       |     goto label_21;
                                                                 |     if (r1 != 0) {
    0x00022700 cbnz r1, 0x22756                                  |         goto label_125;
                                                                 |     }
                                                                 | label_122:
    0x00022702 cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x00022704 bne.w 0x21d78                                     |         goto label_22;
                                                                 |     }
    0x00022708 ldr r3, [pc, 0x120]                               |     
    0x0002270a mov fp, r0                                        |     
    0x0002270c mov.w r8, 2                                       |     r8 = 2;
    0x00022710 add r3, pc                                        |     r3 = 0x44f40;
    0x00022712 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x00022714 movs r3, 1                                        |     r3 = 1;
    0x00022716 str r3, [sp, 0x1c]                                |     var_1ch = r3;
    0x00022718 b.w 0x21d94                                       |     goto label_21;
                                                                 | label_106:
    0x0002271c cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x0002271e bne.w 0x21d78                                     |         goto label_22;
                                                                 |     }
    0x00022722 ldr r3, [pc, 0x10c]                               |     
    0x00022724 mov.w r8, 2                                       |     r8 = 2;
    0x00022728 str r4, [sp, 0x1c]                                |     var_1ch = r4;
    0x0002272a add r3, pc                                        |     r3 = 0x44f60;
    0x0002272c str r3, [sp, 0x18]                                |     var_18h = r3;
    0x0002272e b.w 0x21d94                                       |     goto label_21;
                                                                 |     if (r1 != 0) {
    0x00022730 cbnz r1, 0x22780                                  |         goto label_126;
                                                                 |     }
                                                                 | label_67:
    0x00022732 ldr r3, [pc, 0x100]                               |     
    0x00022734 mov.w r8, 2                                       |     r8 = 2;
    0x00022738 add r3, pc                                        |     r3 = 0x44f72;
    0x0002273a strd r3, r8, [sp, 0x18]                           |     __asm ("strd r3, r8, [sp, 0x18]");
    0x0002273e b.w 0x21d94                                       |     goto label_21;
                                                                 | label_66:
    0x00022742 cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x00022744 bne.w 0x21d78                                     |         goto label_22;
                                                                 |     }
    0x00022748 ldr r3, [pc, 0xec]                                |     
    0x0002274a mov.w r8, 2                                       |     r8 = 2;
    0x0002274e mov fp, r0                                        |     
    0x00022750 add r3, pc                                        |     r3 = 0x44f8c;
    0x00022752 strd r3, r8, [sp, 0x18]                           |     __asm ("strd r3, r8, [sp, 0x18]");
                                                                 | label_125:
    0x00022756 b.w 0x21d94                                       |     goto label_21;
                                                                 | label_105:
    0x0002275a ldr r4, [sp, 0x14]                                |     r4 = var_14h;
    0x0002275c movs r2, 0                                        |     r2 = 0;
    0x0002275e ldr r3, [pc, 0xdc]                                |     
    0x00022760 mov.w r1, 0x28c                                   |     r1 = 0x28c;
    0x00022764 ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x00022766 add r3, pc                                        |     r3 = 0x44fa8;
    0x00022768 orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x0002276c str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x0002276e ldr r0, [pc, 0xd0]                                |     
    0x00022770 add r0, pc                                        |     r0 = 0x44fb6;
    0x00022772 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x00022776 str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x00022778 b 0x22080                                         |     goto label_34;
                                                                 | label_104:
    0x0002277a cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x0002277c bne.w 0x222b2                                     |         goto label_27;
                                                                 |     }
                                                                 | label_126:
    0x00022780 ldr r3, [pc, 0xc0]                                |     
    0x00022782 mov.w r8, 0xc                                     |     r8 = 0xc;
    0x00022786 add r3, pc                                        |     r3 = 0x44fce;
    0x00022788 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x0002278a b.w 0x21d94                                       |     goto label_21;
                                                                 | label_116:
    0x0002278e ldr r3, [pc, 0xb8]                                |     
    0x00022790 mov.w r8, 2                                       |     r8 = 2;
    0x00022794 add r3, pc                                        |     r3 = 0x44fe2;
    0x00022796 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x00022798 movs r3, 3                                        |     r3 = 3;
    0x0002279a str r3, [sp, 0x1c]                                |     var_1ch = r3;
    0x0002279c b.w 0x21d94                                       |     goto label_21;
                                                                 | label_114:
    0x000227a0 cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x000227a2 bne.w 0x22448                                     |         goto label_36;
                                                                 |     }
    0x000227a6 ldr r3, [pc, 0xa4]                                |     
    0x000227a8 mov fp, r0                                        |     
    0x000227aa str.w r8, [sp, 0x1c]                              |     __asm ("str.w r8, [var_1ch]");
    0x000227ae mov.w r8, 2                                       |     r8 = 2;
    0x000227b2 add r3, pc                                        |     r3 = 0x45004;
    0x000227b4 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x000227b6 b.w 0x21d94                                       |     goto label_21;
                                                                 | }
    ; assembly                                                           | /* r2dec pseudo code output */
                                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x29b04 */
                                                                         | #include <stdint.h>
                                                                         |  
    ; (fcn) fcn.00029b04 ()                                              | void fcn_00029b04 (int16_t arg_20h, int16_t arg_28h, int16_t arg1, int16_t arg2) {
                                                                         |     r0 = arg1;
                                                                         |     r1 = arg2;
    0x00029b04 push.w {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x00029b08 mov sl, r0                                                |     sl = r0;
    0x00029b0a mov fp, r1                                                |     
    0x00029b0c mov.w r8, 0                                               |     r8 = 0;
    0x00029b10 bl 0x4737c                                                |     r0 = num_param ();
    0x00029b14 subs.w sb, r0, 0                                          |     sb = r0 - 0;
                                                                         |     if (sb <= r0) {
    0x00029b18 ble 0x29b78                                               |         goto label_1;
                                                                         |     }
    0x00029b1a movs r7, 1                                                |     r7 = 1;
                                                                         | label_0:
    0x00029b1c movs r2, 0                                                |     r2 = 0;
    0x00029b1e mov r1, r7                                                |     r1 = r7;
    0x00029b20 mov r0, sl                                                |     r0 = sl;
    0x00029b22 bl 0x4765c                                                |     r0 = get_param_dyn ();
    0x00029b26 mov r6, r0                                                |     r6 = r0;
                                                                         |     if (r0 == 0) {
    0x00029b28 cbz r0, 0x29b5e                                           |         goto label_2;
                                                                         |     }
    0x00029b2a ldr r4, [pc, 0x80]                                        |     
    0x00029b2c movs r5, 1                                                |     r5 = 1;
    0x00029b2e add r4, pc                                                |     r4 = 0x536e0;
    0x00029b30 b 0x29b40                                                 |     
                                                                         |     while (r3 != 0) {
    0x00029b32 blx 0xdf68                                                |         fcn_0000df68 ();
    0x00029b36 adds r0, 1                                                |         r0++;
    0x00029b38 lsls r5, r5, 1                                            |         r5 <<= 1;
    0x00029b3a add r4, r0                                                |         r4 += r0;
    0x00029b3c ldrb r3, [r4]                                             |         r3 = *(r4);
                                                                         |         if (r3 == 0) {
    0x00029b3e cbz r3, 0x29b50                                           |             goto label_3;
                                                                         |         }
    0x00029b40 mov r1, r4                                                |         r1 = r4;
    0x00029b42 mov r0, r6                                                |         r0 = r6;
    0x00029b44 blx 0xe3b0                                                |         r0 = fcn_0000e3b0 ();
    0x00029b48 mov r3, r0                                                |         r3 = r0;
    0x00029b4a mov r0, r4                                                |         r0 = r4;
    0x00029b4c cmp r3, 0                                                 |         
    0x00029b4e bne 0x29b32                                               |         
                                                                         |     }
                                                                         | label_3:
    0x00029b50 lsls r3, r5, 0x16                                         |     r3 = r5 << 0x16;
                                                                         |     if (r3 < r5) {
    0x00029b52 bmi 0x29b7e                                               |         goto label_4;
                                                                         |     }
    0x00029b54 mov r0, r6                                                |     r0 = r6;
    0x00029b56 orr.w r8, r8, r5                                          |     r8 |= r5;
    0x00029b5a blx 0xde30                                                |     fcn_0000de30 ();
                                                                         | label_2:
    0x00029b5e adds r7, 1                                                |     r7++;
    0x00029b60 cmp sb, r7                                                |     
                                                                         |     if (sb >= r7) {
    0x00029b62 bge 0x29b1c                                               |         goto label_0;
                                                                         |     }
    0x00029b64 tst.w r8, 0x100                                           |     
    0x00029b68 it ne                                                     |     
                                                                         |     if ((r8 & 0x100) == 0) {
    0x00029b6a orrne r8, r8, 0x30                                        |         r8 |= 0x30;
                                                                         |     }
    0x00029b6e tst.w r8, 0x80                                            |     
    0x00029b72 it ne                                                     |     
                                                                         |     if ((r8 & 0x80) == 0) {
    0x00029b74 orrne r8, r8, 0x7f                                        |         r8 |= 0x7f;
                                                                         |     }
                                                                         | label_1:
    0x00029b78 mov r0, r8                                                |     r0 = r8;
    0x00029b7a pop.w {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
                                                                         | label_4:
    0x00029b7e ldr.w r3, [fp, 0x28]                                      |     r3 = *(arg_28h);
    0x00029b82 mov r2, r6                                                |     r2 = r6;
    0x00029b84 ldr r1, [pc, 0x28]                                        |     
    0x00029b86 movs r0, 0                                                |     r0 = 0;
    0x00029b88 mov.w r8, -1                                              |     r8 = -1;
    0x00029b8c orr r3, r3, 0x20                                          |     r3 |= 0x20;
    0x00029b90 add r1, pc                                                |     r1 = 0x53744;
    0x00029b92 str.w r3, [fp, 0x28]                                      |     __asm ("str.w r3, [arg_28h]");
    0x00029b96 bl 0x44820                                                |     zbx_dsprintf ()
    0x00029b9a str.w r0, [fp, 0x20]                                      |     __asm ("str.w r0, [arg_20h]");
    0x00029b9e mov r0, r6                                                |     r0 = r6;
    0x00029ba0 blx 0xde30                                                |     fcn_0000de30 ();
    0x00029ba4 mov r0, r8                                                |     r0 = r8;
    0x00029ba6 pop.w {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
                                                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x29bb4 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00029bb4 ()                                      | void fcn_00029bb4 (int16_t arg_48h, int16_t arg_4ch, int16_t arg_50h, int16_t arg_54h, int16_t arg_58h, int16_t arg_5ch, int16_t arg_60h, int16_t arg_1e8h, int16_t arg_208h, int16_t arg_260h, int16_t arg_298h, int16_t arg_338h, int16_t arg_3e8h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h_2;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int32_t var_10h_2;
                                                                 |     int32_t var_10h_3;
                                                                 |     int16_t var_18h_2;
                                                                 |     int16_t var_20h_2;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_28h;
                                                                 |     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;
                                                                 |     int16_t var_44h;
                                                                 |     int16_t var_48h;
                                                                 |     int16_t var_4ch;
                                                                 |     int16_t var_50h;
                                                                 |     int32_t var_50h_2;
                                                                 |     int32_t var_c8h;
                                                                 |     int32_t var_c0h;
                                                                 |     int16_t var_60h;
                                                                 |     int16_t var_1ch_2;
                                                                 |     int32_t var_b8h;
                                                                 |     int32_t var_b4h;
                                                                 |     int32_t var_10h_4;
                                                                 |     int32_t var_8h_3;
                                                                 |     int32_t var_8h_2;
                                                                 |     int32_t var_8h_4;
                                                                 |     int16_t var_80h;
                                                                 |     int32_t var_9ch;
                                                                 |     int16_t var_98h;
                                                                 |     int16_t var_a0h;
                                                                 |     int32_t var_78h;
                                                                 |     int32_t var_58h;
                                                                 |     int32_t var_54h;
                                                                 |     int32_t var_38h_3;
                                                                 |     int32_t var_1ch_3;
                                                                 |     int16_t var_120h;
                                                                 |     int16_t var_1100h;
                                                                 |     int32_t var_0h_3;
                                                                 |     int16_t var_1120h;
                                                                 |     int16_t var_0h;
                                                                 |     int32_t var_8h_5;
                                                                 |     int32_t var_8h_6;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_38h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00029bb4 svcmi 0xf0e92d                                    |     __asm ("svcmi 0xf0e92d");
    0x00029bb8 sub sp, 0x24                                      |     
    0x00029bba ldr r5, [pc, 0x2c0]                               |     
    0x00029bbc ldr r4, [pc, 0x2c0]                               |     r4 = *(0x29e80);
    0x00029bbe add r5, pc                                        |     r5 = 0x53a40;
    0x00029bc0 ldr r7, [sp, 0x60]                                |     r7 = *(arg_60h);
    0x00029bc2 ldrd fp, r6, [sp, 0x4c]                           |     __asm ("ldrd fp, r6, [arg_4ch]");
    0x00029bc6 ldr r4, [r5, r4]                                  |     
    0x00029bc8 mov r5, r3                                        |     r5 = r3;
    0x00029bca ldr r3, [r0, 4]                                   |     r3 = *((r0 + 4));
    0x00029bcc ldr.w r8, [sp, 0x54]                              |     r8 = *(arg_54h);
    0x00029bd0 ldr r4, [r4]                                      |     r4 = *(0x53a40);
    0x00029bd2 str r4, [sp, 0x1c]                                |     var_1ch = r4;
    0x00029bd4 mov.w r4, 0                                       |     r4 = 0;
    0x00029bd8 ldr r4, [sp, 0x48]                                |     r4 = *(arg_48h);
    0x00029bda cmp r3, r7                                        |     
    0x00029bdc strd r4, r1, [sp, 0x10]                           |     __asm ("strd r4, r1, [var_14h]");
    0x00029be0 mov.w r4, 0                                       |     r4 = 0;
    0x00029be4 str r4, [sp, 0x18]                                |     var_18h = r4;
                                                                 |     if (r3 > r7) {
    0x00029be6 bgt.w 0x29e1a                                     |         goto label_37;
                                                                 |     }
    0x00029bea cmp r3, 0                                         |     
                                                                 |     if (r3 <= 0) {
    0x00029bec ble.w 0x29dd2                                     |         goto label_38;
                                                                 |     }
    0x00029bf0 mov ip, r2                                        |     
    0x00029bf2 ldr r2, [r0, 8]                                   |     r2 = *((r0 + 8));
    0x00029bf4 cmp r3, 1                                         |     
    0x00029bf6 ldr r7, [r2]                                      |     r7 = *(r2);
                                                                 |     if (r3 == 1) {
    0x00029bf8 beq.w 0x29dca                                     |         goto label_39;
                                                                 |     }
    0x00029bfc cmp r3, 2                                         |     
    0x00029bfe ldr r0, [r2, 4]                                   |     r0 = *((r2 + 4));
                                                                 |     if (r3 == 2) {
    0x00029c00 beq.w 0x29dc4                                     |         goto label_40;
                                                                 |     }
    0x00029c04 ldr r1, [sp, 0x5c]                                |     r1 = *(arg_5ch);
    0x00029c06 ldr.w sl, [r2, 8]                                 |     sl = *((r2 + 8));
    0x00029c0a cmp r3, r1                                        |     
                                                                 |     if (r3 > r1) {
    0x00029c0c bgt.w 0x29d6e                                     |         goto label_41;
                                                                 |     }
    0x00029c10 ldr r1, [sp, 0x58]                                |     r1 = *(arg_58h);
    0x00029c12 cmp r3, r1                                        |     
    0x00029c14 it le                                             |     
                                                                 |     if (r3 > r1) {
    0x00029c16 movle sb, r4                                      |         sb = r4;
                                                                 |     }
                                                                 |     if (r3 > r1) {
    0x00029c18 ble 0x29c20                                       |         
    0x00029c1a ldr r3, [sp, 0x58]                                |         r3 = *(arg_58h);
    0x00029c1c ldr.w sb, [r2, r3, lsl 2]                         |         offset_0 = r3 << 2;
                                                                 |         sb = *((r2 + offset_0));
                                                                 |     }
                                                                 | label_4:
    0x00029c20 cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x00029c22 beq.w 0x29dd2                                     |         goto label_38;
                                                                 |     }
    0x00029c26 ldrb r3, [r7]                                     |     r3 = *(r7);
    0x00029c28 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00029c2a beq.w 0x29dd2                                     |         goto label_38;
                                                                 |     }
                                                                 |     if (r0 == 0) {
    0x00029c2e cbz r0, 0x29c36                                   |         goto label_42;
                                                                 |     }
    0x00029c30 ldrb r3, [r0]                                     |     r3 = *(r0);
    0x00029c32 cmp r3, 0                                         |     
    0x00029c34 bne 0x29ce8                                       |     
                                                                 |     while (r0 == 0) {
                                                                 | label_42:
    0x00029c36 cmp.w sl, 0                                       |         
                                                                 |         if (sl != 0) {
    0x00029c3a beq 0x29c44                                       |             
    0x00029c3c ldrb.w r3, [sl]                                   |             r3 = *(sl);
    0x00029c40 cmp r3, 0                                         |             
                                                                 |             if (r3 != 0) {
    0x00029c42 bne 0x29d14                                       |                 goto label_43;
                                                                 |             }
                                                                 |         }
                                                                 |         if (r4 != 0) {
                                                                 | label_0:
    0x00029c44 cbz r4, 0x29c4c                                   |             
    0x00029c46 ldrb r3, [r4]                                     |             r3 = *(r4);
    0x00029c48 cmp r3, 0                                         |             
                                                                 |             if (r3 != 0) {
    0x00029c4a bne 0x29d2e                                       |                 goto label_44;
                                                                 |             }
                                                                 |         }
                                                                 | label_2:
    0x00029c4c cmp.w sb, 0                                       |         
                                                                 |         if (sb != 0) {
    0x00029c50 beq 0x29c72                                       |             
    0x00029c52 ldrb.w r3, [sb]                                   |             r3 = *(sb);
                                                                 |             if (r3 == 0) {
    0x00029c56 cbz r3, 0x29c72                                   |                 goto label_45;
                                                                 |             }
    0x00029c58 cmp r3, 0x2d                                      |             
                                                                 |             if (r3 != 0x2d) {
    0x00029c5a bne.w 0x29d7a                                     |                 goto label_46;
                                                                 |             }
    0x00029c5c strh r6, [r1, 4]                                  |             *((r1 + 4)) = r6;
    0x00029c5e ldrb.w r3, [sb, 1]                                |             r3 = *((sb + 1));
    0x00029c62 cmp r3, 0x31                                      |             
                                                                 |             if (r3 != 0x31) {
    0x00029c64 bne.w 0x29d7a                                     |                 goto label_46;
                                                                 |             }
    0x00029c68 ldrb.w r3, [sb, 2]                                |             r3 = *((sb + 2));
    0x00029c6c cmp r3, 0                                         |             
                                                                 |             if (r3 != 0) {
    0x00029c6e bne.w 0x29d7a                                     |                 goto label_46;
                                                                 |             }
                                                                 |         }
                                                                 | label_45:
    0x00029c72 mov.w r3, -1                                      |         r3 = -1;
    0x00029c76 str.w r3, [fp]                                    |         __asm ("str.w r3, [fp]");
                                                                 | label_5:
    0x00029c7a ldr r0, [pc, 0x208]                               |         
    0x00029c7c mov r3, r7                                        |         r3 = r7;
    0x00029c7e ldr r2, [r6]                                      |         r2 = *(r6);
    0x00029c80 movs r1, 0xb1                                     |         r1 = 0xb1;
    0x00029c82 add r0, pc                                        |         r0 = 0x53b0c;
    0x00029c84 bl 0x40ed8                                        |         zbx_strdup2 ();
    0x00029c88 str r0, [r6]                                      |         *(r6) = r0;
    0x00029c8a mov r4, r0                                        |         r4 = r0;
    0x00029c8c ldrb r3, [r0, 1]                                  |         r3 = *((r0 + 1));
                                                                 |         if (r3 != 0) {
    0x00029c8e cbz r3, 0x29caa                                   |             
    0x00029c90 blx 0xdf68                                        |             fcn_0000df68 ();
    0x00029c94 add r0, r4                                        |             r0 += r4;
    0x00029c96 ldrb r3, [r0, -0x2]                               |             r3 = *((r0 - 0x2));
    0x00029c9a cmp r3, 0x3a                                      |             
                                                                 |             if (r3 == 0x3a) {
    0x00029c9c beq 0x29caa                                       |                 goto label_47;
                                                                 |             }
    0x00029c9e ldr r1, [pc, 0x1e8]                               |             
    0x00029ca0 mov r0, r4                                        |             r0 = r4;
    0x00029ca2 add r1, pc                                        |             r1 = 0x53b30;
    0x00029ca4 bl 0x444f4                                        |             zbx_rtrim ();
    0x00029ca8 ldr r4, [r6]                                      |             r4 = *(r6);
                                                                 |         }
                                                                 | label_47:
    0x00029caa mov r0, r4                                        |         r0 = r4;
    0x00029cac mov r1, r8                                        |         r1 = r8;
    0x00029cae blx 0xe1c4                                        |         r0 = fcn_0000e1c4 ();
    0x00029cb2 mov r4, r0                                        |         r4 = r0;
    0x00029cb4 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00029cb6 bne.w 0x29e38                                     |             goto label_48;
                                                                 |         }
    0x00029cba ldr.w r3, [r8, 0x10]                              |         r3 = *((r8 + 0x10));
    0x00029cbe and r3, r3, 0xf000                                |         r3 &= 0xf000;
    0x00029cc2 cmp.w r3, 0x4000                                  |         
                                                                 |         if (r3 != 0x4000) {
    0x00029cc6 bne.w 0x29df0                                     |             goto label_49;
                                                                 |         }
                                                                 | label_3:
    0x00029cca ldr r2, [pc, 0x1c0]                               |         
    0x00029ccc ldr r3, [pc, 0x1b0]                               |         r3 = *(0x29e80);
    0x00029cce add r2, pc                                        |         r2 = 0x53b60;
    0x00029cd0 ldr r3, [r2, r3]                                  |         r3 = *(0x53b60);
    0x00029cd2 ldr r2, [r3]                                      |         r2 = *(0x53b60);
    0x00029cd4 ldr r3, [sp, 0x1c]                                |         r3 = var_1ch;
    0x00029cd6 eors r2, r3                                       |         r2 ^= r3;
    0x00029cd8 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00029cdc bne.w 0x29e76                                     |             goto label_50;
                                                                 |         }
    0x00029ce0 mov r0, r4                                        |         r0 = r4;
    0x00029ce2 add sp, 0x24                                      |         
    0x00029ce4 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
    0x00029ce8 mov r1, ip                                        |         r1 = ip;
    0x00029cea add r2, sp, 0x18                                  |         r2 += var_18h;
    0x00029cec bl 0x31a30                                        |         r0 = zbx_regexp_compile ();
    0x00029cf0 cmp r0, 0                                         |         
    0x00029cf2 beq 0x29c36                                       |         
                                                                 |     }
    0x00029cf4 ldr r4, [sp, 0x14]                                |     r4 = var_14h;
    0x00029cf6 ldr r1, [pc, 0x198]                               |     
    0x00029cf8 ldr r2, [sp, 0x18]                                |     r2 = var_18h;
    0x00029cfa ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x00029cfc add r1, pc                                        |     r1 = 0x53b92;
                                                                 | label_1:
    0x00029cfe orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x00029d02 movs r0, 0                                        |     r0 = 0;
    0x00029d04 str r3, [r4, 0x28]                                |     *((r4 + 0x28)) = r3;
    0x00029d06 bl 0x44820                                        |     zbx_dsprintf ()
    0x00029d0a str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x00029d0c ldr r0, [sp, 0x18]                                |     r0 = var_18h;
    0x00029d0e bl 0x3211c                                        |     zbx_regexp_err_msg_free ();
    0x00029d10 invalid                                           |     
                                                                 | label_43:
    0x00029d14 mov r1, r5                                        |     r1 = r5;
    0x00029d16 mov r0, sl                                        |     r0 = sl;
    0x00029d18 add r2, sp, 0x18                                  |     r2 += var_18h;
    0x00029d1a bl 0x31a30                                        |     r0 = zbx_regexp_compile ();
    0x00029d1e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00029d20 beq 0x29c44                                       |         goto label_0;
                                                                 |     }
    0x00029d22 ldr r4, [sp, 0x14]                                |     r4 = var_14h;
    0x00029d24 ldr r1, [pc, 0x16c]                               |     
    0x00029d26 ldr r2, [sp, 0x18]                                |     r2 = var_18h;
    0x00029d28 ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x00029d2a add r1, pc                                        |     r1 = 0x53bc2;
    0x00029d2c b 0x29cfe                                         |     goto label_1;
                                                                 | label_44:
    0x00029d2e ldr r1, [sp, 0x10]                                |     r1 = var_10h;
    0x00029d30 mov r0, r4                                        |     r0 = r4;
    0x00029d32 add r2, sp, 0x18                                  |     r2 += var_18h;
    0x00029d34 bl 0x31a30                                        |     r0 = zbx_regexp_compile ();
    0x00029d38 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00029d3a beq 0x29c4c                                       |         goto label_2;
                                                                 |     }
    0x00029d3c ldr r2, [sp, 0x14]                                |     r2 = var_14h;
    0x00029d3e ldr r3, [r2, 0x28]                                |     r3 = *((r2 + 0x28));
    0x00029d40 orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x00029d44 str r3, [r2, 0x28]                                |     *((r2 + 0x28)) = r3;
    0x00029d46 ldr r3, [sp, 0x5c]                                |     r3 = *(arg_5ch);
    0x00029d48 cmp r3, 5                                         |     
                                                                 |     if (r3 == 5) {
    0x00029d4a beq.w 0x29e6a                                     |         goto label_51;
                                                                 |     }
    0x00029d4e ldr r2, [pc, 0x148]                               |     
    0x00029d50 add r2, pc                                        |     r2 = 0x53bee;
                                                                 | label_7:
    0x00029d52 ldr r1, [pc, 0x148]                               |     
    0x00029d54 movs r0, 0                                        |     r0 = 0;
    0x00029d56 ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x00029d58 add r1, pc                                        |     r1 = 0x53bfa;
    0x00029d5a bl 0x44820                                        |     zbx_dsprintf ()
    0x00029d5e ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x00029d60 str r0, [r3, 0x20]                                |     *((r3 + 0x20)) = r0;
    0x00029d62 ldr r0, [sp, 0x18]                                |     r0 = var_18h;
    0x00029d64 bl 0x3211c                                        |     zbx_regexp_err_msg_free ();
                                                                 | label_6:
    0x00029d68 mov.w r4, -1                                      |     r4 = -1;
    0x00029d6c b 0x29cca                                         |     goto label_3;
                                                                 | label_41:
    0x00029d6e ldr r3, [sp, 0x58]                                |     r3 = *(arg_58h);
    0x00029d70 ldr.w r4, [r2, r1, lsl 2]                         |     offset_1 = r1 << 2;
                                                                 |     r4 = *((r2 + offset_1));
    0x00029d74 ldr.w sb, [r2, r3, lsl 2]                         |     offset_2 = r3 << 2;
                                                                 |     sb = *((r2 + offset_2));
    0x00029d78 b 0x29c20                                         |     goto label_4;
                                                                 | label_46:
    0x00029d7a vmov.i32 d16, 0                                   |     __asm ("vmov.i32 d16, 0");
    0x00029d7e mvn r4, 0x80000000                                |     r4 = ~0x80000000;
    0x00029d82 movs r5, 0                                        |     r5 = 0;
    0x00029d84 mov r2, fp                                        |     r2 = fp;
    0x00029d86 mov r0, sb                                        |     r0 = sb;
    0x00029d88 movs r3, 4                                        |     r3 = 4;
    0x00029d8a mov.w r1, -1                                      |     r1 = -1;
    0x00029d8e vstr d16, [sp]                                    |     __asm ("vstr d16, [sp]");
    0x00029d92 strd r4, r5, [sp, 8]                              |     __asm ("strd r4, r5, [var_8h_5]");
    0x00029d96 bl 0x419a8                                        |     r0 = is_uint_n_range ();
    0x00029d9a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00029d9c beq.w 0x29c7a                                     |         goto label_5;
                                                                 |     }
    0x00029da0 ldr r2, [sp, 0x14]                                |     r2 = var_14h;
    0x00029da2 ldr r3, [r2, 0x28]                                |     r3 = *((r2 + 0x28));
    0x00029da4 orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x00029da8 str r3, [r2, 0x28]                                |     *((r2 + 0x28)) = r3;
    0x00029daa ldr r3, [sp, 0x58]                                |     r3 = *(arg_58h);
    0x00029dac cmp r3, 4                                         |     
                                                                 |     if (r3 == 4) {
    0x00029dae beq 0x29e70                                       |         goto label_52;
                                                                 |     }
    0x00029db0 ldr r2, [pc, 0xec]                                |     
    0x00029db2 add r2, pc                                        |     r2 = 0x53c56;
                                                                 | label_8:
    0x00029db4 ldr r1, [pc, 0xec]                                |     
    0x00029db6 movs r0, 0                                        |     r0 = 0;
    0x00029db8 add r1, pc                                        |     r1 = 0x53c60;
    0x00029dba bl 0x44820                                        |     zbx_dsprintf ()
    0x00029dbe ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x00029dc0 str r0, [r3, 0x20]                                |     *((r3 + 0x20)) = r0;
    0x00029dc2 b 0x29d68                                         |     goto label_6;
                                                                 | label_40:
    0x00029dc4 mov sl, r4                                        |     sl = r4;
    0x00029dc6 mov sb, r4                                        |     sb = r4;
    0x00029dc8 b 0x29c20                                         |     goto label_4;
                                                                 | label_39:
    0x00029dca mov sl, r4                                        |     sl = r4;
    0x00029dcc mov r0, r4                                        |     r0 = r4;
    0x00029dce mov sb, r4                                        |     sb = r4;
    0x00029dd0 b 0x29c20                                         |     goto label_4;
                                                                 | label_38:
    0x00029dd2 ldr r4, [sp, 0x14]                                |     r4 = var_14h;
    0x00029dd4 movs r2, 0                                        |     r2 = 0;
    0x00029dd6 ldr r3, [pc, 0xd0]                                |     
    0x00029dd8 movs r1, 0x81                                     |     r1 = 0x81;
    0x00029dda ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x00029ddc add r3, pc                                        |     r3 = 0x53c8a;
    0x00029dde orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x00029de2 str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x00029de4 ldr r0, [pc, 0xc4]                                |     
    0x00029de6 add r0, pc                                        |     r0 = 0x53c96;
    0x00029de8 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x00029dec str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x00029dee b 0x29d68                                         |     goto label_6;
                                                                 | label_49:
    0x00029df0 ldr r5, [sp, 0x14]                                |     r5 = var_14h;
    0x00029df2 movs r1, 0xc6                                     |     r1 = 0xc6;
    0x00029df4 ldr r3, [pc, 0xb8]                                |     
    0x00029df6 ldr r0, [pc, 0xbc]                                |     
    0x00029df8 ldr r2, [r5, 0x28]                                |     r2 = *((r5 + 0x28));
    0x00029dfa add r3, pc                                        |     r3 = 0x53cae;
    0x00029dfc add r0, pc                                        |     r0 = 0x53cb6;
    0x00029dfe orr r2, r2, 0x20                                  |     r2 |= 0x20;
    0x00029e02 str r2, [r5, 0x28]                                |     *((r5 + 0x28)) = r2;
    0x00029e04 mov r2, r4                                        |     r2 = r4;
    0x00029e06 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x00029e0a str r0, [r5, 0x20]                                |     *((r5 + 0x20)) = r0;
    0x00029e0c ldr r0, [r6]                                      |     r0 = *(r6);
    0x00029e0e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00029e10 beq 0x29d68                                       |         goto label_6;
                                                                 |     }
    0x00029e12 blx 0xde30                                        |     fcn_0000de30 ();
    0x00029e16 str r4, [r6]                                      |     *(r6) = r4;
    0x00029e18 b 0x29d68                                         |     goto label_6;
                                                                 | label_37:
    0x00029e1a ldr r0, [r1, 0x28]                                |     r0 = *((r1 + 0x28));
    0x00029e1c mov r5, r1                                        |     r5 = r1;
    0x00029e1e ldr r3, [pc, 0x98]                                |     
    0x00029e20 mov r2, r4                                        |     r2 = r4;
    0x00029e22 movs r1, 0x75                                     |     r1 = 0x75;
    0x00029e24 orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x00029e28 str r0, [r5, 0x28]                                |     *((r5 + 0x28)) = r0;
    0x00029e2a add r3, pc                                        |     r3 = 0x53ce8;
    0x00029e2c ldr r0, [pc, 0x8c]                                |     
    0x00029e2e add r0, pc                                        |     r0 = 0x53cee;
    0x00029e30 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x00029e34 str r0, [r5, 0x20]                                |     *((r5 + 0x20)) = r0;
    0x00029e36 b 0x29d68                                         |     goto label_6;
                                                                 | label_48:
    0x00029e38 ldr r4, [sp, 0x14]                                |     r4 = var_14h;
    0x00029e3a ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x00029e3c orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x00029e40 str r3, [r4, 0x28]                                |     *((r4 + 0x28)) = r3;
    0x00029e42 blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x00029e46 ldr r0, [r0]                                      |     r0 = *(r0);
    0x00029e48 bl 0x30b74                                        |     zbx_strerror ();
    0x00029e4c ldr r1, [pc, 0x70]                                |     
    0x00029e4e mov r2, r0                                        |     r2 = r0;
    0x00029e50 movs r0, 0                                        |     r0 = 0;
    0x00029e52 add r1, pc                                        |     r1 = 0x53d16;
    0x00029e54 bl 0x44820                                        |     zbx_dsprintf ()
    0x00029e58 str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x00029e5a ldr r0, [r6]                                      |     r0 = *(r6);
    0x00029e5c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00029e5e beq 0x29d68                                       |         goto label_6;
                                                                 |     }
    0x00029e60 blx 0xde30                                        |     fcn_0000de30 ();
    0x00029e64 movs r3, 0                                        |     r3 = 0;
    0x00029e66 str r3, [r6]                                      |     *(r6) = r3;
    0x00029e68 b 0x29d68                                         |     goto label_6;
                                                                 | label_51:
    0x00029e6a ldr r2, [pc, 0x58]                                |     
    0x00029e6c add r2, pc                                        |     r2 = 0x53d36;
    0x00029e6e b 0x29d52                                         |     goto label_7;
                                                                 | label_52:
    0x00029e70 ldr r2, [pc, 0x54]                                |     
    0x00029e72 add r2, pc                                        |     r2 = 0x53d3e;
    0x00029e74 b 0x29db4                                         |     goto label_8;
                                                                 | label_50:
    0x00029e76 blx 0xe158                                        |     fcn_0000e158 ();
    0x00029e7a nop                                               |     
    0x00029e7c movs r0, 0x1a                                     |     r0 = 0x1a;
    0x00029e7e movs r3, r0                                       |     r3 = r0;
    0x00029e80 lsls r4, r2, 0xe                                  |     r4 = r2 << 0xe;
    0x00029e82 movs r0, r0                                       |     
    0x00029e84 str r4, [sp, 0x1e8]                               |     *(arg_1e8h) = r4;
    0x00029e86 movs r2, r0                                       |     r2 = r0;
    0x00029e88 str r4, [sp, 0x3e8]                               |     *(arg_3e8h) = r4;
    0x00029e8a movs r2, r0                                       |     r2 = r0;
    0x00029e8c subs r2, r1, 4                                    |     r2 = r1 - 4;
    0x00029e8e movs r3, r0                                       |     r3 = r0;
    0x00029e90 str r4, [sp, 0x20]                                |     var_20h = r4;
    0x00029e92 movs r2, r0                                       |     r2 = r0;
    0x00029e94 str r4, [sp, 0x38]                                |     var_38h = r4;
    0x00029e96 movs r2, r0                                       |     r2 = r0;
    0x00029e98 str r3, [sp, 0x260]                               |     *(arg_260h) = r3;
    0x00029e9a movs r2, r0                                       |     r2 = r0;
    0x00029e9c str r4, [sp, 0x50]                                |     *(arg_50h) = r4;
    0x00029e9e movs r2, r0                                       |     r2 = r0;
    0x00029ea0 ldr r2, [r7, r0]                                  |     r2 = *((r7 + r0));
    0x00029ea2 movs r2, r0                                       |     r2 = r0;
    0x00029ea4 ldr r4, [r7, r4]                                  |     r4 = *((r7 + r4));
    0x00029ea6 movs r2, r0                                       |     r2 = r0;
    0x00029ea8 ldr r4, [r2, r2]                                  |     r4 = *((r2 + r2));
    0x00029eaa movs r2, r0                                       |     r2 = r0;
    0x00029eac str r3, [sp, 0x58]                                |     *(arg_58h) = r3;
    0x00029eae movs r2, r0                                       |     r2 = r0;
    0x00029eb0 str r3, [sp, 0x298]                               |     *(arg_298h) = r3;
    0x00029eb2 movs r2, r0                                       |     r2 = r0;
    0x00029eb4 str r3, [sp]                                      |     *(sp) = r3;
    0x00029eb6 movs r2, r0                                       |     r2 = r0;
    0x00029eb8 ldr r6, [r5, r0]                                  |     r6 = *((r5 + r0));
    0x00029eba movs r2, r0                                       |     r2 = r0;
    0x00029ebc str r2, [sp, 0x338]                               |     *(arg_338h) = r2;
    0x00029ebe movs r2, r0                                       |     r2 = r0;
    0x00029ec0 ldrb r6, [r7, r1]                                 |     r6 = *((r7 + r1));
    0x00029ec2 movs r2, r0                                       |     r2 = r0;
    0x00029ec4 ldrsb r0, [r0, r6]                                |     r0 = *((r0 + r6));
    0x00029ec6 movs r2, r0                                       |     r2 = r0;
    0x00029ec8 str r2, [sp, 0x208]                               |     *(arg_208h) = r2;
    0x00029eca movs r2, r0                                       |     r2 = r0;
    0x00029ecc push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00029ed0 mov r4, r0                                        |     r4 = r0;
    0x00029ed2 ldr.w r0, [pc, 0x734]                             |     
    0x00029ed6 sub.w sp, sp, 0x1120                              |     
    0x00029eda sub sp, 4                                         |     
    0x00029edc mov.w r6, -1                                      |     r6 = -1;
    0x00029ee0 ldr.w r3, [pc, 0x728]                             |     r3 = *(0x2a60c);
    0x00029ee4 add.w r5, sp, 0x1100                              |     r5 += var_1100h;
    0x00029ee8 add r0, pc                                        |     r0 = 0x544f6;
    0x00029eea adds r5, 0x1c                                     |     r5 += 0x1c;
    0x00029eec ldr.w sl, [pc, 0x720]                             |     sl = *(0x0002a610);
    0x00029ef0 add.w sb, sp, 0x80                                |     sb += var_80h;
    0x00029ef4 ldr r3, [r0, r3]                                  |     
    0x00029ef6 mvn r7, 0x80000000                                |     r7 = ~0x80000000;
    0x00029efa vmov.i32 d16, 0                                   |     __asm ("vmov.i32 d16, 0");
    0x00029efe add sl, pc                                        |     sl += pc;
    0x00029f00 ldr r3, [r3]                                      |     r3 = *(0x544f6);
    0x00029f02 str r3, [r5]                                      |     *(r5) = r3;
    0x00029f04 mov.w r3, 0                                       |     r3 = 0;
    0x00029f08 ldr r3, [r4, 4]                                   |     r3 = *((r4 + 4));
    0x00029f0a add r5, sp, 0x120                                 |     r5 += var_120h;
    0x00029f0c str r2, [sp, 0x40]                                |     var_40h = r2;
    0x00029f0e movs r2, 0                                        |     r2 = 0;
    0x00029f10 str r1, [sp, 0x30]                                |     var_30h = r1;
    0x00029f12 cmp r3, 3                                         |     
    0x00029f14 str r2, [r5, -0xc8]                               |     var_c8h = r2;
    0x00029f18 strd r2, r2, [r5, -0xc0]                          |     __asm ("strd r2, r2, [var_60h]");
    0x00029f1c str r2, [r5, -0xb8]                               |     var_b8h = r2;
    0x00029f20 vstr d16, [sb, -0x10]                             |     __asm ("vstr d16, [sb, -0x10]");
    0x00029f24 strd r6, r7, [sb, -0x8]                           |     __asm ("strd r6, r7, [sb, -0x8]");
                                                                 |     if (r3 > 3) {
    0x00029f28 bgt.w 0x2a2f2                                     |         goto label_53;
                                                                 |     }
                                                                 | label_23:
    0x00029f2c movs r3, 0x7f                                     |     r3 = 0x7f;
    0x00029f2e str r3, [sp, 0x2c]                                |     var_2ch = r3;
                                                                 | label_20:
    0x00029f30 movs r0, 0                                        |     r0 = 0;
    0x00029f32 blx 0xe104                                        |     fcn_0000e104 ();
    0x00029f36 ldr r3, [r4, 4]                                   |     r3 = *((r4 + 4));
    0x00029f38 mov r6, r0                                        |     r6 = r0;
    0x00029f3a cmp r3, 8                                         |     
                                                                 |     if (r3 > 8) {
    0x00029f3c ble 0x29f5a                                       |         
    0x00029f3e ldr r2, [r4, 8]                                   |         r2 = *((r4 + 8));
    0x00029f40 cmp r3, 9                                         |         
    0x00029f42 ldr.w fp, [r2, 0x20]                              |         fp = *((r2 + 0x20));
                                                                 |         if (r3 != 9) {
    0x00029f46 bne.w 0x2a40a                                     |             goto label_54;
                                                                 |         }
    0x00029f4a cmp.w fp, 0                                       |         
                                                                 |         if (fp == 0) {
    0x00029f4e beq 0x29f5a                                       |             goto label_55;
                                                                 |         }
    0x00029f50 ldrb.w r3, [fp]                                   |         r3 = *(fp);
    0x00029f54 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x00029f56 bne.w 0x2a450                                     |             goto label_56;
                                                                 |         }
                                                                 |     }
                                                                 | label_55:
    0x00029f5a add.w r8, sp, 0x98                                |     r8 += var_98h;
    0x00029f5e mvn r3, 0x80000000                                |     r3 = ~0x80000000;
    0x00029f62 str r3, [sp, 0x44]                                |     var_44h = r3;
                                                                 | label_28:
    0x00029f64 movs r3, 0                                        |     r3 = 0;
    0x00029f66 str r3, [sp, 0x3c]                                |     var_3ch = r3;
                                                                 | label_29:
    0x00029f68 add r2, sp, 0x60                                  |     r2 += var_60h;
    0x00029f6a movs r3, 0xb                                      |     r3 = 0xb;
    0x00029f6c str r3, [sp, 0x18]                                |     var_18h_2 = r3;
    0x00029f6e sub.w r3, r2, 8                                   |     r3 -= var_c8h;
    0x00029f72 str r3, [sp, 8]                                   |     var_8h = r3;
    0x00029f74 subs r3, r2, 4                                    |     r3 -= var_c0h;
    0x00029f76 mov r0, r4                                        |     r0 = r4;
    0x00029f78 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00029f7a movs r4, 0xa                                      |     r4 = 0xa;
    0x00029f7c movs r3, 5                                        |     r3 = 5;
    0x00029f7e strd r3, r4, [sp, 0x10]                           |     __asm ("strd r3, r4, [var_10h_2]");
    0x00029f82 sub.w r3, sb, 0x18                                |     r3 -= var_b8h;
    0x00029f86 str r3, [sp]                                      |     *(sp) = r3;
    0x00029f88 sub.w r3, sb, 0x1c                                |     r3 -= var_1ch_2;
    0x00029f8c ldr r1, [sp, 0x30]                                |     r1 = var_30h;
    0x00029f8e str.w r8, [sp, 0xc]                               |     __asm ("str.w r8, [var_ch]");
    0x00029f92 bl 0x29bb4                                        |     r0 = fcn_00029bb4 (r0, r1, r2, r3, r4, r5, r6);
    0x00029f96 mov fp, r0                                        |     
    0x00029f98 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00029f9a bne.w 0x2a384                                     |         goto label_57;
                                                                 |     }
    0x00029f9e sub.w r3, r5, 0x1c                                |     r3 -= var_1ch_3;
    0x00029fa2 mov.w r1, 0x1000                                  |     r1 = 0x1000;
    0x00029fa6 mov r0, r3                                        |     r0 = r3;
    0x00029fa8 str r3, [sp, 0x4c]                                |     var_4ch = r3;
    0x00029faa bl 0x3ab5c                                        |     zbx_json_initarray ();
    0x00029fae mov r0, sb                                        |     r0 = sb;
    0x00029fb0 bl 0x32e10                                        |     zbx_vector_ptr_create ();
    0x00029fb4 ldr r4, [r5, -0xc8]                               |     r4 = var_c8h;
    0x00029fb8 mov r0, r4                                        |     r0 = r4;
    0x00029fba blx 0xdf68                                        |     fcn_0000df68 ();
    0x00029fbe ldr r3, [r5, -0xc4]                               |     r3 = var_c0h;
    0x00029fc0 subs r4, 0xc4                                     |     r4 -= 0xc4;
    0x00029fc2 str r0, [sp, 0x48]                                |     var_48h = r0;
    0x00029fc4 adds r3, 1                                        |     r3++;
                                                                 |     if (r3 < 1) {
    0x00029fc6 blt.w 0x2a4ac                                     |         goto label_58;
                                                                 |     }
    0x00029fca ldr.w r0, [pc, 0x648]                             |     
    0x00029fce movs r3, 8                                        |     r3 = 8;
    0x00029fd0 mov r2, fp                                        |     r2 = fp;
    0x00029fd2 movs r1, 0x4a                                     |     r1 = 0x4a;
    0x00029fd4 add r0, pc                                        |     r0 = 0x545ee;
    0x00029fd6 bl 0x40dd8                                        |     r0 = zbx_malloc2 ();
    0x00029fda mov r1, r0                                        |     r1 = r0;
    0x00029fdc strd fp, r4, [r0]                                 |     __asm ("strd fp, r4, [r0]");
    0x00029fe0 mov r0, sb                                        |     r0 = sb;
    0x00029fe2 bl 0x32ea0                                        |     zbx_vector_ptr_append ();
    0x00029fe6 ldr r3, [r5, -0x9c]                               |     r3 = var_9ch;
    0x00029fea cmp r3, 0                                         |     
    0x00029fec it le                                             |     
                                                                 |     if (r3 > 0) {
    0x00029fee movle lr, fp                                      |         lr = fp;
                                                                 |     }
                                                                 |     if (r3 <= 0) {
    0x00029ff0 ble.w 0x2a134                                     |         goto label_59;
                                                                 |     }
    0x00029ff4 ldr.w r2, [pc, 0x620]                             |     
    0x00029ff8 strd fp, fp, [sp, 0x50]                           |     __asm ("strd fp, fp, [var_0h_2x50]");
    0x00029ffc add r2, pc                                        |     
    0x00029ffe adds r2, 0x2c                                     |     r2 += 0x2c;
    0x0002a000 str r2, [sp, 0x34]                                |     var_34h = r2;
    0x0002a002 ldr.w r2, [pc, 0x618]                             |     r2 = *(0x0002a61c);
    0x0002a006 add r2, pc                                        |     
    0x0002a008 str r2, [sp, 0x20]                                |     var_20h_2 = r2;
    0x0002a00a ldr.w r2, [pc, 0x614]                             |     r2 = *(0x0002a620);
    0x0002a00e add r2, pc                                        |     
    0x0002a010 str r2, [sp, 0x24]                                |     var_24h = r2;
    0x0002a012 ldr.w r2, [pc, 0x610]                             |     r2 = *(0x0002a624);
    0x0002a016 add r2, pc                                        |     r2 = 0xd264e;
    0x0002a018 str r2, [sp, 0x38]                                |     var_38h_2 = r2;
                                                                 | label_11:
    0x0002a01a ldr r2, [r5, -0xa0]                               |     r2 = var_80h;
    0x0002a01e subs r3, 1                                        |     r3--;
    0x0002a020 str r3, [r5, -0x9c]                               |     var_9ch = r3;
    0x0002a024 ldr.w r7, [r2, r3, lsl 2]                         |     offset_3 = r3 << 2;
                                                                 |     r7 = *((r2 + offset_3));
    0x0002a028 ldr r0, [r7, 4]                                   |     r0 = *((r7 + 4));
    0x0002a02a blx 0xdbdc                                        |     r0 = fcn_0000dbdc ();
    0x0002a02e mov r6, r0                                        |     r6 = r0;
    0x0002a030 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002a032 beq.w 0x2a5a6                                     |         goto label_60;
                                                                 |     }
                                                                 |     do {
                                                                 | label_9:
    0x0002a036 mov r0, r6                                        |         r0 = r6;
    0x0002a038 blx 0xe28c                                        |         r0 = fcn_0000e28c ();
    0x0002a03c cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0002a03e beq 0x2a112                                       |             goto label_61;
                                                                 |         }
                                                                 | label_10:
    0x0002a040 ldrb r3, [r0, 0x13]                               |         r3 = *((r0 + 0x13));
    0x0002a042 add.w r4, r0, 0x13                                |         r4 = r0 + 0x13;
    0x0002a046 cmp r3, 0x2e                                      |         
                                                                 |         if (r3 != 0x2e) {
    0x0002a048 bne 0x2a050                                       |             goto label_62;
                                                                 |         }
    0x0002a04a ldrb r3, [r4, 1]                                  |         r3 = *((r4 + 1));
    0x0002a04c cmp r3, 0                                         |         
    0x0002a04e beq 0x2a036                                       |         
                                                                 |     } while (r3 == 0);
                                                                 | label_62:
    0x0002a050 ldrb r3, [r0, 0x13]                               |     r3 = *((r0 + 0x13));
    0x0002a052 cmp r3, 0x2e                                      |     
                                                                 |     if (r3 != 0x2e) {
    0x0002a054 bne 0x2a062                                       |         goto label_63;
                                                                 |     }
    0x0002a056 ldrb r3, [r4, 1]                                  |     r3 = *((r4 + 1));
    0x0002a058 cmp r3, 0x2e                                      |     
                                                                 |     if (r3 != 0x2e) {
    0x0002a05a bne 0x2a062                                       |         goto label_63;
                                                                 |     }
    0x0002a05c ldrb r3, [r4, 2]                                  |     r3 = *((r4 + 2));
    0x0002a05e cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0002a060 beq 0x2a036                                       |         goto label_9;
                                                                 |     }
                                                                 | label_63:
    0x0002a062 ldr r2, [r7, 4]                                   |     r2 = *((r7 + 4));
    0x0002a064 ldrb r3, [r2]                                     |     r3 = *(r2);
    0x0002a066 cmp r3, 0x2f                                      |     
    0x0002a068 mov r3, r4                                        |     r3 = r4;
                                                                 |     if (r3 != 0x2f) {
    0x0002a06a bne.w 0x2a1d6                                     |         goto label_64;
                                                                 |     }
    0x0002a06e ldrb r0, [r2, 1]                                  |     r0 = *((r2 + 1));
    0x0002a070 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0002a072 bne.w 0x2a1d6                                     |         goto label_64;
                                                                 |     }
    0x0002a076 ldr r1, [sp, 0x24]                                |     r1 = var_24h;
    0x0002a078 bl 0x44820                                        |     r0 = zbx_dsprintf ()
    0x0002a07c mov fp, r0                                        |     
                                                                 | label_12:
    0x0002a07e mov r1, r8                                        |     r1 = r8;
    0x0002a080 mov r0, fp                                        |     r0 = fp;
    0x0002a082 blx 0xe1c4                                        |     r0 = fcn_0000e1c4 ();
    0x0002a086 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0002a088 bne.w 0x2a1a8                                     |         goto label_65;
                                                                 |     }
    0x0002a08c ldr r1, [r5, -0xb8]                               |     r1 = var_b8h;
                                                                 |     if (r1 != 0) {
    0x0002a090 cbz r1, 0x2a0a2                                   |         
    0x0002a092 ldr r3, [r5, -0x78]                               |         r3 = var_78h;
    0x0002a096 and r3, r3, 0xf000                                |         r3 &= 0xf000;
    0x0002a09a cmp.w r3, 0x4000                                  |         
                                                                 |         if (r3 == 0x4000) {
    0x0002a09e beq.w 0x2a272                                     |             goto label_66;
                                                                 |         }
                                                                 |     }
                                                                 | label_16:
    0x0002a0a2 ldrd r1, r3, [r5, -0xc0]                          |     __asm ("ldrd r1, r3, [var_60h]");
    0x0002a0a6 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x0002a0a8 beq.w 0x2a1e2                                     |         goto label_67;
                                                                 |     }
    0x0002a0ac mov r0, r4                                        |     r0 = r4;
    0x0002a0ae str r3, [sp, 0x28]                                |     var_28h = r3;
    0x0002a0b0 bl 0x31a70                                        |     zbx_regexp_match_precompiled ();
    0x0002a0b4 ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x0002a0b6 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002a0b8 beq.w 0x2a1e2                                     |         goto label_67;
                                                                 |     }
                                                                 | label_13:
    0x0002a0bc ldr r3, [r5, -0x78]                               |     r3 = var_78h;
    0x0002a0c0 and r4, r3, 0xf000                                |     r4 = r3 & 0xf000;
                                                                 | label_15:
    0x0002a0c4 cmp.w r4, 0x4000                                  |     
                                                                 |     if (r4 != 0x4000) {
    0x0002a0c8 bne.w 0x2a1ce                                     |         goto label_14;
                                                                 |     }
                                                                 | label_18:
    0x0002a0cc ldr r2, [r5, -0xc4]                               |     r2 = var_c0h;
    0x0002a0d0 ldr r4, [r7]                                      |     r4 = *(r7);
    0x0002a0d2 cmp r4, r2                                        |     
    0x0002a0d4 ite ge                                            |     
                                                                 |     if (r4 < r2) {
    0x0002a0d6 movge r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (r4 >= r2) {
    0x0002a0d8 movlt r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x0002a0da cmp.w r2, -1                                      |     
    0x0002a0de it eq                                             |     
                                                                 |     if (r2 != -1) {
    0x0002a0e0 orreq r3, r3, 1                                   |         r3 |= 1;
                                                                 |     }
    0x0002a0e4 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0002a0e6 beq 0x2a1ce                                       |         goto label_14;
                                                                 |     }
    0x0002a0e8 ldr.w r0, [pc, 0x53c]                             |     
    0x0002a0ec movs r3, 8                                        |     r3 = 8;
    0x0002a0ee movs r2, 0                                        |     r2 = 0;
    0x0002a0f0 movs r1, 0x4a                                     |     r1 = 0x4a;
    0x0002a0f2 adds r4, 1                                        |     r4++;
    0x0002a0f4 add r0, pc                                        |     r0 = 0x54720;
    0x0002a0f6 bl 0x40dd8                                        |     r0 = zbx_malloc2 ();
    0x0002a0fa mov r1, r0                                        |     r1 = r0;
    0x0002a0fc str.w fp, [r0, 4]                                 |     __asm ("str.w fp, [r0, 4]");
    0x0002a100 str r4, [r0]                                      |     *(r0) = r4;
    0x0002a102 mov r0, sb                                        |     r0 = sb;
    0x0002a104 bl 0x32ea0                                        |     zbx_vector_ptr_append ();
    0x0002a108 mov r0, r6                                        |     r0 = r6;
    0x0002a10a blx 0xe28c                                        |     fcn_0000e28c ();
    0x0002a10c invalid                                           |     
                                                                 |     if (r4 != 1) {
    0x0002a110 bne 0x2a040                                       |         goto label_10;
                                                                 |     }
                                                                 | label_61:
    0x0002a112 mov r0, r6                                        |     r0 = r6;
    0x0002a114 blx 0xe0d0                                        |     fcn_0000e0d0 ();
                                                                 | label_35:
    0x0002a118 ldr r0, [r7, 4]                                   |     r0 = *((r7 + 4));
                                                                 |     if (r0 != 0) {
    0x0002a11a cbz r0, 0x2a120                                   |         
    0x0002a11c blx 0xde30                                        |         fcn_0000de30 ();
                                                                 |     }
    0x0002a120 mov r0, r7                                        |     r0 = r7;
    0x0002a122 blx 0xde30                                        |     fcn_0000de30 ();
    0x0002a126 ldr r3, [r5, -0x9c]                               |     r3 = var_9ch;
    0x0002a12a cmp r3, 0                                         |     
                                                                 |     if (r3 > 0) {
    0x0002a12c bgt.w 0x2a01a                                     |         goto label_11;
                                                                 |     }
    0x0002a130 ldrd lr, fp, [sp, 0x50]                           |     __asm ("ldrd lr, fp, [var_50h]");
                                                                 | label_59:
    0x0002a134 ldr r2, [sp, 0x40]                                |     r2 = var_40h;
    0x0002a136 ldr r3, [sp, 0x30]                                |     r3 = var_30h;
    0x0002a138 ldr r3, [r3, 0x28]                                |     r3 = *((r3 + 0x28));
    0x0002a13a cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0002a13c beq.w 0x2a48a                                     |         goto label_68;
                                                                 |     }
    0x0002a140 ldr r2, [sp, 0x30]                                |     r2 = var_30h;
    0x0002a142 orr r3, r3, 1                                     |     r3 |= 1;
    0x0002a146 str r3, [r2, 0x28]                                |     *((r2 + 0x28)) = r3;
    0x0002a148 asr.w r3, lr, 0x1f                                |     r3 = lr >> 0x1f;
    0x0002a14c str.w lr, [r2, 8]                                 |     __asm ("str.w lr, [r2, 8]");
    0x0002a150 str r3, [r2, 0xc]                                 |     *((r2 + 0xc)) = r3;
                                                                 | label_33:
    0x0002a152 mov r0, sb                                        |     r0 = sb;
    0x0002a154 bl 0x29ad0                                        |     fcn_00029ad0 (r0);
    0x0002a158 ldr r0, [sp, 0x4c]                                |     r0 = var_4ch;
    0x0002a15a bl 0x3ac14                                        |     zbx_json_free ();
    0x0002a15e ldrd r0, r6, [r5, -0xc0]                          |     __asm ("ldrd r0, r6, [var_60h]");
    0x0002a160 lsls r0, r6, 0x18                                 |     r0 = r6 << 0x18;
    0x0002a162 ldr r4, [r5, -0xb8]                               |     r4 = var_b8h;
    0x0002a166 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0002a168 bne.w 0x2a396                                     |         goto label_69;
                                                                 |     }
                                                                 |     if (r6 != 0) {
                                                                 | label_22:
    0x0002a16c cbz r6, 0x2a174                                   |         
    0x0002a16e mov r0, r6                                        |         r0 = r6;
    0x0002a170 bl 0x31a44                                        |         zbx_regexp_free ();
                                                                 |     }
                                                                 |     if (r4 != 0) {
    0x0002a174 cbz r4, 0x2a17c                                   |         
    0x0002a176 mov r0, r4                                        |         r0 = r4;
    0x0002a178 bl 0x31a44                                        |         zbx_regexp_free ();
                                                                 |     }
                                                                 | label_21:
    0x0002a17c ldr.w r2, [pc, 0x4ac]                             |     r2 = *(0x0002a62c);
    0x0002a180 add.w r1, sp, 0x1100                              |     r1 += var_1100h;
    0x0002a184 ldr.w r3, [pc, 0x484]                             |     r3 = *(0x2a60c);
    0x0002a188 adds r1, 0x1c                                     |     r1 += 0x1c;
    0x0002a18a add r2, pc                                        |     r2 += pc;
    0x0002a18c ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x0002a18e ldr r2, [r3]                                      |     r2 = *(0x2a60c);
    0x0002a190 ldr r3, [r1]                                      |     r3 = *(r1);
    0x0002a192 eors r2, r3                                       |     r2 ^= r3;
    0x0002a194 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x0002a198 bne.w 0x2a5a2                                     |         goto label_70;
                                                                 |     }
    0x0002a19c mov r0, fp                                        |     r0 = fp;
    0x0002a19e add.w sp, sp, 0x1120                              |     
    0x0002a1a2 add sp, 4                                         |     
    0x0002a1a4 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_65:
    0x0002a1a8 ldr.w r3, [pc, 0x484]                             |     
    0x0002a1ac ldr.w r3, [sl, r3]                                |     r3 = *((sl + r3));
    0x0002a1b0 ldr r3, [r3]                                      |     r3 = *(0x2a630);
    0x0002a1b2 cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x0002a1b4 ble 0x2a1ce                                       |         
    0x0002a1b6 blx 0xe3d4                                        |         r0 = fcn_0000e3d4 ();
    0x0002a1ba ldr r0, [r0]                                      |         r0 = *(r0);
    0x0002a1bc bl 0x30b74                                        |         zbx_strerror ();
    0x0002a1c0 ldrd r2, r1, [sp, 0x34]                           |         __asm ("ldrd r2, r1, [var_34h]");
    0x0002a1c4 mov r3, fp                                        |         r3 = fp;
    0x0002a1c6 str r0, [sp]                                      |         *(sp) = r0;
    0x0002a1c8 movs r0, 4                                        |         r0 = 4;
    0x0002a1ca bl 0x30d1c                                        |         zbx_zabbix_log ();
                                                                 |     }
                                                                 | label_14:
    0x0002a1ce mov r0, fp                                        |     r0 = fp;
    0x0002a1d0 blx 0xde30                                        |     fcn_0000de30 ();
    0x0002a1d4 b 0x2a036                                         |     goto label_9;
                                                                 | label_64:
    0x0002a1d6 ldr r1, [sp, 0x20]                                |     r1 = var_20h_2;
    0x0002a1d8 movs r0, 0                                        |     r0 = 0;
    0x0002a1da bl 0x44820                                        |     r0 = zbx_dsprintf ()
    0x0002a1de mov fp, r0                                        |     
    0x0002a1e0 b 0x2a07e                                         |     goto label_12;
                                                                 |     if (r3 == 0) {
                                                                 | label_67:
    0x0002a1e2 cbz r3, 0x2a1f2                                   |         goto label_71;
                                                                 |     }
    0x0002a1e4 mov r1, r3                                        |     r1 = r3;
    0x0002a1e6 mov r0, r4                                        |     r0 = r4;
    0x0002a1e8 bl 0x31a70                                        |     r0 = zbx_regexp_match_precompiled ();
    0x0002a1ec cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002a1ee beq.w 0x2a0bc                                     |         goto label_13;
                                                                 |     }
                                                                 | label_71:
    0x0002a1f2 ldr r3, [r5, -0x78]                               |     r3 = var_78h;
    0x0002a1f6 and r4, r3, 0xf000                                |     r4 = r3 & 0xf000;
    0x0002a1fa cmp.w r4, 0x8000                                  |     
                                                                 |     if (r4 == fcn.00000004) {
    0x0002a1fe beq 0x2a28a                                       |         goto label_72;
                                                                 |     }
    0x0002a200 cmp.w r4, 0x4000                                  |     
                                                                 |     if (r4 == 0x4000) {
    0x0002a204 beq 0x2a2a6                                       |         goto label_73;
                                                                 |     }
    0x0002a206 cmp.w r4, 0xa000                                  |     
                                                                 |     if (r4 == 0xa000) {
    0x0002a20a beq 0x2a298                                       |         goto label_74;
                                                                 |     }
    0x0002a20c cmp.w r4, 0xc000                                  |     
                                                                 |     if (r4 == 0xc000) {
    0x0002a210 beq.w 0x2a3c2                                     |         goto label_75;
                                                                 |     }
    0x0002a214 cmp.w r4, 0x6000                                  |     
                                                                 |     if (r4 != 0x6000) {
    0x0002a218 bne.w 0x2a504                                     |         goto label_76;
                                                                 |     }
    0x0002a21c ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
    0x0002a21e lsls r1, r3, 0x1b                                 |     r1 = r3 << 0x1b;
                                                                 |     if (r1 >= r3) {
    0x0002a220 bpl 0x2a1ce                                       |         goto label_14;
                                                                 |     }
                                                                 | label_17:
    0x0002a222 ldr r1, [r5, -0x58]                               |     r1 = var_58h;
    0x0002a226 ldr r0, [sb, -0x10]                               |     r0 = var_10h_4;
    0x0002a22a ldr r2, [r5, -0x54]                               |     r2 = var_54h;
    0x0002a22e ldr r3, [sb, -0xc]                                |     r3 = var_8h_3;
    0x0002a232 cmp r1, r0                                        |     
    0x0002a234 sbcs.w r3, r2, r3                                 |     __asm ("sbcs.w r3, r2, r3");
                                                                 |     if (r1 <= r0) {
    0x0002a238 blo 0x2a1ce                                       |         goto label_14;
                                                                 |     }
    0x0002a23a ldrd r0, r3, [sb, -0x8]                           |     __asm ("ldrd r0, r3, [sb, -0x8]");
    0x0002a23e cmp r0, r1                                        |     
    0x0002a240 sbcs r3, r2                                       |     __asm ("sbcs r3, r2");
                                                                 |     if (r0 <= r1) {
    0x0002a242 blo.w 0x2a0c4                                     |         goto label_15;
                                                                 |     }
    0x0002a246 ldr r2, [sp, 0x3c]                                |     r2 = var_3ch;
    0x0002a248 ldr r3, [r5, -0x38]                               |     r3 = var_38h_3;
    0x0002a24c ldr r1, [sp, 0x44]                                |     r1 = var_44h;
    0x0002a24e cmp r3, r2                                        |     
    0x0002a250 ite gt                                            |     
                                                                 |     if (r3 <= r2) {
    0x0002a252 movgt r2, 1                                       |         r2 = 1;
                                                                 |     }
                                                                 |     if (r3 > r2) {
    0x0002a254 movle r2, 0                                       |         r2 = 0;
                                                                 |     }
    0x0002a256 cmp r3, r1                                        |     
    0x0002a258 it gt                                             |     
                                                                 |     if (r3 <= r1) {
    0x0002a25a movgt r2, 0                                       |         r2 = 0;
                                                                 |     }
    0x0002a25c cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0002a25e beq.w 0x2a0c4                                     |         goto label_15;
                                                                 |     }
                                                                 | label_19:
    0x0002a262 ldr r3, [sp, 0x40]                                |     r3 = var_40h;
    0x0002a264 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0002a266 beq.w 0x2a4b8                                     |         goto label_77;
                                                                 |     }
    0x0002a26a ldr r3, [sp, 0x50]                                |     r3 = var_50h;
    0x0002a26c adds r3, 1                                        |     r3++;
    0x0002a26e str r3, [sp, 0x50]                                |     var_50h = r3;
    0x0002a270 b 0x2a0c4                                         |     goto label_15;
                                                                 | label_66:
    0x0002a272 ldr r3, [sp, 0x48]                                |     r3 = var_48h;
    0x0002a274 adds r0, r3, 1                                    |     r0 = r3 + 1;
    0x0002a276 add r0, fp                                        |     r0 += fp;
    0x0002a278 bl 0x31a70                                        |     r0 = zbx_regexp_match_precompiled ();
    0x0002a27c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0002a27e bne.w 0x2a0a2                                     |         goto label_16;
                                                                 |     }
    0x0002a282 mov r0, fp                                        |     r0 = fp;
    0x0002a284 blx 0xde30                                        |     fcn_0000de30 ();
    0x0002a288 b 0x2a036                                         |     goto label_9;
                                                                 | label_72:
    0x0002a28a ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
    0x0002a28c lsls r1, r3, 0x1f                                 |     r1 = r3 << 0x1f;
                                                                 |     if (r1 < r3) {
    0x0002a28e bmi 0x2a222                                       |         goto label_17;
                                                                 |     }
    0x0002a290 mov r0, fp                                        |     r0 = fp;
    0x0002a292 blx 0xde30                                        |     fcn_0000de30 ();
    0x0002a296 b 0x2a036                                         |     goto label_9;
                                                                 | label_74:
    0x0002a298 ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
    0x0002a29a lsls r3, r3, 0x1d                                 |     r3 <<= 0x1d;
                                                                 |     if (r3 < r3) {
    0x0002a29c bmi 0x2a222                                       |         goto label_17;
                                                                 |     }
    0x0002a29e mov r0, fp                                        |     r0 = fp;
    0x0002a2a0 blx 0xde30                                        |     fcn_0000de30 ();
    0x0002a2a4 b 0x2a036                                         |     goto label_9;
                                                                 | label_73:
    0x0002a2a6 ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
    0x0002a2a8 lsls r2, r3, 0x1e                                 |     r2 = r3 << 0x1e;
                                                                 |     if (r2 >= r3) {
    0x0002a2aa bpl.w 0x2a0cc                                     |         goto label_18;
                                                                 |     }
    0x0002a2ae ldr r0, [r5, -0x58]                               |     r0 = var_58h;
    0x0002a2b2 ldr r1, [sb, -0x10]                               |     r1 = var_10h_4;
    0x0002a2b6 ldr r2, [r5, -0x54]                               |     r2 = var_54h;
    0x0002a2ba ldr r3, [sb, -0xc]                                |     r3 = var_8h_3;
    0x0002a2be cmp r0, r1                                        |     
    0x0002a2c0 sbcs.w r3, r2, r3                                 |     __asm ("sbcs.w r3, r2, r3");
                                                                 |     if (r0 <= r1) {
    0x0002a2c4 blo.w 0x2a0cc                                     |         goto label_18;
                                                                 |     }
    0x0002a2c8 ldrd r1, r3, [sb, -0x8]                           |     __asm ("ldrd r1, r3, [sb, -0x8]");
    0x0002a2cc cmp r1, r0                                        |     
    0x0002a2ce sbcs r3, r2                                       |     __asm ("sbcs r3, r2");
                                                                 |     if (r1 <= r0) {
    0x0002a2d0 blo.w 0x2a0cc                                     |         goto label_18;
                                                                 |     }
    0x0002a2d4 ldr r2, [sp, 0x3c]                                |     r2 = var_3ch;
    0x0002a2d6 ldr r3, [r5, -0x38]                               |     r3 = var_38h_3;
    0x0002a2da ldr r1, [sp, 0x44]                                |     r1 = var_44h;
    0x0002a2dc cmp r3, r2                                        |     
    0x0002a2de ite gt                                            |     
                                                                 |     if (r3 <= r2) {
    0x0002a2e0 movgt r2, 1                                       |         r2 = 1;
                                                                 |     }
                                                                 |     if (r3 > r2) {
    0x0002a2e2 movle r2, 0                                       |         r2 = 0;
                                                                 |     }
    0x0002a2e4 cmp r3, r1                                        |     
    0x0002a2e6 it gt                                             |     
                                                                 |     if (r3 <= r1) {
    0x0002a2e8 movgt r2, 0                                       |         r2 = 0;
                                                                 |     }
    0x0002a2ea cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0002a2ec beq.w 0x2a0cc                                     |         goto label_18;
                                                                 |     }
    0x0002a2f0 b 0x2a262                                         |     goto label_19;
                                                                 | label_53:
    0x0002a2f2 ldr r7, [r4, 8]                                   |     r7 = *((r4 + 8));
    0x0002a2f4 mov r2, r3                                        |     r2 = r3;
    0x0002a2f6 ldr r0, [r7, 0xc]                                 |     r0 = *((r7 + 0xc));
    0x0002a2f8 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002a2fa beq 0x2a39c                                       |         goto label_78;
                                                                 |     }
    0x0002a2fc ldrb r6, [r0]                                     |     r6 = *(r0);
    0x0002a2fe cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x0002a300 beq 0x2a39c                                       |         goto label_78;
                                                                 |     }
    0x0002a302 bl 0x29b04                                        |     r0 = fcn_00029b04 (r0, r1, r2, r3);
    0x0002a306 adds r3, r0, 1                                    |     r3 = r0 + 1;
    0x0002a308 mov r6, r0                                        |     r6 = r0;
                                                                 |     if (r3 == r0) {
    0x0002a30a beq 0x2a37e                                       |         goto label_25;
                                                                 |     }
    0x0002a30c ldr r3, [r4, 4]                                   |     r3 = *((r4 + 4));
    0x0002a30e cmp r3, 4                                         |     
    0x0002a310 mov r2, r3                                        |     r2 = r3;
                                                                 |     if (r3 <= 4) {
    0x0002a312 ble.w 0x2a594                                     |         goto label_79;
                                                                 |     }
    0x0002a316 ldr r1, [r4, 8]                                   |     r1 = *((r4 + 8));
    0x0002a318 ldr r0, [r1, 0x10]                                |     r0 = *((r1 + 0x10));
    0x0002a31a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002a31c beq.w 0x2a4ec                                     |         goto label_80;
                                                                 |     }
    0x0002a320 ldrb r3, [r0]                                     |     r3 = *(r0);
    0x0002a322 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0002a324 bne 0x2a3b2                                       |         goto label_81;
                                                                 |     }
                                                                 | label_24:
    0x0002a326 mov r3, r2                                        |     r3 = r2;
    0x0002a328 mov.w r2, -1                                      |     r2 = -1;
                                                                 |     if (r6 != 0) {
                                                                 | label_26:
    0x0002a32c cbz r6, 0x2a330                                   |         
    0x0002a32e ands r2, r6                                       |         r2 &= r6;
                                                                 |     }
    0x0002a330 and r2, r2, 0x7f                                  |     r2 &= 0x7f;
    0x0002a334 str r2, [sp, 0x2c]                                |     var_2ch = r2;
                                                                 | label_34:
    0x0002a336 cmp r3, 6                                         |     
                                                                 |     if (r3 <= 6) {
    0x0002a338 ble.w 0x29f30                                     |         goto label_20;
                                                                 |     }
    0x0002a33c ldr r2, [r4, 8]                                   |     r2 = *((r4 + 8));
    0x0002a33e cmp r3, 7                                         |     
    0x0002a340 ldr r6, [r2, 0x18]                                |     r6 = *((r2 + 0x18));
                                                                 |     if (r3 != 7) {
    0x0002a342 bne 0x2a3d2                                       |         goto label_82;
                                                                 |     }
    0x0002a344 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x0002a346 beq.w 0x29f30                                     |         goto label_20;
                                                                 |     }
    0x0002a34a ldrb r3, [r6]                                     |     r3 = *(r6);
    0x0002a34c cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0002a34e beq.w 0x29f30                                     |         goto label_20;
                                                                 |     }
    0x0002a352 ldr r1, [pc, 0x2e0]                               |     
    0x0002a354 sub.w r2, sb, 0x10                                |     r2 -= var_10h_4;
    0x0002a358 mov r0, r6                                        |     r0 = r6;
    0x0002a35a add r1, pc                                        |     r1 = "received [signal:%d(%s)] with NULL siginfo";
    0x0002a35c bl 0x42be8                                        |     r0 = str2uint64 ();
    0x0002a360 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002a362 beq.w 0x29f30                                     |         goto label_20;
                                                                 |     }
                                                                 | label_32:
    0x0002a366 ldr r4, [sp, 0x30]                                |     r4 = var_30h;
    0x0002a368 mov r2, r6                                        |     r2 = r6;
    0x0002a36a ldr r1, [pc, 0x2cc]                               |     
    0x0002a36c ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x0002a36e add r1, pc                                        |     r1 = 0x549ac;
                                                                 | label_27:
    0x0002a370 orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x0002a374 movs r0, 0                                        |     r0 = 0;
    0x0002a376 str r3, [r4, 0x28]                                |     *((r4 + 0x28)) = r3;
    0x0002a378 bl 0x44820                                        |     zbx_dsprintf ()
    0x0002a37c str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
                                                                 | label_25:
    0x0002a37e mov.w fp, 1                                       |     
    0x0002a382 b 0x2a17c                                         |     goto label_21;
                                                                 | label_57:
    0x0002a384 ldrd r0, r6, [r5, -0xc0]                          |     __asm ("ldrd r0, r6, [var_60h]");
    0x0002a388 mov.w fp, 1                                       |     
    0x0002a38c ldr r4, [r5, -0xb8]                               |     r4 = var_b8h;
    0x0002a390 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002a392 beq.w 0x2a16c                                     |         goto label_22;
                                                                 |     }
                                                                 | label_69:
    0x0002a396 bl 0x31a44                                        |     zbx_regexp_free ();
    0x0002a39a b 0x2a16c                                         |     goto label_22;
                                                                 | label_78:
    0x0002a39c cmp r3, 4                                         |     
                                                                 |     if (r3 == 4) {
    0x0002a39e beq.w 0x29f2c                                     |         goto label_23;
                                                                 |     }
    0x0002a3a2 ldr r0, [r7, 0x10]                                |     r0 = *((r7 + 0x10));
    0x0002a3a4 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002a3a6 beq.w 0x2a4f2                                     |         goto label_83;
                                                                 |     }
    0x0002a3aa ldrb r3, [r0]                                     |     r3 = *(r0);
    0x0002a3ac movs r6, 0                                        |     r6 = 0;
    0x0002a3ae cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0002a3b0 beq 0x2a326                                       |         goto label_24;
                                                                 |     }
                                                                 | label_81:
    0x0002a3b2 ldr r1, [sp, 0x30]                                |     r1 = var_30h;
    0x0002a3b4 bl 0x29b04                                        |     r0 = fcn_00029b04 (r0, r1, r2, r3);
    0x0002a3b8 adds r7, r0, 1                                    |     r7 = r0 + 1;
                                                                 |     if (r7 == r0) {
    0x0002a3ba beq 0x2a37e                                       |         goto label_25;
                                                                 |     }
    0x0002a3bc ldr r3, [r4, 4]                                   |     r3 = *((r4 + 4));
    0x0002a3be mvns r2, r0                                       |     r2 = ~r0;
    0x0002a3c0 b 0x2a32c                                         |     goto label_26;
                                                                 | label_75:
    0x0002a3c2 ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
    0x0002a3c4 lsls r0, r3, 0x1c                                 |     r0 = r3 << 0x1c;
                                                                 |     if (r0 < r3) {
    0x0002a3c6 bmi.w 0x2a222                                     |         goto label_17;
                                                                 |     }
    0x0002a3ca mov r0, fp                                        |     r0 = fp;
    0x0002a3cc blx 0xde30                                        |     fcn_0000de30 ();
    0x0002a3d0 b 0x2a036                                         |     goto label_9;
                                                                 | label_82:
    0x0002a3d2 ldr r7, [r2, 0x1c]                                |     r7 = *((r2 + 0x1c));
                                                                 |     if (r6 != 0) {
    0x0002a3d4 cbz r6, 0x2a3dc                                   |         
    0x0002a3d6 ldrb r3, [r6]                                     |         r3 = *(r6);
    0x0002a3d8 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x0002a3da bne 0x2a476                                       |             goto label_84;
                                                                 |         }
                                                                 |     }
                                                                 | label_31:
    0x0002a3dc cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x0002a3de beq.w 0x29f30                                     |         goto label_20;
                                                                 |     }
    0x0002a3e2 ldrb r3, [r7]                                     |     r3 = *(r7);
    0x0002a3e4 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0002a3e6 beq.w 0x29f30                                     |         goto label_20;
                                                                 |     }
    0x0002a3ea ldr r1, [pc, 0x250]                               |     
    0x0002a3ec sub.w r2, sb, 8                                   |     r2 -= var_8h_2;
    0x0002a3f0 mov r0, r7                                        |     r0 = r7;
    0x0002a3f2 add r1, pc                                        |     r1 = 0x54a34;
    0x0002a3f4 bl 0x42be8                                        |     r0 = str2uint64 ();
    0x0002a3f8 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002a3fa beq.w 0x29f30                                     |         goto label_20;
                                                                 |     }
    0x0002a3fe ldr r4, [sp, 0x30]                                |     r4 = var_30h;
    0x0002a400 mov r2, r7                                        |     r2 = r7;
    0x0002a402 ldr r1, [pc, 0x23c]                               |     
    0x0002a404 ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x0002a406 add r1, pc                                        |     r1 = 0x54a4c;
    0x0002a408 b 0x2a370                                         |     goto label_27;
                                                                 | label_54:
    0x0002a40a ldr r7, [r2, 0x24]                                |     r7 = *((r2 + 0x24));
    0x0002a40c cmp.w fp, 0                                       |     
                                                                 |     if (fp != 0) {
    0x0002a410 beq 0x2a418                                       |         
    0x0002a412 ldrb.w r3, [fp]                                   |         r3 = *(fp);
                                                                 |         if (r3 != 0) {
    0x0002a416 cbnz r3, 0x2a452                                  |             goto label_85;
                                                                 |         }
                                                                 |     }
    0x0002a418 mvn r3, 0x80000000                                |     r3 = ~0x80000000;
    0x0002a41c add.w r8, sp, 0x98                                |     r8 += var_98h;
    0x0002a420 str r3, [sp, 0x44]                                |     var_44h = r3;
    0x0002a422 add r3, sp, 0xa0                                  |     r3 += var_a0h;
                                                                 | label_30:
    0x0002a424 str r3, [sp, 0x20]                                |     var_20h_2 = r3;
    0x0002a426 cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x0002a428 beq.w 0x29f64                                     |         goto label_28;
                                                                 |     }
    0x0002a42c ldrb r2, [r7]                                     |     r2 = *(r7);
                                                                 |     if (r2 != 0) {
    0x0002a42e cbz r2, 0x2a44c                                   |         
    0x0002a430 ldr r1, [pc, 0x210]                               |         
    0x0002a432 mov r2, r8                                        |         r2 = r8;
    0x0002a434 mov r0, r7                                        |         r0 = r7;
    0x0002a436 add r1, pc                                        |         r1 = 0x54a7e;
    0x0002a438 bl 0x42be8                                        |         r0 = str2uint64 ();
    0x0002a43c cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x0002a43e bne 0x2a522                                       |             goto label_86;
                                                                 |         }
    0x0002a440 ldr r3, [sp, 0x20]                                |         r3 = var_20h_2;
    0x0002a442 ldr r3, [r3, -0x8]                                |         r3 = *((r3 - 0x8));
    0x0002a446 subs r3, r6, r3                                   |         r3 = r6 - r3;
    0x0002a448 str r3, [sp, 0x3c]                                |         var_3ch = r3;
    0x0002a44a b 0x29f68                                         |         goto label_29;
                                                                 |     }
    0x0002a44c str r2, [sp, 0x3c]                                |     var_3ch = r2;
    0x0002a44e b 0x29f68                                         |     goto label_29;
                                                                 | label_56:
    0x0002a450 movs r7, 0                                        |     r7 = 0;
                                                                 | label_85:
    0x0002a452 ldr r1, [pc, 0x1f4]                               |     
    0x0002a454 add.w r8, sp, 0x98                                |     r8 += var_98h;
    0x0002a458 add r3, sp, 0xa0                                  |     r3 += var_a0h;
    0x0002a45a mov r0, fp                                        |     r0 = fp;
    0x0002a45c mov r2, r8                                        |     r2 = r8;
    0x0002a45e str r3, [sp, 0x20]                                |     var_20h_2 = r3;
    0x0002a460 add r1, pc                                        |     r1 = 0x54aae;
    0x0002a462 bl 0x42be8                                        |     r0 = str2uint64 ();
    0x0002a466 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0002a468 bne 0x2a4f8                                       |         goto label_87;
                                                                 |     }
    0x0002a46a ldr r3, [sp, 0x20]                                |     r3 = var_20h_2;
    0x0002a46c ldr r2, [r3, -0x8]                                |     r2 = *((r3 - 0x8));
    0x0002a470 subs r2, r6, r2                                   |     r2 = r6 - r2;
    0x0002a472 str r2, [sp, 0x44]                                |     var_44h = r2;
    0x0002a474 b 0x2a424                                         |     goto label_30;
                                                                 | label_84:
    0x0002a476 ldr r1, [pc, 0x1d4]                               |     
    0x0002a478 sub.w r2, sb, 0x10                                |     r2 -= var_10h_4;
    0x0002a47c mov r0, r6                                        |     r0 = r6;
    0x0002a47e add r1, pc                                        |     r1 = 0x54ad0;
    0x0002a480 bl 0x42be8                                        |     r0 = str2uint64 ();
    0x0002a484 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002a486 beq 0x2a3dc                                       |         goto label_31;
                                                                 |     }
    0x0002a488 b 0x2a366                                         |     goto label_32;
                                                                 | label_68:
    0x0002a48a ldr r4, [sp, 0x30]                                |     r4 = var_30h;
    0x0002a48c orr r3, r3, 4                                     |     r3 |= 4;
    0x0002a490 ldr r0, [pc, 0x1bc]                               |     
    0x0002a492 movw r1, 0x49c                                    |     r1 = 0x49c;
    0x0002a496 str r3, [r4, 0x28]                                |     *((r4 + 0x28)) = r3;
    0x0002a498 add r0, pc                                        |     r0 = 0x54aec;
    0x0002a49a ldr r3, [r5, -0x1c]                               |     r3 = var_1ch_3;
    0x0002a49e bl 0x40ed8                                        |     zbx_strdup2 ();
    0x0002a4a2 str r0, [r4, 0x18]                                |     *((r4 + 0x18)) = r0;
    0x0002a4a4 ldr r0, [sp, 0x4c]                                |     r0 = var_4ch;
    0x0002a4a6 bl 0x3af6c                                        |     zbx_json_close ();
    0x0002a4aa b 0x2a152                                         |     goto label_33;
                                                                 | label_58:
    0x0002a4ac mov r0, r4                                        |     r0 = r4;
    0x0002a4ae blx 0xde30                                        |     fcn_0000de30 ();
                                                                 | label_36:
    0x0002a4b2 mov.w fp, 1                                       |     
    0x0002a4b6 b 0x2a152                                         |     goto label_33;
                                                                 | label_77:
    0x0002a4b8 str r3, [r5, -0xb4]                               |     var_b4h = r3;
    0x0002a4bc movs r2, 1                                        |     r2 = 1;
    0x0002a4be ldr r1, [sp, 0x4c]                                |     r1 = var_4ch;
    0x0002a4c0 sub.w r3, sb, 0x14                                |     r3 -= var_b4h;
    0x0002a4c4 mov r0, fp                                        |     r0 = fp;
    0x0002a4c6 bl 0x2dc94                                        |     r0 = zbx_vfs_file_info ();
    0x0002a4ca cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002a4cc beq.w 0x2a0bc                                     |         goto label_13;
                                                                 |     }
    0x0002a4d0 ldr r3, [pc, 0x15c]                               |     
    0x0002a4d2 ldr.w r3, [sl, r3]                                |     r3 = *((sl + r3));
    0x0002a4d6 ldr r3, [r3]                                      |     r3 = *(0x2a630);
    0x0002a4d8 cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x0002a4da bgt 0x2a52e                                       |         goto label_88;
                                                                 |     }
    0x0002a4dc ldr r0, [r5, -0xb4]                               |     r0 = var_b4h;
    0x0002a4e0 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002a4e2 beq.w 0x2a0bc                                     |         goto label_13;
                                                                 |     }
    0x0002a4e6 blx 0xde30                                        |     fcn_0000de30 ();
    0x0002a4ea b 0x2a0bc                                         |     goto label_13;
                                                                 | label_80:
    0x0002a4ec mov.w r2, -1                                      |     r2 = -1;
    0x0002a4f0 b 0x2a32c                                         |     goto label_26;
                                                                 | label_83:
    0x0002a4f2 movs r2, 0x7f                                     |     r2 = 0x7f;
    0x0002a4f4 str r2, [sp, 0x2c]                                |     var_2ch = r2;
    0x0002a4f6 b 0x2a336                                         |     goto label_34;
                                                                 | label_87:
    0x0002a4f8 ldr r4, [sp, 0x30]                                |     r4 = var_30h;
    0x0002a4fa mov r2, fp                                        |     r2 = fp;
    0x0002a4fc ldr r1, [pc, 0x154]                               |     
    0x0002a4fe ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x0002a500 add r1, pc                                        |     r1 = 0x54b58;
    0x0002a502 b 0x2a370                                         |     goto label_27;
                                                                 | label_76:
    0x0002a504 cmp.w r4, 0x2000                                  |     
                                                                 |     if (r4 == 0x2000) {
    0x0002a508 beq 0x2a548                                       |         goto label_89;
                                                                 |     }
    0x0002a50a cmp.w r4, 0x1000                                  |     
                                                                 |     if (r4 != 0x1000) {
    0x0002a50e bne.w 0x2a1ce                                     |         goto label_14;
                                                                 |     }
    0x0002a510 add r6, sp, 0x178                                 |     r6 = sp + 0x178;
    0x0002a512 ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
    0x0002a514 lsls r2, r3, 0x19                                 |     r2 = r3 << 0x19;
                                                                 |     if (r2 < r3) {
    0x0002a516 bmi.w 0x2a222                                     |         goto label_17;
                                                                 |     }
    0x0002a51a mov r0, fp                                        |     r0 = fp;
    0x0002a51c blx 0xde30                                        |     fcn_0000de30 ();
    0x0002a520 b 0x2a036                                         |     goto label_9;
                                                                 | label_86:
    0x0002a522 ldr r4, [sp, 0x30]                                |     r4 = var_30h;
    0x0002a524 mov r2, r7                                        |     r2 = r7;
    0x0002a526 ldr r1, [pc, 0x130]                               |     
    0x0002a528 ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x0002a52a add r1, pc                                        |     r1 = 0x54b88;
    0x0002a52c b 0x2a370                                         |     goto label_27;
                                                                 | label_88:
    0x0002a52e ldr r2, [pc, 0x12c]                               |     
    0x0002a530 movs r0, 4                                        |     r0 = 4;
    0x0002a532 ldr r3, [r5, -0xb4]                               |     r3 = var_b4h;
    0x0002a536 ldr r1, [pc, 0x128]                               |     
    0x0002a538 add r2, pc                                        |     r2 = 0x54b9a;
    0x0002a53a str r3, [sp]                                      |     *(sp) = r3;
    0x0002a53c adds r2, 0x2c                                     |     r2 += 0x2c;
    0x0002a53e add r1, pc                                        |     r1 = 0x54ba4;
    0x0002a540 mov r3, fp                                        |     r3 = fp;
    0x0002a542 bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x0002a544 invalid                                           |     
                                                                 | label_89:
    0x0002a548 ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
    0x0002a54a lsls r3, r3, 0x1a                                 |     r3 <<= 0x1a;
                                                                 |     if (r3 >= r3) {
    0x0002a54c bpl.w 0x2a1ce                                     |         goto label_14;
                                                                 |     }
    0x0002a550 ldr r0, [r5, -0x58]                               |     r0 = var_58h;
    0x0002a554 ldr r1, [sb, -0x10]                               |     r1 = var_10h_4;
    0x0002a558 ldr r2, [r5, -0x54]                               |     r2 = var_54h;
    0x0002a55c ldr r3, [sb, -0xc]                                |     r3 = var_8h_3;
    0x0002a560 cmp r0, r1                                        |     
    0x0002a562 sbcs.w r3, r2, r3                                 |     __asm ("sbcs.w r3, r2, r3");
                                                                 |     if (r0 <= r1) {
    0x0002a566 blo.w 0x2a1ce                                     |         goto label_14;
                                                                 |     }
    0x0002a56a ldrd r1, r3, [sb, -0x8]                           |     __asm ("ldrd r1, r3, [sb, -0x8]");
    0x0002a56e cmp r1, r0                                        |     
    0x0002a570 sbcs r3, r2                                       |     __asm ("sbcs r3, r2");
                                                                 |     if (r1 <= r0) {
    0x0002a572 blo.w 0x2a1ce                                     |         goto label_14;
                                                                 |     }
    0x0002a576 ldr r2, [sp, 0x3c]                                |     r2 = var_3ch;
    0x0002a578 ldr r3, [r5, -0x38]                               |     r3 = var_38h_3;
    0x0002a57c ldr r1, [sp, 0x44]                                |     r1 = var_44h;
    0x0002a57e cmp r3, r2                                        |     
    0x0002a580 ite gt                                            |     
                                                                 |     if (r3 <= r2) {
    0x0002a582 movgt r2, 1                                       |         r2 = 1;
                                                                 |     }
                                                                 |     if (r3 > r2) {
    0x0002a584 movle r2, 0                                       |         r2 = 0;
                                                                 |     }
    0x0002a586 cmp r3, r1                                        |     
    0x0002a588 it gt                                             |     
                                                                 |     if (r3 <= r1) {
    0x0002a58a movgt r2, 0                                       |         r2 = 0;
                                                                 |     }
    0x0002a58c cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0002a58e beq.w 0x2a1ce                                     |         goto label_14;
                                                                 |     }
    0x0002a592 b 0x2a262                                         |     goto label_19;
                                                                 | label_79:
    0x0002a594 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002a596 beq.w 0x29f2c                                     |         goto label_23;
                                                                 |     }
    0x0002a598 add r4, sp, 0x324                                 |     r4 = sp + 0x324;
    0x0002a59a and r3, r0, 0x7f                                  |     r3 = r0 & 0x7f;
    0x0002a59e str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x0002a5a0 b 0x29f30                                         |     goto label_20;
                                                                 | label_70:
    0x0002a5a2 blx 0xe158                                        |     fcn_0000e158 ();
                                                                 | label_60:
    0x0002a5a6 ldr r3, [r7]                                      |     r3 = *(r7);
    0x0002a5a8 cmp r3, 0                                         |     
                                                                 |     if (r3 <= 0) {
    0x0002a5aa ble 0x2a5dc                                       |         goto label_90;
                                                                 |     }
    0x0002a5ac ldr r3, [pc, 0x80]                                |     
    0x0002a5ae ldr.w r3, [sl, r3]                                |     r3 = *((sl + r3));
    0x0002a5b2 ldr r3, [r3]                                      |     r3 = *(0x2a630);
    0x0002a5b4 cmp r3, 3                                         |     
                                                                 |     if (r3 <= 3) {
    0x0002a5b6 ble.w 0x2a118                                     |         goto label_35;
                                                                 |     }
    0x0002a5ba blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x0002a5be ldr r0, [r0]                                      |     r0 = *(r0);
    0x0002a5c0 ldr r4, [r7, 4]                                   |     r4 = *((r7 + 4));
    0x0002a5c2 bl 0x30b74                                        |     zbx_strerror ();
    0x0002a5c6 ldr r2, [pc, 0x9c]                                |     
    0x0002a5c8 ldr r1, [pc, 0x9c]                                |     
    0x0002a5ca mov r3, r4                                        |     r3 = r4;
    0x0002a5cc str r0, [sp]                                      |     *(sp) = r0;
    0x0002a5ce movs r0, 4                                        |     r0 = 4;
    0x0002a5d0 add r2, pc                                        |     r2 = 0x54c3a;
    0x0002a5d2 adds r2, 0x2c                                     |     r2 += 0x2c;
    0x0002a5d4 add r1, pc                                        |     r1 = "cannot decrease log level: minimum level has been already set";
    0x0002a5d6 bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x0002a5da b 0x2a118                                         |     goto label_35;
                                                                 | label_90:
    0x0002a5dc ldr r4, [sp, 0x30]                                |     r4 = var_30h;
    0x0002a5de mov r2, r0                                        |     r2 = r0;
    0x0002a5e0 ldr r0, [pc, 0x88]                                |     
    0x0002a5e2 movw r1, 0x459                                    |     r1 = 0x459;
    0x0002a5e6 ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x0002a5e8 add r0, pc                                        |     r0 = 0x54c58;
    0x0002a5ea orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x0002a5ee str r3, [r4, 0x28]                                |     *((r4 + 0x28)) = r3;
    0x0002a5f0 ldr r3, [pc, 0x7c]                                |     
    0x0002a5f2 add r3, pc                                        |     r3 = 0x54c66;
    0x0002a5f4 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x0002a5f8 ldr r3, [r5, -0x9c]                               |     r3 = var_9ch;
    0x0002a5fc str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x0002a5fe adds r3, 1                                        |     r3++;
    0x0002a600 str r3, [r5, -0x9c]                               |     var_9ch = r3;
    0x0002a604 b 0x2a4b2                                         |     goto label_36;
                                                                 | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x2c300 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.0002c300 ()                                          | void fcn_0002c300 (int16_t arg1) {
                                                                     |     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_34h;
                                                                     |     r0 = arg1;
    0x0002c300 ldr r1, [pc, 0x150]                                   |     
    0x0002c302 movs r3, 0                                            |     r3 = 0;
    0x0002c304 ldr r2, [pc, 0x150]                                   |     r2 = *(0x2c458);
    0x0002c306 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0002c30a sub sp, 0x3c                                          |     
    0x0002c30c add r1, pc                                            |     r1 = 0x58764;
    0x0002c30e mov r5, r0                                            |     r5 = r0;
    0x0002c310 add r6, sp, 0x1c                                      |     r6 += var_1ch;
    0x0002c312 adds r5, 1                                            |     r5++;
    0x0002c314 ldr r2, [r1, r2]                                      |     
    0x0002c316 mov r0, r6                                            |     r0 = r6;
    0x0002c318 ldr.w r8, [pc, 0x140]                                 |     
    0x0002c31c ldr r7, [pc, 0x140]                                   |     
    0x0002c31e ldr r2, [r2]                                          |     r2 = *(0x58764);
    0x0002c320 str r2, [sp, 0x34]                                    |     var_34h = r2;
    0x0002c322 mov.w r2, 0                                           |     r2 = 0;
    0x0002c326 strd r3, r3, [sp, 0x14]                               |     __asm ("strd r3, r3, [var_18h]");
    0x0002c328 adds r3, 5                                            |     r3 += 5;
    0x0002c32a bl 0x32978                                            |     zbx_vector_str_create ();
    0x0002c32e movs r1, 0x2f                                         |     r1 = 0x2f;
    0x0002c330 mov r0, r5                                            |     r0 = r5;
    0x0002c332 blx 0xdcd4                                            |     fcn_0000dcd4 ();
    0x0002c336 add r7, pc                                            |     r7 = 0x5879a;
    0x0002c338 add r8, pc                                            |     r8 = 0x58798;
    0x0002c33a mov r4, r0                                            |     r4 = r0;
    0x0002c33c mov r3, r5                                            |     r3 = r5;
                                                                     |     if (r0 == 0) {
    0x0002c33e cbz r0, 0x2c366                                       |         goto label_4;
                                                                     |     }
                                                                     |     do {
    0x0002c340 subs r2, r0, r5                                       |         r2 = r0 - r5;
    0x0002c342 mov r1, r8                                            |         r1 = r8;
    0x0002c344 movs r0, 0                                            |         r0 = 0;
    0x0002c346 adds r5, r4, 1                                        |         r5 = r4 + 1;
    0x0002c348 bl 0x44820                                            |         r0 = zbx_dsprintf ()
    0x0002c34c mov r1, r0                                            |         r1 = r0;
    0x0002c34e mov r0, r6                                            |         r0 = r6;
    0x0002c350 str r1, [sp, 0x10]                                    |         var_10h = r1;
    0x0002c352 bl 0x32a08                                            |         zbx_vector_str_append ();
    0x0002c356 movs r1, 0x2f                                         |         r1 = 0x2f;
    0x0002c358 mov r0, r5                                            |         r0 = r5;
    0x0002c35a blx 0xdcd4                                            |         fcn_0000dcd4 ();
    0x0002c35e mov r3, r5                                            |         r3 = r5;
    0x0002c360 mov r4, r0                                            |         r4 = r0;
    0x0002c362 cmp r0, 0                                             |         
    0x0002c364 bne 0x2c340                                           |         
                                                                     |     } while (r0 != 0);
                                                                     | label_4:
    0x0002c366 mov r2, r0                                            |     r2 = r0;
    0x0002c368 ldr r0, [pc, 0xf8]                                    |     
    0x0002c36a movw r1, 0x50c                                        |     r1 = 0x50c;
    0x0002c36e add r0, pc                                            |     r0 = 0x587d6;
    0x0002c370 bl 0x40ed8                                            |     r0 = zbx_strdup2 ();
    0x0002c374 mov r1, r0                                            |     r1 = r0;
    0x0002c376 mov r0, r6                                            |     r0 = r6;
    0x0002c378 str r1, [sp, 0x10]                                    |     var_10h = r1;
    0x0002c37a bl 0x32a08                                            |     zbx_vector_str_append ();
    0x0002c37e ldr r5, [sp, 0x20]                                    |     r5 = var_20h;
    0x0002c380 str r4, [sp, 0x10]                                    |     var_10h = r4;
    0x0002c382 subs r5, 1                                            |     r5--;
                                                                     |     if (r5 >= 1) {
    0x0002c384 bpl 0x2c39c                                           |         goto label_1;
                                                                     |     }
    0x0002c386 b 0x2c440                                             |     goto label_5;
                                                                     |     do {
    0x0002c388 ldrb r3, [r0, 1]                                      |         r3 = *((r0 + 1));
                                                                     |         if (r3 != 0) {
    0x0002c38a cbnz r3, 0x2c3a8                                      |             goto label_6;
                                                                     |         }
                                                                     | label_0:
    0x0002c38c blx 0xde30                                            |         fcn_0000de30 ();
    0x0002c390 mov r1, r5                                            |         r1 = r5;
    0x0002c392 mov r0, r6                                            |         r0 = r6;
    0x0002c394 bl 0x32b50                                            |         zbx_vector_str_remove ();
                                                                     | label_2:
    0x0002c398 subs r5, 1                                            |         r5--;
                                                                     |         if (r5 <= 1) {
    0x0002c39a blo 0x2c3d2                                           |             goto label_7;
                                                                     |         }
                                                                     | label_1:
    0x0002c39c ldr r3, [sp, 0x1c]                                    |         r3 = var_1ch;
    0x0002c39e ldr.w r0, [r3, r5, lsl 2]                             |         offset_0 = r5 << 2;
                                                                     |         r0 = *((r3 + offset_0));
    0x0002c3a2 ldrb r3, [r0]                                         |         r3 = *(r0);
    0x0002c3a4 cmp r3, 0x2e                                          |         
    0x0002c3a6 beq 0x2c388                                           |         
                                                                     |     } while (r3 == 0x2e);
                                                                     | label_6:
    0x0002c3a8 ldrb r3, [r0]                                         |     r3 = *(r0);
    0x0002c3aa cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0002c3ac beq 0x2c38c                                           |         goto label_0;
                                                                     |     }
    0x0002c3ae cmp r3, 0x2e                                          |     
                                                                     |     if (r3 != 0x2e) {
    0x0002c3b0 bne 0x2c438                                           |         goto label_8;
                                                                     |     }
    0x0002c3b2 ldrb r3, [r0, 1]                                      |     r3 = *((r0 + 1));
    0x0002c3b4 cmp r3, 0x2e                                          |     
                                                                     |     if (r3 != 0x2e) {
    0x0002c3b6 bne 0x2c438                                           |         goto label_8;
                                                                     |     }
    0x0002c3b8 ldrb r3, [r0, 2]                                      |     r3 = *((r0 + 2));
    0x0002c3ba cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x0002c3bc bne 0x2c438                                           |         goto label_8;
                                                                     |     }
    0x0002c3be blx 0xde30                                            |     fcn_0000de30 ();
    0x0002c3c2 mov r1, r5                                            |     r1 = r5;
    0x0002c3c4 mov r0, r6                                            |     r0 = r6;
    0x0002c3c6 bl 0x32b50                                            |     zbx_vector_str_remove ();
    0x0002c3ca subs r5, 1                                            |     r5--;
    0x0002c3cc add.w r4, r4, 1                                       |     r4++;
                                                                     |     if (r5 >= 1) {
    0x0002c3d0 bhs 0x2c39c                                           |         goto label_1;
                                                                     |     }
                                                                     | label_7:
    0x0002c3d2 ldr r3, [sp, 0x20]                                    |     r3 = var_20h;
    0x0002c3d4 cmp r3, 0                                             |     
                                                                     |     if (r3 <= 0) {
    0x0002c3d6 ble 0x2c440                                           |         goto label_5;
                                                                     |     }
    0x0002c3d8 ldr.w sb, [pc, 0x8c]                                  |     sb = *(0x0002c468);
    0x0002c3dc movs r4, 0                                            |     r4 = 0;
    0x0002c3de add.w fp, sp, 0x18                                    |     
    0x0002c3e2 add.w sl, sp, 0x14                                    |     sl += var_14h;
    0x0002c3e6 add.w r8, sp, 0x10                                    |     r8 += var_10h;
    0x0002c3ea add sb, pc                                            |     sb += pc;
                                                                     |     do {
    0x0002c3ec ldr r5, [sp, 0x1c]                                    |         r5 = var_1ch;
    0x0002c3ee mov r3, sb                                            |         r3 = sb;
    0x0002c3f0 mov r2, fp                                            |         r2 = fp;
    0x0002c3f2 mov r1, sl                                            |         r1 = sl;
    0x0002c3f4 mov r0, r8                                            |         r0 = r8;
    0x0002c3f6 ldr.w r5, [r5, r4, lsl 2]                             |         offset_1 = r4 << 2;
                                                                     |         r5 = *((r5 + offset_1));
    0x0002c3fa adds r4, 1                                            |         r4++;
    0x0002c3fc str r5, [sp]                                          |         *(sp) = r5;
    0x0002c3fe bl 0x43fb4                                            |         zbx_snprintf_alloc ();
    0x0002c402 ldr r3, [sp, 0x20]                                    |         r3 = var_20h;
    0x0002c404 cmp r3, r4                                            |         
    0x0002c406 bgt 0x2c3ec                                           |         
                                                                     |     } while (r3 > r4);
                                                                     | label_3:
    0x0002c408 ldr r3, [pc, 0x60]                                    |     r3 = *(0x2c46c);
    0x0002c40a mov r0, r6                                            |     r0 = r6;
    0x0002c40c ldr r3, [r7, r3]                                      |     r3 = *((r7 + r3));
    0x0002c40e mov r1, r3                                            |     r1 = r3;
    0x0002c410 str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x0002c412 bl 0x32de8                                            |     zbx_vector_str_clear_ext ();
    0x0002c416 mov r0, r6                                            |     r0 = r6;
    0x0002c418 bl 0x329d8                                            |     zbx_vector_str_destroy ();
    0x0002c41c ldr r2, [pc, 0x50]                                    |     
    0x0002c41e ldr r3, [pc, 0x38]                                    |     r3 = *(0x2c45a);
    0x0002c420 ldr r0, [sp, 0x10]                                    |     r0 = var_10h;
    0x0002c422 add r2, pc                                            |     r2 = 0x58896;
    0x0002c424 ldr r3, [r2, r3]                                      |     r3 = *(0x58896);
    0x0002c426 ldr r2, [r3]                                          |     r2 = *(0x58896);
    0x0002c428 ldr r3, [sp, 0x34]                                    |     r3 = var_34h;
    0x0002c42a eors r2, r3                                           |     r2 ^= r3;
    0x0002c42c mov.w r3, 0                                           |     r3 = 0;
                                                                     |     if (r2 != r3) {
    0x0002c430 bne 0x2c450                                           |         goto label_9;
                                                                     |     }
    0x0002c432 add sp, 0x3c                                          |     
    0x0002c434 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
                                                                     | label_8:
    0x0002c438 cmp r4, 0                                             |     
                                                                     |     if (r4 == 0) {
    0x0002c43a beq 0x2c398                                           |         goto label_2;
                                                                     |     }
    0x0002c43c subs r4, 1                                            |     r4--;
    0x0002c43e b 0x2c38c                                             |     goto label_0;
                                                                     | label_5:
    0x0002c440 ldr r3, [pc, 0x30]                                    |     
    0x0002c442 add r2, sp, 0x18                                      |     r2 += var_18h;
    0x0002c444 add r1, sp, 0x14                                      |     r1 += var_14h;
    0x0002c446 add r0, sp, 0x10                                      |     r0 += var_10h;
    0x0002c448 add r3, pc                                            |     r3 = 0x588c0;
    0x0002c44a bl 0x43fb4                                            |     zbx_snprintf_alloc ();
    0x0002c44e b 0x2c408                                             |     goto label_3;
                                                                     | label_9:
    0x0002c450 blx 0xe158                                            |     fcn_0000e158 ();
    0x0002c454 str.w r0, [ip, 2]                                     |     __asm ("str.w r0, [ip, 2]");
    0x0002c458 lsls r4, r2, 0xe                                      |     r4 = r2 << 0xe;
    0x0002c45a movs r0, r0                                           |     
    0x0002c45c lsrs r0, r7, 0xf                                      |     r0 = r7 >> 0xf;
    0x0002c45e movs r2, r0                                           |     r2 = r0;
    0x0002c460 strh.w r0, [r2, 2]                                    |     *((r2 + 2)) = r0;
    0x0002c464 strb r2, [r2, 5]                                      |     *((r2 + 5)) = r2;
    0x0002c466 movs r2, r0                                           |     r2 = r0;
    0x0002c468 ldr r3, [pc, 0x328]                                   |     r3 = *(0x2c794);
    0x0002c46a movs r2, r0                                           |     r2 = r0;
    0x0002c46c lsls r0, r0, 0xe                                      |     r0 <<= 0xe;
    0x0002c46e movs r0, r0                                           |     
    0x0002c470 invalid                                               |     
                                                                     | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x2c478 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.0002c478 ()                              | void fcn_0002c478 (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                         |     int32_t var_0h_2;
                                                         |     int32_t var_0h_3;
                                                         |     int32_t var_14h_2;
                                                         |     int32_t var_14h;
                                                         |     int16_t var_10h;
                                                         |     int32_t var_ch;
                                                         |     int16_t var_8h;
                                                         |     int32_t var_4h;
                                                         |     int16_t var_20h;
                                                         |     int16_t var_24h;
                                                         |     int16_t var_1000h;
                                                         |     int32_t var_0h;
                                                         |     int16_t var_1020h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
                                                         |     r3 = arg4;
    0x0002c478 mvnsmi lr, 0xb4000                        |     __asm ("mvnsmi lr, 0xb4000");
    0x0002c47c sub.w sp, sp, 0x1020                      |     
    0x0002c480 ldr r6, [pc, 0x18c]                       |     
    0x0002c482 sub sp, 4                                 |     
    0x0002c484 add.w r7, sp, 0x1000                      |     r7 += var_1000h;
    0x0002c488 mov r8, r1                                |     r8 = r1;
    0x0002c48a ldr r4, [pc, 0x188]                       |     r4 = *(0x2c616);
    0x0002c48c adds r7, 0x1c                             |     r7 += 0x1c;
    0x0002c48e add r6, pc                                |     r6 = 0x58aa2;
    0x0002c490 ldr r4, [r6, r4]                          |     
    0x0002c492 mov r6, r3                                |     r6 = r3;
    0x0002c494 ldrb r3, [r0]                             |     r3 = *(r0);
    0x0002c496 ldr r4, [r4]                              |     r4 = *(0x58aa2);
    0x0002c498 str r4, [r7]                              |     *(r7) = r4;
    0x0002c49a mov.w r4, 0                               |     r4 = 0;
    0x0002c49e mov r7, r2                                |     r7 = r2;
    0x0002c4a0 cmp r3, 0x2f                              |     
                                                         |     if (r3 == 0x2f) {
    0x0002c4a2 beq.w 0x2c600                             |         goto label_3;
                                                         |     }
    0x0002c4a6 add r4, sp, 0x20                          |     r4 += var_20h;
    0x0002c4a8 movs r3, 0                                |     r3 = 0;
    0x0002c4aa sub.w sb, r4, 8                           |     sb -= var_8h;
    0x0002c4ae mov r5, r0                                |     r5 = r0;
    0x0002c4b0 mov.w r1, 0x1000                          |     r1 = 0x1000;
    0x0002c4b4 mov r0, sb                                |     r0 = sb;
    0x0002c4b6 strd r3, r3, [r4, -0x14]                  |     __asm ("strd r3, r3, [var_14h]");
    0x0002c4ba str r3, [r4, -0xc]                        |     var_ch = r3;
    0x0002c4be blx 0xe1ac                                |     r0 = fcn_0000e1ac ();
    0x0002c4c2 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0002c4c4 beq.w 0x2c5fa                             |         goto label_4;
                                                         |     }
    0x0002c4c8 ldr r2, [r4, -0x8]                        |     r2 = *((r4 - 0x8));
    0x0002c4cc movw r3, 0x7528                           |     
    0x0002c4d0 movt r3, 0x726e                           |     r3 = 0x726e7528;
    0x0002c4d4 cmp r2, r3                                |     
                                                         |     if (r2 == r3) {
    0x0002c4d6 beq 0x2c5ce                               |         goto label_5;
                                                         |     }
                                                         | label_0:
    0x0002c4d8 ldr r3, [pc, 0x13c]                       |     
    0x0002c4da sub.w r2, r4, 0xc                         |     r2 -= var_ch;
    0x0002c4de sub.w r1, r4, 0x10                        |     r1 -= var_10h;
    0x0002c4e2 sub.w r0, r4, 0x14                        |     r0 -= var_14h;
    0x0002c4e6 strd sb, r5, [sp]                         |     __asm ("strd sb, r5, [sp]");
    0x0002c4ea add r3, pc                                |     r3 = 0x58b06;
    0x0002c4ec bl 0x43fb4                                |     zbx_snprintf_alloc ();
    0x0002c4f0 ldr r0, [r4, -0x14]                       |     r0 = var_14h;
    0x0002c4f4 bl 0x2c300                                |     fcn_0002c300 (r0);
    0x0002c4f8 ldr r3, [r4, -0x14]                       |     r3 = var_14h;
    0x0002c4fc mov r5, r0                                |     r5 = r0;
    0x0002c4fe str r0, [r6]                              |     *(r6) = r0;
                                                         |     if (r3 != 0) {
    0x0002c500 cbz r3, 0x2c50a                           |         
    0x0002c502 mov r0, r3                                |         r0 = r3;
    0x0002c504 blx 0xde30                                |         fcn_0000de30 ();
    0x0002c508 ldr r5, [r6]                              |         r5 = *(r6);
                                                         |     }
                                                         | label_2:
    0x0002c50a movs r1, 0x2f                             |     r1 = 0x2f;
    0x0002c50c mov r0, r5                                |     r0 = r5;
    0x0002c50e mov r4, r5                                |     r4 = r5;
    0x0002c510 blx 0xdcd4                                |     r0 = fcn_0000dcd4 ();
                                                         |     if (r0 == 0) {
    0x0002c514 cbz r0, 0x2c538                           |         goto label_6;
                                                         |     }
                                                         |     do {
    0x0002c516 blx 0xdf68                                |         r0 = fcn_0000df68 ();
    0x0002c51a mov sb, r0                                |         sb = r0;
    0x0002c51c mov r0, r4                                |         r0 = r4;
    0x0002c51e blx 0xdf68                                |         r0 = fcn_0000df68 ();
    0x0002c522 add.w ip, r0, 1                           |         
    0x0002c526 movs r1, 0x2f                             |         r1 = 0x2f;
    0x0002c528 sub.w r0, ip, sb                          |         r0 = ip - sb;
    0x0002c52c add r4, r0                                |         r4 += r0;
    0x0002c52e mov r0, r4                                |         r0 = r4;
    0x0002c530 blx 0xdcd4                                |         r0 = fcn_0000dcd4 ();
    0x0002c534 cmp r0, 0                                 |         
    0x0002c536 bne 0x2c516                               |         
                                                         |     } while (r0 != 0);
                                                         | label_6:
    0x0002c538 ldrb r2, [r4]                             |     r2 = *(r4);
    0x0002c53a cmp r2, 0                                 |     
                                                         |     if (r2 == 0) {
    0x0002c53c beq 0x2c5be                               |         goto label_7;
                                                         |     }
    0x0002c53e ldr r0, [pc, 0xdc]                        |     
    0x0002c540 mov r3, r4                                |     r3 = r4;
    0x0002c542 movs r2, 0                                |     r2 = 0;
    0x0002c544 movw r1, 0x56f                            |     r1 = 0x56f;
    0x0002c548 add r0, pc                                |     r0 = 0x58b6a;
    0x0002c54a bl 0x40ed8                                |     zbx_strdup2 ();
                                                         |     do {
    0x0002c54e str.w r0, [r8]                            |         __asm ("str.w r0, [r8]");
    0x0002c552 movs r2, 0                                |         r2 = 0;
    0x0002c554 ldr r0, [pc, 0xc8]                        |         
    0x0002c556 movw r1, 0x571                            |         r1 = 0x571;
    0x0002c55a ldr r3, [r6]                              |         r3 = *(r6);
    0x0002c55c add r0, pc                                |         r0 = 0x58b80;
    0x0002c55e bl 0x40ed8                                |         r0 = zbx_strdup2 ();
    0x0002c562 mov r5, r0                                |         r5 = r0;
    0x0002c564 ldr r0, [r6]                              |         r0 = *(r6);
    0x0002c566 blx 0xdf68                                |         r0 = fcn_0000df68 ();
    0x0002c56a mov r3, r0                                |         r3 = r0;
    0x0002c56c mov r0, r4                                |         r0 = r4;
    0x0002c56e mov r4, r3                                |         r4 = r3;
    0x0002c570 blx 0xdf68                                |         fcn_0000df68 ();
    0x0002c574 ldr r1, [pc, 0xac]                        |         
    0x0002c576 subs r3, r4, r0                           |         r3 = r4 - r0;
    0x0002c578 cmp r3, 1                                 |         
    0x0002c57a mov.w r0, 0                               |         r0 = 0;
    0x0002c57e it ne                                     |         
                                                         |         if (r3 == 1) {
    0x0002c580 addne r3, r3, -1                          |             r3 += -1;
                                                         |         }
    0x0002c584 mov r2, r5                                |         r2 = r5;
    0x0002c586 add r1, pc                                |         r1 = 0x58bae;
    0x0002c588 strb r0, [r5, r3]                         |         *((r5 + r3)) = r0;
    0x0002c58a bl 0x44820                                |         zbx_dsprintf ()
    0x0002c58e str r0, [r7]                              |         *(r7) = r0;
                                                         |         if (r5 != 0) {
    0x0002c590 cbz r5, 0x2c598                           |             
    0x0002c592 mov r0, r5                                |             r0 = r5;
    0x0002c594 blx 0xde30                                |             fcn_0000de30 ();
                                                         |         }
    0x0002c598 movs r0, 0                                |         r0 = 0;
                                                         | label_1:
    0x0002c59a ldr r2, [pc, 0x8c]                        |         
    0x0002c59c add.w r1, sp, 0x1000                      |         r1 += var_1000h;
    0x0002c5a0 ldr r3, [pc, 0x70]                        |         r3 = *(0x2c614);
    0x0002c5a2 adds r1, 0x1c                             |         r1 += 0x1c;
    0x0002c5a4 add r2, pc                                |         r2 = 0x58bd2;
    0x0002c5a6 ldr r3, [r2, r3]                          |         r3 = *(0x58bd2);
    0x0002c5a8 ldr r2, [r3]                              |         r2 = *(0x58bd2);
    0x0002c5aa ldr r3, [r1]                              |         r3 = *(r1);
    0x0002c5ac eors r2, r3                               |         r2 ^= r3;
    0x0002c5ae mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x0002c5b2 bne 0x2c60a                               |             goto label_8;
                                                         |         }
    0x0002c5b4 add.w sp, sp, 0x1020                      |         
    0x0002c5b8 add sp, 4                                 |         
    0x0002c5ba pop.w {r4, r5, r6, r7, r8, sb, pc}        |         
                                                         | label_7:
    0x0002c5be ldr r0, [pc, 0x6c]                        |         
    0x0002c5c0 mov r3, r5                                |         r3 = r5;
    0x0002c5c2 movw r1, 0x56d                            |         r1 = 0x56d;
    0x0002c5c6 add r0, pc                                |         r0 = 0x58bf8;
    0x0002c5c8 bl 0x40ed8                                |         zbx_strdup2 ();
    0x0002c5cc b 0x2c54e                                 |         
                                                         |     } while (1);
                                                         | label_5:
    0x0002c5ce ldr r2, [r4, -0x4]                        |     r2 = *((r4 - 0x4));
    0x0002c5d2 movw r3, 0x6165                           |     
    0x0002c5d6 movt r3, 0x6863                           |     r3 = 0x68636165;
    0x0002c5da cmp r2, r3                                |     
                                                         |     if (r2 != r3) {
    0x0002c5dc bne.w 0x2c4d8                             |         goto label_0;
                                                         |     }
    0x0002c5e0 ldr r2, [r4]                              |     r2 = *(r4);
    0x0002c5e2 movw r3, 0x6261                           |     
    0x0002c5e6 movt r3, 0x656c                           |     r3 = 0x656c6261;
    0x0002c5ea cmp r2, r3                                |     
                                                         |     if (r2 != r3) {
    0x0002c5ec bne.w 0x2c4d8                             |         goto label_0;
                                                         |     }
    0x0002c5f0 ldrb.w r3, [sp, 0x24]                     |     r3 = var_24h;
    0x0002c5f4 cmp r3, 0x29                              |     
                                                         |     if (r3 != 0x29) {
    0x0002c5f6 bne.w 0x2c4d8                             |         goto label_0;
                                                         |     }
                                                         | label_4:
    0x0002c5fa mov.w r0, -1                              |     r0 = -1;
    0x0002c5fe b 0x2c59a                                 |     goto label_1;
                                                         | label_3:
    0x0002c600 bl 0x2c300                                |     r0 = fcn_0002c300 (r0);
    0x0002c604 mov r5, r0                                |     r5 = r0;
    0x0002c606 str r0, [r6]                              |     *(r6) = r0;
    0x0002c608 b 0x2c50a                                 |     goto label_2;
                                                         | label_8:
    0x0002c60a blx 0xe158                                |     fcn_0000e158 ();
    0x0002c60e nop                                       |     
    0x0002c610 sbfx r0, sl, 0, 3                         |     __asm ("sbfx r0, sl, 0, 3");
    0x0002c614 lsls r4, r2, 0xe                          |     r4 = r2 << 0xe;
    0x0002c616 movs r0, r0                               |     
    0x0002c618 subs r6, 0x8e                             |     r6 -= 0x8e;
    0x0002c61a movs r2, r0                               |     r2 = r0;
    0x0002c61c ldr r0, [r7, 0x74]                        |     r0 = *((r7 + 0x74));
    0x0002c61e movs r2, r0                               |     r2 = r0;
    0x0002c620 ldr r4, [r4, 0x74]                        |     r4 = *((r4 + 0x74));
    0x0002c622 movs r2, r0                               |     r2 = r0;
    0x0002c624 movs r6, 0xfa                             |     r6 = 0xfa;
    0x0002c626 movs r2, r0                               |     r2 = r0;
    0x0002c628 invalid                                   |     
                                                         | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x2e780 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0002e780 ()                      | void fcn_0002e780 (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                 |     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;
                                                 |     int16_t var_28h;
                                                 |     int16_t var_dc4h;
                                                 |     int32_t var_4h_2;
                                                 |     int16_t var_15c0h;
                                                 |     int32_t var_0h_2;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
                                                 |     r2 = arg3;
                                                 |     r3 = arg4;
                                                 |     if (? >= ?) {
    0x0002e780 ldrbmi lr, [r0, sp, lsr 18]!      |         
                                                 |     }
    0x0002e784 sub.w sp, sp, 0x15c0              |     
    0x0002e788 ldr r5, [pc, 0x1fc]               |     
    0x0002e78a sub sp, 8                         |     
    0x0002e78c add.w r6, sp, 0x15c0              |     r6 += var_15c0h;
    0x0002e790 mov.w r8, 1                       |     r8 = 1;
    0x0002e794 ldr r4, [pc, 0x1f4]               |     r4 = *(0x2e98c);
    0x0002e796 adds r6, 4                        |     r6 += 4;
    0x0002e798 add r5, pc                        |     r5 = 0x5d124;
    0x0002e79a ldr.w ip, [pc, 0x1f4]             |     
    0x0002e79e mov r7, r0                        |     r7 = r0;
    0x0002e7a0 add.w sl, sp, 0x28                |     sl += var_28h;
    0x0002e7a4 ldr r4, [r5, r4]                  |     
    0x0002e7a6 mov r5, r2                        |     r5 = r2;
    0x0002e7a8 mov r2, r1                        |     r2 = r1;
    0x0002e7aa ldr r1, [pc, 0x1e8]               |     r1 = *(0x2e996);
    0x0002e7ac add ip, pc                        |     ip = 0x5d142;
    0x0002e7ae sub.w sb, sl, 0x10                |     sb -= var_10h;
    0x0002e7b2 ldr r4, [r4]                      |     r4 = imp.__aeabi_unwind_cpp_pr0;
    0x0002e7b4 str r4, [r6]                      |     *(r6) = r4;
    0x0002e7b6 mov.w r4, 0                       |     r4 = 0;
    0x0002e7ba mov r4, r3                        |     r4 = r3;
    0x0002e7bc ldr.w r1, [ip, r1]                |     
    0x0002e7c0 mov r3, r5                        |     r3 = r5;
    0x0002e7c2 ldr r5, [pc, 0x1d4]               |     r5 = *(0x2e99a);
    0x0002e7c4 movs r6, 0                        |     r6 = 0;
    0x0002e7c6 ldr r1, [r1]                      |     r1 = imp.__aeabi_unwind_cpp_pr0;
    0x0002e7c8 strd r6, r6, [sp, 8]              |     __asm ("strd r6, r6, [var_8h]");
    0x0002e7cc str.w r8, [sp, 4]                 |     __asm ("str.w r8, [var_4h]");
    0x0002e7d0 ldr.w r0, [ip, r5]                |     
    0x0002e7d4 ldr r0, [r0]                      |     r0 = imp.__aeabi_unwind_cpp_pr0;
    0x0002e7d6 str r0, [sp]                      |     *(sp) = r0;
    0x0002e7d8 mov r0, sb                        |     r0 = sb;
    0x0002e7da bl 0x369e4                        |     r0 = zbx_tcp_connect ();
    0x0002e7de cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x0002e7e0 bne 0x2e87a                       |         
    0x0002e7e2 ldr r6, [r7]                      |         r6 = *(r7);
    0x0002e7e4 mov r5, r0                        |         r5 = r0;
    0x0002e7e6 mov r0, r6                        |         r0 = r6;
    0x0002e7e8 blx 0xdf68                        |         fcn_0000df68 ();
    0x0002e7ec mov r1, r6                        |         r1 = r6;
    0x0002e7ee mov r2, r0                        |         r2 = r0;
    0x0002e7f0 mov r3, r5                        |         r3 = r5;
    0x0002e7f2 mov r0, sb                        |         r0 = sb;
    0x0002e7f4 str.w r8, [sp]                    |         __asm ("str.w r8, [sp]");
    0x0002e7f8 str r5, [sp, 4]                   |         var_4h = r5;
    0x0002e7fa bl 0x36a4c                        |         r0 = zbx_tcp_send_ext ();
    0x0002e7fe mov r6, r0                        |         r6 = r0;
                                                 |         if (r0 != 0) {
    0x0002e800 cbz r0, 0x2e848                   |             
    0x0002e802 ldr r3, [r4, 0x28]                |             r3 = *((r4 + 0x28));
                                                 |         }
    0x0002e848 mov r2, r0                        |         r2 = r0;
    0x0002e84a mov r1, r0                        |         r1 = r0;
    0x0002e84c mov r0, sb                        |         r0 = sb;
    0x0002e84e bl 0x3760c                        |         zbx_tcp_recv_ext ();
    0x0002e852 adds r0, 1                        |         r0++;
                                                 |         if (r0 == 1) {
    0x0002e854 beq 0x2e896                       |             goto label_0;
                                                 |         }
    0x0002e856 ldr.w r0, [sb, 0xc]               |         r0 = var_ch;
                                                 |         if (r0 == 0) {
    0x0002e85a cbz r0, 0x2e896                   |             goto label_0;
                                                 |         }
    0x0002e85c ldrb r2, [r0]                     |         r2 = *(r0);
                                                 |         if (r2 != 0) {
    0x0002e85e cbnz r2, 0x2e8b2                  |             goto label_1;
                                                 |         }
    0x0002e860 ldr r1, [r4, 0x28]                |         r1 = *((r4 + 0x28));
    0x0002e862 ldr r3, [pc, 0x140]               |         
    0x0002e864 ldr r0, [pc, 0x140]               |         
    0x0002e866 orr r1, r1, 0x20                  |         r1 |= 0x20;
    0x0002e86a str r1, [r4, 0x28]                |         *((r4 + 0x28)) = r1;
    0x0002e86c add r3, pc                        |         r3 = 0x5d216;
    0x0002e86e add r0, pc                        |         r0 = 0x5d21a;
    0x0002e870 movs r1, 0x5c                     |         r1 = 0x5c;
    0x0002e872 bl 0x40ed8                        |         zbx_strdup2 ();
    0x0002e876 str r0, [r4, 0x20]                |         *((r4 + 0x20)) = r0;
    0x0002e878 b 0x2e81c                         |         void (*0x2e81c)() ();
                                                 |     }
    0x0002e87a ldr r3, [r4, 0x28]                |     r3 = *((r4 + 0x28));
    0x0002e87c orr r3, r3, 0x20                  |     r3 |= 0x20;
    0x0002e880 str r3, [r4, 0x28]                |     *((r4 + 0x28)) = r3;
    0x0002e882 bl 0x36860                        |     zbx_socket_strerror ();
    0x0002e886 ldr r1, [pc, 0x124]               |     
    0x0002e888 mov r2, r0                        |     r2 = r0;
    0x0002e88a mov r0, r6                        |     r0 = r6;
    0x0002e88c add r1, pc                        |     r1 = 0x5d23e;
    0x0002e88e bl 0x44820                        |     zbx_dsprintf ()
    0x0002e892 str r0, [r4, 0x20]                |     *((r4 + 0x20)) = r0;
    0x0002e894 b 0x2e822                         |     void (*0x2e822)() ();
                                                 | label_0:
    0x0002e896 ldr r3, [r4, 0x28]                |     r3 = *((r4 + 0x28));
    0x0002e898 orr r3, r3, 0x20                  |     r3 |= 0x20;
    0x0002e89c str r3, [r4, 0x28]                |     *((r4 + 0x28)) = r3;
    0x0002e89e bl 0x36860                        |     zbx_socket_strerror ();
    0x0002e8a2 ldr r1, [pc, 0x10c]               |     
    0x0002e8a4 mov r2, r0                        |     r2 = r0;
    0x0002e8a6 movs r0, 0                        |     r0 = 0;
    0x0002e8a8 add r1, pc                        |     r1 = 0x5d25e;
    0x0002e8aa bl 0x44820                        |     zbx_dsprintf ()
    0x0002e8ae str r0, [r4, 0x20]                |     *((r4 + 0x20)) = r0;
    0x0002e8b0 b 0x2e81c                         |     void (*0x2e81c)() ();
                                                 | label_1:
    0x0002e8b2 sub.w sl, sl, 0x18                |     sl -= var_18h;
    0x0002e8b6 mov r1, sl                        |     r1 = sl;
    0x0002e8b8 bl 0x3af9c                        |     r0 = zbx_json_open ();
    0x0002e8bc mov r7, r0                        |     r7 = r0;
    0x0002e8be cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x0002e8c0 bne 0x2e94e                       |         goto label_2;
                                                 |     }
    0x0002e8c2 ldr.w r8, [pc, 0xf0]              |     
    0x0002e8c6 addw r6, sp, 0xdc4                |     __asm ("addw r6, var_dc4h");
    0x0002e8ca str r0, [sp]                      |     *(sp) = r0;
    0x0002e8cc mov.w r3, 0x800                   |     r3 = 0x800;
    0x0002e8d0 mov r2, r6                        |     r2 = r6;
    0x0002e8d2 mov r0, sl                        |     r0 = sl;
    0x0002e8d4 add r8, pc                        |     r8 = 0x5d28e;
    0x0002e8d6 mov r1, r8                        |     r1 = r8;
    0x0002e8d8 bl 0x3b3dc                        |     r0 = zbx_json_value_by_name ();
    0x0002e8dc cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x0002e8de bne 0x2e96a                       |         goto label_3;
                                                 |     }
    0x0002e8e0 ldr r2, [r6]                      |     r2 = *(r6);
    0x0002e8e2 movw r3, 0x7573                   |     
    0x0002e8e6 movt r3, 0x6363                   |     r3 = 0x63637573;
    0x0002e8ea cmp r2, r3                        |     
    0x0002e8ec beq 0x2e932                       |     
                                                 |     while (r2 != r3) {
    0x0002e8ee ldr r7, [pc, 0xc8]                |         r7 = *(0x2e9ba);
    0x0002e8f0 movs r5, 0                        |         r5 = 0;
    0x0002e8f2 mov.w r3, 0x800                   |         r3 = 0x800;
    0x0002e8f6 mov r0, sl                        |         r0 = sl;
    0x0002e8f8 mov r2, r6                        |         r2 = r6;
    0x0002e8fa str r5, [sp]                      |         *(sp) = r5;
    0x0002e932 ldr r2, [r6, 4]                   |         r2 = var_4h_2;
    0x0002e934 movw r3, 0x7365                   |         
    0x0002e938 movt r3, 0x73                     |         r3 = 0x737365;
    0x0002e93c cmp r2, r3                        |         
    0x0002e93e bne 0x2e8ee                       |         
                                                 |     }
    0x0002e940 ldr.w r2, [sb, 0xc]               |     r2 = var_ch;
    0x0002e944 movs r1, 4                        |     r1 = 4;
    0x0002e946 mov r0, r4                        |     r0 = r4;
    0x0002e948 bl 0x1cd48                        |     set_result_type ();
    0x0002e94c b 0x2e81c                         |     void (*0x2e81c)() ();
                                                 | label_2:
    0x0002e94e ldr r1, [r4, 0x28]                |     r1 = *((r4 + 0x28));
    0x0002e950 mov r2, r6                        |     r2 = r6;
    0x0002e952 ldr r3, [pc, 0x70]                |     
    0x0002e954 ldr r0, [pc, 0x70]                |     
    0x0002e956 orr r1, r1, 0x20                  |     r1 |= 0x20;
    0x0002e95a str r1, [r4, 0x28]                |     *((r4 + 0x28)) = r1;
    0x0002e95c add r3, pc                        |     r3 = 0x5d326;
    0x0002e95e add r0, pc                        |     r0 = 0x5d32a;
    0x0002e960 movs r1, 0x2d                     |     r1 = 0x2d;
    0x0002e962 bl 0x40ed8                        |     zbx_strdup2 ();
    0x0002e966 str r0, [r4, 0x20]                |     *((r4 + 0x20)) = r0;
    0x0002e968 b 0x2e81c                         |     void (*0x2e81c)() ();
                                                 | label_3:
    0x0002e96a ldr r3, [r4, 0x28]                |     r3 = *((r4 + 0x28));
    0x0002e96c mov r2, r8                        |     r2 = r8;
    0x0002e96e ldr r1, [pc, 0x5c]                |     
    0x0002e970 mov r0, r7                        |     r0 = r7;
    0x0002e972 orr r3, r3, 0x20                  |     r3 |= 0x20;
    0x0002e976 add r1, pc                        |     r1 = 0x5d348;
    0x0002e978 str r3, [r4, 0x28]                |     *((r4 + 0x28)) = r3;
    0x0002e97a bl 0x44820                        |     zbx_dsprintf ()
    0x0002e97e str r0, [r4, 0x20]                |     *((r4 + 0x20)) = r0;
    0x0002e980 b 0x2e81c                         |     return void (*0x2e81c)() ();
                                                 | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x2ecf0 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.0002ecf0 ()                                          | void fcn_0002ecf0 (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                     |     int16_t var_14h_2;
                                                                     |     int16_t var_18h_3;
                                                                     |     int16_t var_4h_3;
                                                                     |     int16_t var_dd8h;
                                                                     |     int16_t var_dfch_2;
                                                                     |     int16_t var_dfch;
                                                                     |     int16_t var_e28h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
                                                                     |     r3 = arg4;
    0x0002ecf0 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0002ecf4 mov r7, r2                                            |     r7 = r2;
    0x0002ecf6 subw sp, sp, 0xe04                                    |     __asm ("subw sp, sp, 0xe04");
    0x0002ecfa ldr.w r2, [pc, 0x518]                                 |     
    0x0002ecfe mov r5, r1                                            |     r5 = r1;
    0x0002ed00 addw sb, sp, 0xdd8                                    |     __asm ("addw sb, var_dd8h");
    0x0002ed04 str r3, [sp, 0x18]                                    |     var_18h_3 = r3;
    0x0002ed06 mov ip, sb                                            |     
    0x0002ed08 ldr.w r4, [sp, 0xe28]                                 |     r4 = var_e28h;
    0x0002ed0c add r2, pc                                            |     r2 = 0x5df26;
    0x0002ed0e ldr.w r3, [pc, 0x508]                                 |     r3 = *(0x2f21a);
    0x0002ed12 add r6, sp, 0x28                                      |     r6 += var_4h_3;
    0x0002ed14 ldr.w lr, [pc, 0x504]                                 |     
    0x0002ed18 mov.w fp, 0                                           |     
    0x0002ed1c str r4, [sp, 0x14]                                    |     var_14h_2 = r4;
    0x0002ed1e mov r4, r0                                            |     r4 = r0;
    0x0002ed20 ldr r3, [r2, r3]                                      |     
    0x0002ed22 add lr, pc                                            |     lr += pc;
    0x0002ed24 ldr.w sl, [pc, 0x4f8]                                 |     sl = *(0x0002f220);
    0x0002ed28 ldr r3, [r3]                                          |     r3 = imp.__aeabi_unwind_cpp_pr0;
    0x0002ed2a str.w r3, [sp, 0xdfc]                                 |     __asm ("str.w r3, [var_dfch_2]");
    0x0002ed2e mov.w r3, 0                                           |     r3 = 0;
    0x0002ed32 ldm.w lr!, {r0, r1, r2, r3}                           |     r0 = *(lr!);
                                                                     |     r1 = *((lr! + 4));
                                                                     |     r2 = *((lr! + 8));
                                                                     |     r3 = *((lr! + 12));
    0x0002ed36 add sl, pc                                            |     sl += pc;
    0x0002ed38 str.w fp, [r6]                                        |     __asm ("str.w fp, [r6]");
    0x0002ed3c stm.w ip!, {r0, r1, r2, r3}                           |     *(ip!) = r0;
                                                                     |     *((ip! + 4)) = r1;
                                                                     |     *((ip! + 8)) = r2;
                                                                     |     *((ip! + 12)) = r3;
    0x0002ed40 ldm.w lr!, {r0, r1, r2, r3}                           |     r0 = *(lr!);
                                                                     |     r1 = *((lr! + 4));
                                                                     |     r2 = *((lr! + 8));
                                                                     |     r3 = *((lr! + 12));
    0x0002ed44 stm.w ip!, {r0, r1, r2, r3}                           |     *(ip!) = r0;
                                                                     |     *((ip! + 4)) = r1;
                                                                     |     *((ip! + 8)) = r2;
                                                                     |     *((ip! + 12)) = r3;
    0x0002ed48 ldr.w r3, [lr]                                        |     r3 = *(lr);
    0x0002ed4c strb.w r3, [ip]                                       |     *(ip) = r3;
    0x0002ed50 cmp r4, 0                                             |     
                                                                     |     if (r4 == 0) {
    0x0002ed52 beq.w 0x2f1b6                                         |         goto label_1;
                                                                     |     }
    0x0002ed56 ldrb r3, [r4]                                         |     r3 = *(r4);
    0x0002ed58 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0002ed5a beq.w 0x2f1b6                                         |         goto label_1;
                                                                     |     }
    0x0002ed5e mov r1, sb                                            |     r1 = sb;
    0x0002ed60 mov r0, r4                                            |     r0 = r4;
    0x0002ed62 blx 0xe388                                            |     r0 = fcn_0000e388 ();
    0x0002ed66 mov r8, r0                                            |     r8 = r0;
    0x0002ed68 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0002ed6a bne.w 0x2f1cc                                         |         goto label_2;
                                                                     |     }
                                                                     |     if (r5 != 0) {
    0x0002ed6e cbz r5, 0x2ed7e                                       |         
    0x0002ed70 mov r1, sb                                            |         r1 = sb;
    0x0002ed72 mov r0, r5                                            |         r0 = r5;
    0x0002ed74 blx 0xe388                                            |         r0 = fcn_0000e388 ();
    0x0002ed78 cmp r0, 0                                             |         
                                                                     |         if (r0 != 0) {
    0x0002ed7a bne.w 0x2f1e6                                         |             goto label_3;
                                                                     |         }
                                                                     |     }
    0x0002ed7e ldr.w r1, [pc, 0x4a4]                                 |     
    0x0002ed82 mov r0, r4                                            |     r0 = r4;
    0x0002ed84 add r1, pc                                            |     r1 = 0x5dfae;
    0x0002ed86 blx 0xe388                                            |     fcn_0000e388 ();
                                                                     |     do {
    0x0002ef64 ldr r2, [pc, 0x2ec]                                   |         
    0x0002ef66 ldr r3, [pc, 0x2b0]                                   |         r3 = *(0x2f21a);
    0x0002ef68 add r2, pc                                            |         r2 = 0x5e1c0;
    0x0002ef6a ldr r3, [r2, r3]                                      |         r3 = imp.__aeabi_unwind_cpp_pr0;
    0x0002ef6c ldr r2, [r3]                                          |         r2 = imp.__aeabi_unwind_cpp_pr0;
    0x0002ef6e ldr.w r3, [sp, 0xdfc]                                 |         r3 = var_dfch;
    0x0002ef72 eors r2, r3                                           |         r2 ^= r3;
    0x0002ef74 mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x0002ef78 bne.w 0x2f20e                                         |             goto label_4;
                                                                     |         }
    0x0002ef7c mov r0, r4                                            |         r0 = r4;
    0x0002ef7e addw sp, sp, 0xe04                                    |         __asm ("addw sp, sp, 0xe04");
    0x0002ef82 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_0:
    0x0002f108 movs r4, 1                                            |         r4 = 1;
    0x0002f10a b 0x2ef64                                             |         
                                                                     |     } while (1);
                                                                     | label_1:
    0x0002f1b6 ldr r4, [sp, 0x14]                                    |     r4 = var_14h_2;
    0x0002f1b8 movs r1, 0x6b                                         |     r1 = 0x6b;
    0x0002f1ba ldr r3, [pc, 0x100]                                   |     
    0x0002f1bc ldr r0, [pc, 0x100]                                   |     
    0x0002f1be ldr r2, [r4]                                          |     r2 = *(r4);
    0x0002f1c0 add r3, pc                                            |     r3 = 0x5e482;
    0x0002f1c2 add r0, pc                                            |     r0 = 0x5e486;
    0x0002f1c4 bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0002f1c8 str r0, [r4]                                          |     *(r4) = r0;
    0x0002f1ca b 0x2f108                                             |     goto label_0;
                                                                     | label_2:
    0x0002f1cc ldr r1, [pc, 0xf4]                                    |     
    0x0002f1ce mov r3, r4                                            |     r3 = r4;
    0x0002f1d0 subs r2, r0, r4                                       |     r2 = r0 - r4;
    0x0002f1d2 mov r0, fp                                            |     r0 = fp;
    0x0002f1d4 add r1, pc                                            |     r1 = 0x5e49c;
    0x0002f1d6 bl 0x44820                                            |     zbx_dsprintf ()
    0x0002f1da ldr r3, [sp, 0x14]                                    |     r3 = var_14h_2;
    0x0002f1dc str r0, [r3]                                          |     *(r3) = r0;
    0x0002f1de b 0x2f108                                             |     goto label_0;
                                                                     | label_3:
    0x0002f1e6 ldr r1, [pc, 0xe4]                                    |     
    0x0002f1e8 mov r3, r5                                            |     r3 = r5;
    0x0002f1ea subs r2, r0, r5                                       |     r2 = r0 - r5;
    0x0002f1ec mov r0, r8                                            |     r0 = r8;
    0x0002f1ee add r1, pc                                            |     r1 = 0x5e4c0;
    0x0002f1f0 bl 0x44820                                            |     zbx_dsprintf ()
    0x0002f1f4 ldr r3, [sp, 0x14]                                    |     r3 = var_14h_2;
    0x0002f1f6 str r0, [r3]                                          |     *(r3) = r0;
    0x0002f1f8 b 0x2f108                                             |     goto label_0;
                                                                     | label_4:
    0x0002f20e blx 0xe158                                            |     fcn_0000e158 ();
    0x0002f212 nop                                                   |     
    0x0002f214 ldm r6, {r2, r3, r6, r7}                              |     r2 = *(r6);
                                                                     |     r3 = *((r6 + 4));
                                                                     |     r6 = *((r6 + 8));
                                                                     |     r7 = *((r6 + 12));
    0x0002f216 movs r2, r0                                           |     r2 = r0;
    0x0002f218 lsls r4, r2, 0xe                                      |     r4 = r2 << 0xe;
    0x0002f21a movs r0, r0                                           |     
    0x0002f21c str r6, [r7, r2]                                      |     *((r7 + r2)) = r6;
    0x0002f21e movs r2, r0                                           |     r2 = r0;
    0x0002f220 ldm r6!, {r1, r5, r7}                                 |     r1 = *(r6!);
                                                                     |     r5 = *((r6! + 4));
                                                                     |     r7 = *((r6! + 8));
    0x0002f222 movs r2, r0                                           |     r2 = r0;
    0x0002f224 ldr r7, [pc, 0x30]                                    |     r7 = *(0x2f258);
    0x0002f226 movs r2, r0                                           |     r2 = r0;
    0x0002f228 ldr r6, [pc, 0x170]                                   |     r6 = WEB_PAGE_PERF;
    0x0002f22a movs r2, r0                                           |     r2 = r0;
    0x0002f22c cmp r6, 0x64                                          |     
    0x0002f22e movs r2, r0                                           |     r2 = r0;
    0x0002f230 ldr r7, [pc, 0xb0]                                    |     r7 = *(0x2f2e4);
    0x0002f232 movs r2, r0                                           |     r2 = r0;
    0x0002f234 ldr r7, [pc, 0x88]                                    |     r7 = *(0x2f2c0);
    0x0002f236 movs r2, r0                                           |     r2 = r0;
    0x0002f238 ldr r5, [pc, 0x240]                                   |     r5 = *(0x2f47c);
    0x0002f23a movs r2, r0                                           |     r2 = r0;
    0x0002f23c lsls r0, r0, 0xf                                      |     r0 <<= 0xf;
    0x0002f23e movs r0, r0                                           |     
    0x0002f240 lsls r4, r4, 0xc                                      |     r4 <<= 0xc;
    0x0002f242 movs r0, r0                                           |     
    0x0002f244 subs r6, r6, 4                                        |     r6 -= 4;
    0x0002f246 movs r2, r0                                           |     r2 = r0;
    0x0002f248 cmp r5, 0x42                                          |     
    0x0002f24a movs r2, r0                                           |     r2 = r0;
    0x0002f24c ldr r6, [pc, 0x258]                                   |     r6 = *(0x2f4a8);
    0x0002f24e movs r2, r0                                           |     r2 = r0;
    0x0002f250 ldr r6, [pc, 0x250]                                   |     r6 = *(0x2f4a4);
    0x0002f252 movs r2, r0                                           |     r2 = r0;
    0x0002f254 ldm r4, {r4, r5, r6}                                  |     r4 = *(r4);
                                                                     |     r5 = *((r4 + 4));
                                                                     |     r6 = *((r4 + 8));
    0x0002f256 movs r2, r0                                           |     r2 = r0;
    0x0002f258 ldr r4, [pc, 0x208]                                   |     r4 = *(0x2f464);
    0x0002f25a movs r2, r0                                           |     r2 = r0;
    0x0002f25c ldr r5, [pc, 0x130]                                   |     r5 = *(0x2f390);
    0x0002f25e movs r2, r0                                           |     r2 = r0;
    0x0002f260 lsrs r6, r6, 0xf                                      |     r6 >>= 0xf;
    0x0002f262 movs r2, r0                                           |     r2 = r0;
    0x0002f264 cmp r4, 0x5a                                          |     
    0x0002f266 movs r2, r0                                           |     r2 = r0;
    0x0002f268 ldr r5, [pc, 0x208]                                   |     r5 = *(0x2f474);
    0x0002f26a movs r2, r0                                           |     r2 = r0;
    0x0002f26c ldr r4, [pc, 0xa0]                                    |     r4 = *(0x2f310);
    0x0002f26e movs r2, r0                                           |     r2 = r0;
    0x0002f270 subs r6, r4, 0                                        |     r6 = r4 - 0;
    0x0002f272 movs r2, r0                                           |     r2 = r0;
    0x0002f274 subs r2, r5, 2                                        |     r2 = r5 - 2;
    0x0002f276 movs r2, r0                                           |     r2 = r0;
    0x0002f278 ldr r3, [pc, 0x390]                                   |     r3 = *(0x2f60c);
    0x0002f27a movs r2, r0                                           |     r2 = r0;
    0x0002f27c invalid                                               |     
                                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x3986c */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0003986c ()                                      | void fcn_0003986c (int16_t arg_1h, int16_t arg_24h, int16_t arg_28h, int16_t arg_2ch, int16_t arg_30h, int16_t arg_34h, int16_t arg_38h, int16_t arg_3ch, int16_t arg_40h, int16_t arg_48h, int16_t arg_b0h, int16_t arg_118h, int16_t arg_91ch, int16_t arg_948h, int16_t arg_94ch, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int32_t var_91ch;
                                                                 |     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;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x0003986c svcmi 0xf0e92d                                    |     __asm ("svcmi 0xf0e92d");
    0x00039870 mov r4, r3                                        |     r4 = r3;
    0x00039872 ldr.w r5, [pc, 0x6d8]                             |     
    0x00039876 adds r3, r2, 1                                    |     r3 = r2 + 1;
    0x00039878 subw sp, sp, 0x924                                |     __asm ("subw sp, sp, 0x924");
    0x0003987c cmp r3, 0xa                                       |     
    0x0003987e ldr.w r2, [pc, 0x6d0]                             |     r2 = *(0x39f52);
    0x00039882 mov r7, r0                                        |     r7 = r0;
    0x00039884 add r5, pc                                        |     r5 = 0x737d6;
    0x00039886 ldr r2, [r5, r2]                                  |     
    0x00039888 ldr r2, [r2]                                      |     r2 = *(0x737d6);
    0x0003988a str.w r2, [sp, 0x91c]                             |     __asm ("str.w r2, [arg_91ch]");
    0x0003988e mov.w r2, 0                                       |     r2 = 0;
    0x00039892 ldr.w r2, [pc, 0x6c0]                             |     
    0x00039896 str r1, [sp, 0x18]                                |     var_18h = r1;
    0x00039898 add r2, pc                                        |     r2 = 0x737f2;
    0x0003989a str r2, [sp, 0x1c]                                |     var_1ch = r2;
                                                                 |     if (r3 > 0xa) {
    0x0003989c bgt.w 0x39ebe                                     |         goto label_24;
                                                                 |     }
    0x000398a0 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000398a2 beq.w 0x39ab2                                     |         goto label_25;
                                                                 |     }
    0x000398a6 ldr.w r1, [pc, 0x6b0]                             |     
    0x000398aa str r3, [sp, 8]                                   |     var_8h = r3;
    0x000398ac add r1, pc                                        |     r1 = 0x7380a;
    0x000398ae blx 0xdf90                                        |     fcn_0000df90 ();
    0x000398b2 ldr r3, [sp, 8]                                   |     r3 = var_8h;
    0x000398b4 str r0, [sp, 0x14]                                |     var_14h = r0;
    0x000398b6 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000398b8 beq.w 0x39ef4                                     |         goto label_26;
                                                                 |     }
    0x000398bc ldr.w r2, [pc, 0x69c]                             |     r2 = *(0x00039f5c);
    0x000398c0 add r4, sp, 0x118                                 |     r4 += arg_118h;
    0x000398c2 strd r3, r7, [sp, 0x2c]                           |     __asm ("strd r3, r7, [sp, 0x2c]");
    0x000398c6 add r2, pc                                        |     r2 += pc;
    0x000398c8 str r2, [sp, 0x20]                                |     var_20h = r2;
    0x000398ca ldr.w r2, [pc, 0x694]                             |     r2 = *(0x00039f60);
    0x000398ce add r2, pc                                        |     r2 += pc;
    0x000398d0 str r2, [sp, 0xc]                                 |     var_ch = r2;
    0x000398d2 ldr.w r2, [pc, 0x690]                             |     r2 = *(0x00039f64);
    0x000398d6 add r2, pc                                        |     r2 += pc;
    0x000398d8 str r2, [sp, 0x10]                                |     var_10h = r2;
    0x000398da movs r2, 1                                        |     r2 = 1;
    0x000398dc str r2, [sp, 8]                                   |     var_8h = r2;
                                                                 | label_0:
    0x000398de ldr r2, [sp, 0x14]                                |     r2 = var_14h;
    0x000398e0 movw r1, 0x803                                    |     r1 = 0x803;
    0x000398e4 mov r0, r4                                        |     r0 = r4;
    0x000398e6 blx 0xdc98                                        |     r0 = fcn_0000dc98 ();
    0x000398ea cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000398ec beq.w 0x39aa4                                     |         goto label_27;
                                                                 |     }
    0x000398f0 mov r0, r4                                        |     r0 = r4;
    0x000398f2 blx 0xdf68                                        |     r0 = fcn_0000df68 ();
    0x000398f6 cmp.w r0, 0x800                                   |     
                                                                 |     if (r0 >= 0x800) {
    0x000398fa bls 0x3990c                                       |         
    0x000398fc ldrb.w r1, [r4, 0x800]                            |         r1 = *((r4 + 0x800));
    0x00039900 ldr r0, [sp, 0x20]                                |         r0 = var_20h;
    0x00039902 blx 0xdcd4                                        |         r0 = fcn_0000dcd4 ();
    0x00039906 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00039908 beq.w 0x39e50                                     |             goto label_28;
                                                                 |         }
                                                                 |     }
    0x0003990c ldr r1, [sp, 0xc]                                 |     r1 = var_ch;
    0x0003990e mov r0, r4                                        |     r0 = r4;
    0x00039910 bl 0x44534                                        |     zbx_ltrim ();
    0x00039914 ldr r1, [sp, 0x10]                                |     r1 = var_10h;
    0x00039916 mov r0, r4                                        |     r0 = r4;
    0x00039918 bl 0x444f4                                        |     zbx_rtrim ();
    0x0003991c ldrb r3, [r4]                                     |     r3 = *(r4);
    0x0003991e cmp r3, 0                                         |     
    0x00039920 it ne                                             |     
                                                                 |     if (r3 != 0) {
    0x00039922 cmpne r3, 0x23                                    |         __asm ("cmpne r3, 0x23");
                                                                 |     }
                                                                 |     if (r3 == 0) {
    0x00039924 beq.w 0x39a9c                                     |         goto label_3;
                                                                 |     }
    0x00039928 mov r0, r4                                        |     r0 = r4;
    0x0003992a bl 0x45b98                                        |     r0 = zbx_is_utf8 ();
    0x0003992e mov r6, r0                                        |     r6 = r0;
    0x00039930 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00039932 bne.w 0x39e6a                                     |         goto label_29;
                                                                 |     }
    0x00039936 movs r1, 0x3d                                     |     r1 = 0x3d;
    0x00039938 mov r0, r4                                        |     r0 = r4;
    0x0003993a blx 0xdcd4                                        |     r0 = fcn_0000dcd4 ();
    0x0003993e mov r5, r0                                        |     r5 = r0;
    0x00039940 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00039942 beq.w 0x39e9a                                     |         goto label_30;
                                                                 |     }
    0x00039946 mov r8, r0                                        |     r8 = r0;
    0x00039948 ldr r1, [sp, 0x10]                                |     r1 = var_10h;
    0x0003994a strb r6, [r8], 1                                  |     *(r8) = r6;
                                                                 |     r8++;
    0x0003994e mov r0, r4                                        |     r0 = r4;
    0x00039950 bl 0x444f4                                        |     zbx_rtrim ();
    0x00039954 ldr r1, [sp, 0xc]                                 |     r1 = var_ch;
    0x00039956 mov r0, r8                                        |     r0 = r8;
    0x00039958 bl 0x44534                                        |     zbx_ltrim ();
    0x0003995c ldr.w r3, [pc, 0x608]                             |     r3 = *(0x39f68);
    0x00039960 ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x00039962 ldr r7, [r2, r3]                                  |     r7 = *((r2 + r3));
    0x00039964 ldr r3, [r7]                                      |     r3 = *(r7);
    0x00039966 cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x00039968 bgt.w 0x39c62                                     |         goto label_31;
                                                                 |     }
                                                                 | label_8:
    0x0003996c ldr.w r1, [pc, 0x5fc]                             |     r1 = *(0x00039f6c);
    0x00039970 mov r0, r4                                        |     r0 = r4;
    0x00039972 add r1, pc                                        |     r1 += pc;
    0x00039974 blx 0xe3b0                                        |     r0 = fcn_0000e3b0 ();
    0x00039978 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0003997a bne.w 0x39b00                                     |         goto label_32;
                                                                 |     }
    0x0003997e movs r1, 0x2a                                     |     r1 = 0x2a;
    0x00039980 mov r0, r8                                        |     r0 = r8;
    0x00039982 blx 0xdcd4                                        |     r0 = fcn_0000dcd4 ();
    0x00039986 mov r6, r0                                        |     r6 = r0;
    0x00039988 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0003998a beq.w 0x39de2                                     |         goto label_33;
                                                                 |     }
    0x0003998e movs r1, 0x2f                                     |     r1 = 0x2f;
    0x00039990 adds r0, 1                                        |     r0++;
    0x00039992 blx 0xdcd4                                        |     r0 = fcn_0000dcd4 ();
                                                                 |     if (r0 == 0) {
    0x00039996 cbz r0, 0x399b2                                   |         goto label_34;
                                                                 |     }
    0x00039998 ldr.w r0, [pc, 0x5d4]                             |     r0 = *(0x00039f70);
    0x0003999c mov r1, r8                                        |     r1 = r8;
    0x0003999e add r0, pc                                        |     r0 += pc;
    0x000399a0 bl 0x43cd4                                        |     zbx_error ();
    0x000399a4 b 0x399c2                                         |     goto label_17;
                                                                 |     do {
    0x000399a6 ldrb r3, [r6, -0x1]                               |         r3 = *((r6 - 0x1));
    0x000399aa subs r7, r6, 1                                    |         r7 = r6 - 1;
    0x000399ac cmp r3, 0x2f                                      |         
                                                                 |         if (r3 == 0x2f) {
    0x000399ae beq 0x399fa                                       |             goto label_35;
                                                                 |         }
    0x000399b0 mov r6, r7                                        |         r6 = r7;
                                                                 | label_34:
    0x000399b2 cmp r8, r6                                        |         
    0x000399b4 bne 0x399a6                                       |         
                                                                 |     } while (r8 != r6);
    0x000399b6 ldr.w r0, [pc, 0x5bc]                             |     
    0x000399ba mov r1, r8                                        |     r1 = r8;
    0x000399bc add r0, pc                                        |     r0 = 0x73936;
    0x000399be bl 0x43cd4                                        |     zbx_error ();
                                                                 |     do {
                                                                 | label_17:
    0x000399c2 ldr r0, [sp, 0x14]                                |         r0 = var_14h;
    0x000399c4 blx 0xdc8c                                        |         fcn_0000dc8c ();
                                                                 | label_4:
    0x000399c8 ldr.w r3, [sp, 0x94c]                             |         r3 = *(arg_94ch);
    0x000399cc cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x000399ce beq.w 0x39f12                                     |             goto label_36;
                                                                 |         }
                                                                 | label_18:
    0x000399d2 mov.w r0, -1                                      |         r0 = -1;
                                                                 | label_2:
    0x000399d6 ldr.w r2, [pc, 0x5a0]                             |         r2 = *(0x00039f78);
    0x000399da ldr.w r3, [pc, 0x574]                             |         r3 = *(0x39f52);
    0x000399de add r2, pc                                        |         r2 += pc;
    0x000399e0 ldr r3, [r2, r3]                                  |         r3 = *((r2 + r3));
    0x000399e2 ldr r2, [r3]                                      |         r2 = *(0x39f52);
    0x000399e4 ldr.w r3, [sp, 0x91c]                             |         r3 = *(arg_91ch);
    0x000399e8 eors r2, r3                                       |         r2 ^= r3;
    0x000399ea mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x000399ee bne.w 0x39f18                                     |             goto label_37;
                                                                 |         }
    0x000399f2 addw sp, sp, 0x924                                |         __asm ("addw sp, var_0h");
    0x000399f6 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_35:
    0x000399fa ldr.w sl, [pc, 0x580]                             |         
    0x000399fe mov r3, r8                                        |         r3 = r8;
    0x00039a00 movs r2, 0                                        |         r2 = 0;
    0x00039a02 movs r1, 0xa9                                     |         r1 = 0xa9;
    0x00039a04 sub.w r7, r7, r8                                  |         r7 -= r8;
    0x00039a08 add sl, pc                                        |         sl = 0x7398a;
    0x00039a0a mov r0, sl                                        |         r0 = sl;
    0x00039a0c bl 0x40ed8                                        |         zbx_strdup2 ();
    0x00039a10 movs r2, 0                                        |         r2 = 0;
    0x00039a12 mov sb, r0                                        |         sb = r0;
    0x00039a14 mov r3, r6                                        |         r3 = r6;
    0x00039a16 movs r1, 0xac                                     |         r1 = 0xac;
    0x00039a18 strb.w r2, [sb, r7]                               |         *((sb + r7)) = r2;
    0x00039a1c mov r0, sl                                        |         r0 = sl;
    0x00039a1e bl 0x40ed8                                        |         zbx_strdup2 ();
    0x00039a22 ldr.w r1, [pc, 0x55c]                             |         r1 = *(0x00039f80);
    0x00039a26 mov r6, r0                                        |         r6 = r0;
    0x00039a28 mov r0, sb                                        |         r0 = sb;
    0x00039a2a add r1, pc                                        |         r1 += pc;
    0x00039a2c bl 0x444f4                                        |         zbx_rtrim ();
    0x00039a30 subs r0, 0                                        |         
    0x00039a32 it ne                                             |         
                                                                 |         if (r0 == 0) {
    0x00039a34 movne r0, 1                                       |             r0 = 1;
                                                                 |         }
    0x00039a36 cmp r6, 0                                         |         
    0x00039a38 it ne                                             |         
                                                                 |         if (r6 == 0) {
    0x00039a3a movne r0, 0                                       |             r0 = 0;
                                                                 |         }
    0x00039a3c cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00039a3e bne.w 0x39e00                                     |             goto label_38;
                                                                 |         }
                                                                 | label_15:
    0x00039a42 ldrb.w r3, [sb]                                   |         r3 = *(sb);
                                                                 |         if (r3 == 0) {
    0x00039a46 cbnz r3, 0x39a52                                  |             
    0x00039a48 ldrb r3, [r5, 1]                                  |             r3 = *((r5 + 1));
    0x00039a4a cmp r3, 0x2f                                      |             
    0x00039a4c it eq                                             |             
                                                                 |             if (r3 != 0x2f) {
    0x00039a4e strheq r3, [sb]                                   |                 __asm ("strheq r3, [sb]");
                                                                 |                 goto label_39;
                                                                 |             }
                                                                 |         }
                                                                 | label_39:
    0x00039a52 add r7, sp, 0x48                                  |         r7 += arg_48h;
    0x00039a54 mov r0, sb                                        |         r0 = sb;
    0x00039a56 mov r1, r7                                        |         r1 = r7;
    0x00039a58 blx 0xdec0                                        |         r0 = fcn_0000dec0 ();
    0x00039a5c mov r5, r0                                        |         r5 = r0;
    0x00039a5e cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00039a60 bne.w 0x39ed8                                     |             goto label_40;
                                                                 |         }
    0x00039a64 ldr r3, [r7, 0x10]                                |         r3 = *((r7 + 0x10));
    0x00039a66 and r3, r3, 0xf000                                |         r3 &= 0xf000;
    0x00039a6a cmp.w r3, 0x4000                                  |         
                                                                 |         if (r3 == 0x4000) {
    0x00039a6e beq.w 0x39c72                                     |             goto label_41;
                                                                 |         }
    0x00039a72 cmp r6, 0                                         |         
                                                                 |         if (r6 != 0) {
    0x00039a74 bne.w 0x39e82                                     |             goto label_42;
                                                                 |         }
    0x00039a78 ldr.w r2, [sp, 0x94c]                             |         r2 = *(arg_94ch);
    0x00039a7c mov r3, r0                                        |         r3 = r0;
    0x00039a7e ldr r1, [sp, 0x18]                                |         r1 = var_18h;
    0x00039a80 mov r0, sb                                        |         r0 = sb;
    0x00039a82 str r2, [sp, 4]                                   |         var_4h = r2;
    0x00039a84 ldr.w r2, [sp, 0x948]                             |         r2 = *(arg_948h);
    0x00039a88 str r2, [sp]                                      |         *(sp) = r2;
    0x00039a8a ldr r2, [sp, 0x2c]                                |         r2 = *(arg_2ch);
    0x00039a8c bl 0x3986c                                        |         r0 = fcn_0003986c (r0, r1, r2, r3, r4, r5, r6);
    0x00039a90 mov r5, r0                                        |         r5 = r0;
                                                                 | label_13:
    0x00039a92 mov r0, sb                                        |         r0 = sb;
    0x00039a94 blx 0xde30                                        |         fcn_0000de30 ();
    0x00039a98 adds r5, 1                                        |         r5++;
    0x00039a9a beq 0x399c2                                       |         
                                                                 |     } while (r5 == 1);
                                                                 | label_3:
    0x00039a9c ldr r3, [sp, 8]                                   |     r3 = var_8h;
    0x00039a9e adds r3, 1                                        |     r3++;
    0x00039aa0 str r3, [sp, 8]                                   |     var_8h = r3;
    0x00039aa2 b 0x398de                                         |     goto label_0;
                                                                 | label_27:
    0x00039aa4 ldr r3, [sp, 0x2c]                                |     r3 = *(arg_2ch);
    0x00039aa6 ldr r0, [sp, 0x14]                                |     r0 = var_14h;
    0x00039aa8 ldr r7, [sp, 0x30]                                |     r7 = *(arg_30h);
    0x00039aaa str r3, [sp, 8]                                   |     var_8h = r3;
    0x00039aac blx 0xdc8c                                        |     fcn_0000dc8c ();
    0x00039ab0 ldr r3, [sp, 8]                                   |     r3 = var_8h;
                                                                 | label_25:
    0x00039ab2 cmp r3, 1                                         |     
                                                                 |     if (r3 != 1) {
    0x00039ab4 bne 0x39afc                                       |         goto label_22;
                                                                 |     }
    0x00039ab6 ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x00039ab8 ldr r1, [r3]                                      |     r1 = *(r3);
                                                                 |     if (r1 != 0) {
    0x00039aba cbnz r1, 0x39ace                                  |         goto label_43;
                                                                 |     }
    0x00039abc b 0x39afc                                         |     goto label_22;
                                                                 | label_1:
    0x00039abe ldr r2, [r3, 4]                                   |     r2 = *((r3 + 4));
    0x00039ac0 ldr r2, [r2]                                      |     r2 = *(r2);
    0x00039ac2 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00039ac4 beq.w 0x39daa                                     |         goto label_44;
                                                                 |     }
                                                                 |     do {
    0x00039ac8 ldr r1, [r3, 0x20]!                               |         r1 = *((r3 += 0x20));
                                                                 |         if (r1 == 0) {
    0x00039acc cbz r1, 0x39afc                                   |             goto label_22;
                                                                 |         }
                                                                 | label_43:
    0x00039ace ldr r2, [r3, 0xc]                                 |         r2 = *((r3 + 0xc));
    0x00039ad0 cmp r2, 1                                         |         
    0x00039ad2 bne 0x39ac8                                       |         
                                                                 |     } while (r2 != 1);
    0x00039ad4 ldr r2, [r3, 8]                                   |     r2 = *((r3 + 8));
    0x00039ad6 cmp r2, 1                                         |     
                                                                 |     if (r2 == 1) {
    0x00039ad8 beq 0x39abe                                       |         goto label_1;
                                                                 |     }
    0x00039ada cmp r2, 4                                         |     
                                                                 |     if (r2 == 4) {
    0x00039adc beq 0x39abe                                       |         goto label_1;
                                                                 |     }
    0x00039ade cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00039ae0 beq 0x39abe                                       |         goto label_1;
                                                                 |     }
    0x00039ae2 ldr.w r3, [pc, 0x4a0]                             |     r3 = *(0x00039f84);
    0x00039ae6 mov.w r2, 0x210                                   |     r2 = 0x210;
    0x00039aea ldr.w r1, [pc, 0x49c]                             |     
    0x00039aee ldr.w r0, [pc, 0x49c]                             |     r0 = *(0x00039f8c);
    0x00039af2 add r3, pc                                        |     r3 += pc;
    0x00039af4 add r1, pc                                        |     r1 = 0x73a82;
    0x00039af6 add r0, pc                                        |     r0 += pc;
    0x00039af8 blx 0xdde4                                        |     shmdt ();
                                                                 | label_22:
    0x00039afc movs r0, 0                                        |     r0 = 0;
    0x00039afe b 0x399d6                                         |     goto label_2;
                                                                 | label_32:
    0x00039b00 ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x00039b02 ldr r0, [r3]                                      |     r0 = *(r3);
    0x00039b04 movs r3, 1                                        |     r3 = 1;
                                                                 |     if (r0 == 0) {
    0x00039b06 cbz r0, 0x39b6a                                   |         goto label_45;
                                                                 |     }
    0x00039b08 ldr.w fp, [pc, 0x484]                             |     fp = *(0x00039f90);
    0x00039b0c ldr.w sb, [pc, 0x484]                             |     
    0x00039b10 ldr.w sl, [pc, 0x484]                             |     sl = *(0x00039f98);
    0x00039b14 ldr r5, [sp, 0x18]                                |     r5 = var_18h;
    0x00039b16 add fp, pc                                        |     
    0x00039b18 add sb, pc                                        |     sb = 0x73ab0;
    0x00039b1a add sl, pc                                        |     sl += pc;
                                                                 |     do {
    0x00039b1c mov r1, r4                                        |         r1 = r4;
    0x00039b1e blx 0xe3b0                                        |         r0 = fcn_0000e3b0 ();
                                                                 |         if (r0 == 0) {
    0x00039b22 cbnz r0, 0x39b5a                                  |             
    0x00039b24 ldr r3, [r7]                                      |             r3 = *(r7);
    0x00039b26 cmp r3, 3                                         |             
                                                                 |             if (r3 > 3) {
    0x00039b28 bgt.w 0x39c52                                     |                 goto label_46;
                                                                 |             }
                                                                 | label_7:
    0x00039b2c ldr r3, [r5, 8]                                   |             r3 = *((r5 + 8));
    0x00039b2e cmp r3, 5                                         |             
                                                                 |             if (r3 > 5) {
    0x00039b30 bhi.w 0x39f38                                     |                 goto label_47;
                                                                 |             }
                                                                 |             /* switch table (6 cases) at 0x39b38 */
    0x00039b34 tbb [pc, r3]                                      |             __asm ("tbb [0x00039b3c]");
    0x00039b3e movs r1, 0x2c                                     |             r1 = 0x2c;
    0x00039b40 mov r0, r8                                        |             r0 = r8;
    0x00039b42 bl 0x461bc                                        |             zbx_trim_str_list ();
    0x00039b46 ldr r6, [r5, 4]                                   |             r6 = *((r5 + 4));
    0x00039b48 mov r3, r8                                        |             r3 = r8;
    0x00039b4a mov.w r1, 0x1d4                                   |             r1 = 0x1d4;
    0x00039b4e mov r0, sb                                        |             r0 = sb;
    0x00039b50 ldr r2, [r6]                                      |             r2 = *(r6);
    0x00039b52 bl 0x40ed8                                        |             zbx_strdup2 ();
    0x00039b56 str r0, [r6]                                      |             *(r6) = r0;
                                                                 | label_5:
    0x00039b58 movs r6, 1                                        |             r6 = 1;
                                                                 |         }
    0x00039b5a ldr r0, [r5, 0x20]!                               |         r0 = *((r5 += 0x20));
    0x00039b5e cmp r0, 0                                         |         
    0x00039b60 bne 0x39b1c                                       |         
                                                                 |     } while (r0 != 0);
    0x00039b62 eor r3, r6, 1                                     |     r3 = r6 ^ 1;
    0x00039b66 and r3, r3, 1                                     |     r3 &= 1;
                                                                 | label_45:
    0x00039b6a ldr.w r2, [sp, 0x948]                             |     r2 = *(arg_948h);
    0x00039b6e cmp r2, 1                                         |     
    0x00039b70 ite ne                                            |     
                                                                 |     if (r2 == 1) {
    0x00039b72 movne r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (r2 != 1) {
    0x00039b74 andeq r3, r3, 1                                   |         r3 &= 1;
                                                                 |     }
    0x00039b78 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00039b7a beq 0x39a9c                                       |         goto label_3;
                                                                 |     }
    0x00039b7c ldr r0, [sp, 0x14]                                |     r0 = var_14h;
    0x00039b7e ldr r7, [sp, 0x30]                                |     r7 = *(arg_30h);
    0x00039b80 blx 0xdc8c                                        |     fcn_0000dc8c ();
    0x00039b84 ldr.w r0, [pc, 0x414]                             |     r0 = *(0x00039f9c);
    0x00039b88 mov r1, r4                                        |     r1 = r4;
    0x00039b8a ldr r3, [sp, 8]                                   |     r3 = var_8h;
    0x00039b8c mov r2, r7                                        |     r2 = r7;
    0x00039b8e add r0, pc                                        |     r0 += pc;
    0x00039b90 bl 0x43cd4                                        |     zbx_error ();
    0x00039b94 b 0x399c8                                         |     goto label_4;
    0x00039b96 add r6, sp, 0x40                                  |     r6 += arg_40h;
    0x00039b98 mov r1, sl                                        |     r1 = sl;
    0x00039b9a mov r2, r6                                        |     r2 = r6;
    0x00039b9c mov r0, r8                                        |     r0 = r8;
    0x00039b9e bl 0x42be8                                        |     str2uint64 ();
    0x00039ba2 adds r0, 1                                        |     r0++;
                                                                 |     if (r0 == 1) {
    0x00039ba4 beq 0x39bea                                       |         goto label_6;
                                                                 |     }
    0x00039ba6 ldrd r2, r3, [sp, 0x40]                           |     __asm ("ldrd r2, r3, [arg_40h]");
    0x00039baa ldrd r0, r1, [r5, 0x10]                           |     __asm ("ldrd r0, r1, [r5, 0x10]");
    0x00039bae cmp r2, r0                                        |     
    0x00039bb0 sbcs.w r1, r3, r1                                 |     __asm ("sbcs.w r1, r3, r1");
                                                                 |     if (r2 <= r0) {
    0x00039bb4 blo 0x39bea                                       |         goto label_6;
                                                                 |     }
    0x00039bb6 ldr r1, [r5, 0x18]                                |     r1 = *((r5 + 0x18));
    0x00039bb8 ldr r0, [r5, 0x1c]                                |     r0 = *((r5 + 0x1c));
    0x00039bba cmp r1, r2                                        |     
    0x00039bbc sbcs.w r3, r0, r3                                 |     __asm ("sbcs.w r3, r0, r3");
    0x00039bc0 ite lo                                            |     
                                                                 |     if (r1 >= r2) {
    0x00039bc2 movlo r3, 1                                       |         r3 = 1;
                                                                 |     }
                                                                 |     if (r1 < r2) {
    0x00039bc4 movhs r3, 0                                       |         r3 = 0;
                                                                 |     }
    0x00039bc6 orrs r1, r0                                       |     r1 |= r0;
    0x00039bc8 and r3, r3, 1                                     |     r3 &= 1;
    0x00039bcc it eq                                             |     
                                                                 |     if (r1 != r0) {
    0x00039bce moveq r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (r3 != 0) {
    0x00039bd0 cbnz r3, 0x39bea                                  |         goto label_6;
                                                                 |     }
    0x00039bd2 ldr r3, [r5, 4]                                   |     r3 = *((r5 + 4));
    0x00039bd4 str r2, [r3]                                      |     *(r3) = r2;
    0x00039bd6 b 0x39b58                                         |     goto label_5;
    0x00039bd8 ldr r3, [r5, 4]                                   |     r3 = *((r5 + 4));
    0x00039bda cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00039bdc beq 0x39b58                                       |         goto label_5;
                                                                 |     }
    0x00039bde ldr r3, [r3]                                      |     r3 = *(r3);
    0x00039be0 mov r1, r5                                        |     r1 = r5;
    0x00039be2 mov r0, r8                                        |     r0 = r8;
    0x00039be4 blx r3                                            |     r0 = uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
    0x00039be6 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00039be8 beq 0x39b58                                       |         goto label_5;
                                                                 |     }
                                                                 |     do {
                                                                 | label_6:
    0x00039bea ldr r0, [sp, 0x14]                                |         r0 = var_14h;
    0x00039bec ldr r7, [sp, 0x30]                                |         r7 = *(arg_30h);
    0x00039bee blx 0xdc8c                                        |         fcn_0000dc8c ();
    0x00039bf2 ldr r0, [pc, 0x3ac]                               |         
    0x00039bf4 ldr r3, [sp, 8]                                   |         r3 = var_8h;
    0x00039bf6 mov r2, r7                                        |         r2 = r7;
    0x00039bf8 ldr r1, [r5]                                      |         r1 = *(r5);
    0x00039bfa add r0, pc                                        |         r0 = 0x73ba0;
    0x00039bfc bl 0x43cd4                                        |         zbx_error ();
    0x00039c00 b 0x399c8                                         |         goto label_4;
    0x00039c02 add r6, sp, 0x40                                  |         r6 += arg_40h;
    0x00039c04 mov r1, fp                                        |         r1 = fp;
    0x00039c06 mov r2, r6                                        |         r2 = r6;
    0x00039c08 mov r0, r8                                        |         r0 = r8;
    0x00039c0a bl 0x42be8                                        |         str2uint64 ();
    0x00039c0e adds r0, 1                                        |         r0++;
    0x00039c10 beq 0x39bea                                       |         
                                                                 |     } while (r0 == 1);
    0x00039c12 ldrd r2, r3, [sp, 0x40]                           |     __asm ("ldrd r2, r3, [arg_40h]");
    0x00039c16 ldrd r0, r1, [r5, 0x10]                           |     __asm ("ldrd r0, r1, [r5, 0x10]");
    0x00039c1a cmp r2, r0                                        |     
    0x00039c1c sbcs.w r1, r3, r1                                 |     __asm ("sbcs.w r1, r3, r1");
                                                                 |     if (r2 <= r0) {
    0x00039c20 blo 0x39bea                                       |         goto label_6;
                                                                 |     }
    0x00039c22 ldr r0, [r5, 0x18]                                |     r0 = *((r5 + 0x18));
    0x00039c24 ldr r6, [r5, 0x1c]                                |     r6 = *((r5 + 0x1c));
    0x00039c26 cmp r0, r2                                        |     
    0x00039c28 sbcs.w r1, r6, r3                                 |     __asm ("sbcs.w r1, r6, r3");
    0x00039c2c ite lo                                            |     
                                                                 |     if (r0 >= r2) {
    0x00039c2e movlo r1, 1                                       |         r1 = 1;
                                                                 |     }
                                                                 |     if (r0 < r2) {
    0x00039c30 movhs r1, 0                                       |         r1 = 0;
                                                                 |     }
    0x00039c32 orrs r0, r6                                       |     r0 |= r6;
    0x00039c34 and r1, r1, 1                                     |     r1 &= 1;
    0x00039c38 it eq                                             |     
                                                                 |     if (r0 != r6) {
    0x00039c3a moveq r1, 0                                       |         r1 = 0;
                                                                 |     }
    0x00039c3c cmp r1, 0                                         |     
                                                                 |     if (r1 != 0) {
    0x00039c3e bne 0x39bea                                       |         goto label_6;
                                                                 |     }
    0x00039c40 ldr r1, [r5, 4]                                   |     r1 = *((r5 + 4));
    0x00039c42 strd r2, r3, [r1]                                 |     __asm ("strd r2, r3, [r1]");
    0x00039c46 b 0x39b58                                         |     goto label_5;
    0x00039c48 ldr r0, [r5, 4]                                   |     r0 = *((r5 + 4));
    0x00039c4a mov r1, r8                                        |     r1 = r8;
    0x00039c4c bl 0x45fdc                                        |     zbx_strarr_add ();
    0x00039c50 b 0x39b58                                         |     goto label_5;
                                                                 | label_46:
    0x00039c52 ldr r1, [pc, 0x350]                               |     
    0x00039c54 mov r3, r8                                        |     r3 = r8;
    0x00039c56 mov r2, r4                                        |     r2 = r4;
    0x00039c58 movs r0, 4                                        |     r0 = 4;
    0x00039c5a add r1, pc                                        |     r1 = 0x73c04;
    0x00039c5c bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x00039c60 b 0x39b2c                                         |     goto label_7;
                                                                 | label_31:
    0x00039c62 ldr r1, [pc, 0x344]                               |     
    0x00039c64 mov r3, r8                                        |     r3 = r8;
    0x00039c66 mov r2, r4                                        |     r2 = r4;
    0x00039c68 movs r0, 4                                        |     r0 = 4;
    0x00039c6a add r1, pc                                        |     r1 = 0x73c18;
    0x00039c6c bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x00039c70 b 0x3996c                                         |     goto label_8;
                                                                 | label_41:
    0x00039c72 mov r0, sb                                        |     r0 = sb;
    0x00039c74 blx 0xdbdc                                        |     fcn_0000dbdc ();
    0x00039c78 str r0, [sp, 0x24]                                |     *(arg_24h) = r0;
    0x00039c7a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00039c7c beq.w 0x39f1c                                     |         goto label_48;
                                                                 |     }
    0x00039c80 ldr r3, [pc, 0x328]                               |     
    0x00039c82 mov sl, r5                                        |     sl = r5;
    0x00039c84 add.w r8, sp, 0xb0                                |     r8 += arg_b0h;
    0x00039c88 str r5, [sp, 0x3c]                                |     *(arg_3ch) = r5;
    0x00039c8a add r3, pc                                        |     r3 = 0x73c3a;
    0x00039c8c str r3, [sp, 0x28]                                |     *(arg_28h) = r3;
                                                                 |     do {
                                                                 | label_9:
    0x00039c8e ldr r0, [sp, 0x24]                                |         r0 = *(arg_24h);
    0x00039c90 blx 0xe28c                                        |         r0 = fcn_0000e28c ();
    0x00039c94 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00039c96 beq 0x39d84                                       |             goto label_49;
                                                                 |         }
    0x00039c98 add.w fp, r0, 0x13                                |         
    0x00039c9c ldr r1, [sp, 0x28]                                |         r1 = *(arg_28h);
    0x00039c9e mov r0, sl                                        |         r0 = sl;
    0x00039ca0 mov r3, fp                                        |         r3 = fp;
    0x00039ca2 mov r2, sb                                        |         r2 = sb;
    0x00039ca4 bl 0x44820                                        |         zbx_dsprintf ()
    0x00039ca8 mov r1, r8                                        |         r1 = r8;
    0x00039caa mov sl, r0                                        |         sl = r0;
    0x00039cac blx 0xdec0                                        |         r0 = fcn_0000dec0 ();
    0x00039cb0 cmp r0, 0                                         |         
    0x00039cb2 bne 0x39c8e                                       |         
                                                                 |     } while (r0 != 0);
    0x00039cb4 ldr.w r3, [r8, 0x10]                              |     r3 = *((r8 + 0x10));
    0x00039cb8 and r3, r3, 0xf000                                |     r3 &= 0xf000;
    0x00039cbc cmp.w r3, 0x8000                                  |     
                                                                 |     if (r3 != fcn.00000004) {
    0x00039cc0 bne 0x39c8e                                       |         goto label_9;
                                                                 |     }
                                                                 |     if (r6 == 0) {
    0x00039cc2 cbz r6, 0x39d26                                   |         goto label_14;
                                                                 |     }
    0x00039cc4 ldrb r2, [r6]                                     |     r2 = *(r6);
                                                                 |     if (r2 == 0) {
    0x00039cc6 cbz r2, 0x39d1e                                   |         goto label_16;
                                                                 |     }
    0x00039cc8 mov r7, r6                                        |     r7 = r6;
    0x00039cca str r4, [sp, 0x34]                                |     *(arg_34h) = r4;
    0x00039ccc mov r4, r6                                        |     r4 = r6;
    0x00039cce mov r6, fp                                        |     r6 = fp;
    0x00039cd0 str r0, [sp, 0x38]                                |     *(arg_38h) = r0;
                                                                 | label_12:
    0x00039cd2 cmp r2, 0x2a                                      |     
                                                                 |     if (r2 == 0x2a) {
    0x00039cd4 beq 0x39d48                                       |         goto label_50;
                                                                 |     }
                                                                 | label_10:
    0x00039cd6 mov fp, r7                                        |     
                                                                 |     do {
    0x00039cd8 ldrb r5, [fp, 1]!                                 |         r5 = *(arg_1h);
    0x00039cdc cmp r5, 0                                         |         
    0x00039cde it ne                                             |         
                                                                 |         if (r5 != 0) {
    0x00039ce0 cmpne r5, 0x2a                                    |             __asm ("cmpne r5, 0x2a");
                                                                 |         }
    0x00039ce2 bne 0x39cd8                                       |         
                                                                 |     } while (r5 != 0);
    0x00039ce4 cmp r7, r4                                        |     
                                                                 |     if (r7 != r4) {
    0x00039ce6 bne 0x39d4c                                       |         goto label_51;
                                                                 |     }
    0x00039ce8 sub.w r7, fp, r4                                  |     r7 = fp - r4;
    0x00039cec mov r1, r4                                        |     r1 = r4;
    0x00039cee mov r2, r7                                        |     r2 = r7;
    0x00039cf0 mov r0, r6                                        |     r0 = r6;
    0x00039cf2 blx 0xe2c8                                        |     fcn_0000e2c8 ();
    0x00039cf4 invalid                                           |     
                                                                 |     if (r7 != r4) {
    0x00039cf8 bne 0x39d7e                                       |         goto label_52;
                                                                 |     }
    0x00039cfa add r6, r7                                        |     r6 += r7;
    0x00039cfc cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00039cfe beq.w 0x39e14                                     |         goto label_53;
                                                                 |     }
                                                                 | label_11:
    0x00039d02 mov r7, fp                                        |     r7 = fp;
                                                                 |     do {
    0x00039d04 ldrb r2, [r7, 1]!                                 |         r2 = *((r7 += 1));
    0x00039d08 cmp r2, 0x2a                                      |         
    0x00039d0a beq 0x39d04                                       |         
                                                                 |     } while (r2 == 0x2a);
    0x00039d0c cmp r2, 0                                         |     
                                                                 |     if (r2 != 0) {
    0x00039d0e bne 0x39cd6                                       |         goto label_10;
                                                                 |     }
    0x00039d10 mov r5, r7                                        |     r5 = r7;
    0x00039d12 mov fp, r6                                        |     
    0x00039d14 mov r6, r4                                        |     r6 = r4;
    0x00039d16 ldrd r4, r7, [sp, 0x34]                           |     __asm ("ldrd r4, r7, [arg_34h]");
    0x00039d1a cmp r5, r6                                        |     
                                                                 |     if (r5 != r6) {
    0x00039d1c bne 0x39db6                                       |         goto label_54;
                                                                 |     }
                                                                 | label_16:
    0x00039d1e ldrb.w r3, [fp]                                   |     r3 = *(fp);
    0x00039d22 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00039d24 bne 0x39c8e                                       |         goto label_9;
                                                                 |     }
                                                                 | label_14:
    0x00039d26 ldr.w r3, [sp, 0x94c]                             |     r3 = *(arg_94ch);
    0x00039d2a mov r0, sl                                        |     r0 = sl;
    0x00039d2c ldr r2, [sp, 0x2c]                                |     r2 = *(arg_2ch);
    0x00039d2e ldr r1, [sp, 0x18]                                |     r1 = var_18h;
    0x00039d30 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00039d32 ldr.w r3, [sp, 0x948]                             |     r3 = *(arg_948h);
    0x00039d36 str r3, [sp]                                      |     *(sp) = r3;
    0x00039d38 movs r3, 0                                        |     r3 = 0;
    0x00039d3a bl 0x3986c                                        |     r0 = fcn_0003986c (r0, r1, r2, r3, r4, r5, r6);
    0x00039d3e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00039d40 beq 0x39c8e                                       |         goto label_9;
                                                                 |     }
    0x00039d42 mov.w r5, -1                                      |     r5 = -1;
    0x00039d46 b 0x39d86                                         |     goto label_55;
                                                                 | label_50:
    0x00039d48 mov fp, r7                                        |     
    0x00039d4a b 0x39d02                                         |     goto label_11;
                                                                 | label_51:
    0x00039d4c ldrb r2, [r6]                                     |     r2 = *(r6);
    0x00039d4e cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00039d50 beq.w 0x39eca                                     |         goto label_56;
                                                                 |     }
                                                                 |     if (r2 == 0) {
    0x00039d54 cbz r2, 0x39d7e                                   |         goto label_52;
                                                                 |     }
    0x00039d56 sub.w r5, fp, r7                                  |     r5 = fp - r7;
    0x00039d5a b 0x39d62                                         |     
                                                                 |     while (r0 != 0) {
    0x00039d5c ldrb r3, [r6, 1]!                                 |         r3 = *((r6 += 1));
                                                                 |         if (r3 == 0) {
    0x00039d60 cbz r3, 0x39d7e                                   |             goto label_52;
                                                                 |         }
    0x00039d62 mov r2, r5                                        |         r2 = r5;
    0x00039d64 mov r1, r7                                        |         r1 = r7;
    0x00039d66 mov r0, r6                                        |         r0 = r6;
    0x00039d68 blx 0xe2c8                                        |         r0 = fcn_0000e2c8 ();
    0x00039d6c cmp r0, 0                                         |         
    0x00039d6e bne 0x39d5c                                       |         
                                                                 |     }
    0x00039d70 ldrb.w r2, [fp]                                   |     r2 = *(fp);
    0x00039d74 add r6, r5                                        |     r6 += r5;
    0x00039d76 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00039d78 beq 0x39e14                                       |         goto label_53;
                                                                 |     }
    0x00039d7a mov r7, fp                                        |     r7 = fp;
    0x00039d7c b 0x39cd2                                         |     goto label_12;
                                                                 | label_52:
    0x00039d7e mov r6, r4                                        |     r6 = r4;
    0x00039d80 ldr r4, [sp, 0x34]                                |     r4 = *(arg_34h);
    0x00039d82 b 0x39c8e                                         |     goto label_9;
                                                                 | label_49:
    0x00039d84 ldr r5, [sp, 0x3c]                                |     r5 = *(arg_3ch);
                                                                 | label_55:
    0x00039d86 ldr r0, [sp, 0x24]                                |     r0 = *(arg_24h);
    0x00039d88 blx 0xe0d0                                        |     r0 = fcn_0000e0d0 ();
    0x00039d8c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00039d8e bne 0x39e1c                                       |         goto label_57;
                                                                 |     }
    0x00039d90 cmp.w sl, 0                                       |     
                                                                 |     if (sl != 0) {
    0x00039d94 beq 0x39d9c                                       |         
    0x00039d96 mov r0, sl                                        |         r0 = sl;
    0x00039d98 blx 0xde30                                        |         fcn_0000de30 ();
                                                                 |     }
    0x00039d9c cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x00039d9e beq.w 0x39a92                                     |         goto label_13;
                                                                 |     }
    0x00039da2 mov r0, r6                                        |     r0 = r6;
    0x00039da4 blx 0xde30                                        |     fcn_0000de30 ();
    0x00039da8 b 0x39a92                                         |     goto label_13;
                                                                 | label_44:
    0x00039daa ldr r0, [pc, 0x204]                               |     
    0x00039dac mov r2, r7                                        |     r2 = r7;
    0x00039dae add r0, pc                                        |     r0 = 0x73d64;
    0x00039db0 bl 0x43cd4                                        |     zbx_error ();
    0x00039db4 b 0x399c8                                         |     goto label_4;
                                                                 | label_54:
    0x00039db6 ldrb.w r2, [fp]                                   |     r2 = *(fp);
    0x00039dba mov r3, r5                                        |     r3 = r5;
                                                                 | label_19:
    0x00039dbc mov r0, fp                                        |     r0 = fp;
                                                                 |     if (r2 == 0) {
    0x00039dbe cbz r2, 0x39dcc                                   |         goto label_58;
                                                                 |     }
                                                                 |     do {
    0x00039dc0 ldrb r2, [r0, 1]!                                 |         r2 = *((r0 += 1));
    0x00039dc4 cmp r2, 0                                         |         
    0x00039dc6 bne 0x39dc0                                       |         
                                                                 |     } while (r2 != 0);
    0x00039dc8 sub.w r7, r0, fp                                  |     r7 = r0 - fp;
                                                                 | label_58:
    0x00039dcc subs r3, r3, r5                                   |     r3 -= r5;
    0x00039dce cmp r3, r7                                        |     
                                                                 |     if (r3 > r7) {
    0x00039dd0 bgt.w 0x39c8e                                     |         goto label_9;
                                                                 |     }
    0x00039dd4 subs r0, r0, r3                                   |     r0 -= r3;
    0x00039dd6 mov r1, r5                                        |     r1 = r5;
    0x00039dd8 blx 0xe3b0                                        |     r0 = fcn_0000e3b0 ();
    0x00039ddc cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00039dde beq 0x39d26                                       |         goto label_14;
                                                                 |     }
    0x00039de0 b 0x39c8e                                         |     goto label_9;
                                                                 | label_33:
    0x00039de2 mov r2, r0                                        |     r2 = r0;
    0x00039de4 ldr r0, [pc, 0x1cc]                               |     
    0x00039de6 movs r1, 0x91                                     |     r1 = 0x91;
    0x00039de8 mov r3, r8                                        |     r3 = r8;
    0x00039dea add r0, pc                                        |     r0 = 0x73da2;
    0x00039dec bl 0x40ed8                                        |     zbx_strdup2 ();
    0x00039df0 ldr r1, [pc, 0x1c4]                               |     
    0x00039df2 mov sb, r0                                        |     sb = r0;
    0x00039df4 add r1, pc                                        |     r1 = 0x73db0;
    0x00039df6 bl 0x444f4                                        |     r0 = zbx_rtrim ();
    0x00039dfa cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00039dfc beq.w 0x39a42                                     |         goto label_15;
                                                                 |     }
                                                                 | label_38:
    0x00039e00 ldr r3, [pc, 0x1b8]                               |     
    0x00039e02 movs r2, 0                                        |     r2 = 0;
    0x00039e04 ldr r0, [pc, 0x1b8]                               |     
    0x00039e06 movs r1, 0xb9                                     |     r1 = 0xb9;
    0x00039e08 add r3, pc                                        |     r3 = 0x73dc8;
    0x00039e0a add r0, pc                                        |     r0 = 0x73dce;
    0x00039e0c bl 0x40ed8                                        |     r0 = zbx_strdup2 ();
    0x00039e10 mov r6, r0                                        |     r6 = r0;
    0x00039e12 b 0x39a42                                         |     goto label_15;
                                                                 | label_53:
    0x00039e14 mov fp, r6                                        |     
    0x00039e16 mov r6, r4                                        |     r6 = r4;
    0x00039e18 ldr r4, [sp, 0x34]                                |     r4 = *(arg_34h);
    0x00039e1a b 0x39d1e                                         |     goto label_16;
                                                                 | label_57:
    0x00039e1c blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x00039e20 ldr r0, [r0]                                      |     r0 = *(r0);
    0x00039e22 bl 0x30b74                                        |     r0 = zbx_strerror ();
    0x00039e26 mov r2, r0                                        |     r2 = r0;
    0x00039e28 ldr r0, [pc, 0x198]                               |     
    0x00039e2a mov r1, sb                                        |     r1 = sb;
    0x00039e2c add r0, pc                                        |     r0 = 0x73df4;
    0x00039e2e bl 0x43cd4                                        |     zbx_error ();
    0x00039e32 cmp.w sl, 0                                       |     
                                                                 |     if (sl == 0) {
    0x00039e36 beq 0x39eb2                                       |         goto label_59;
                                                                 |     }
    0x00039e38 mov r0, sl                                        |     r0 = sl;
    0x00039e3a blx 0xde30                                        |     fcn_0000de30 ();
    0x00039e3e cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x00039e40 beq 0x39eb6                                       |         goto label_21;
                                                                 |     }
                                                                 |     do {
                                                                 | label_20:
    0x00039e42 mov r0, r6                                        |         r0 = r6;
    0x00039e44 blx 0xde30                                        |         fcn_0000de30 ();
    0x00039e48 mov r0, sb                                        |         r0 = sb;
    0x00039e4a blx 0xde30                                        |         fcn_0000de30 ();
    0x00039e4e b 0x399c2                                         |         goto label_17;
                                                                 | label_28:
    0x00039e50 ldr r0, [sp, 0x14]                                |         r0 = var_14h;
    0x00039e52 ldr r7, [sp, 0x30]                                |         r7 = *(arg_30h);
    0x00039e54 blx 0xdc8c                                        |         fcn_0000dc8c ();
    0x00039e58 ldr r0, [pc, 0x16c]                               |         
    0x00039e5a mov.w r2, 0x800                                   |         r2 = 0x800;
    0x00039e5e ldr r1, [sp, 8]                                   |         r1 = var_8h;
    0x00039e60 mov r3, r7                                        |         r3 = r7;
    0x00039e62 add r0, pc                                        |         r0 = 0x73e2e;
    0x00039e64 bl 0x43cd4                                        |         zbx_error ();
    0x00039e68 b 0x399c8                                         |         goto label_4;
                                                                 | label_29:
    0x00039e6a ldr r0, [sp, 0x14]                                |         r0 = var_14h;
    0x00039e6c ldr r7, [sp, 0x30]                                |         r7 = *(arg_30h);
    0x00039e6e blx 0xdc8c                                        |         fcn_0000dc8c ();
    0x00039e72 ldr r0, [pc, 0x158]                               |         
    0x00039e74 mov r2, r4                                        |         r2 = r4;
    0x00039e76 ldr r1, [sp, 8]                                   |         r1 = var_8h;
    0x00039e78 mov r3, r7                                        |         r3 = r7;
    0x00039e7a add r0, pc                                        |         r0 = 0x73e4c;
    0x00039e7c bl 0x43cd4                                        |         zbx_error ();
    0x00039e80 b 0x399c8                                         |         goto label_4;
                                                                 | label_42:
    0x00039e82 ldr r0, [pc, 0x14c]                               |         
    0x00039e84 mov r1, r8                                        |         r1 = r8;
    0x00039e86 add r0, pc                                        |         r0 = 0x73e5c;
    0x00039e88 bl 0x43cd4                                        |         zbx_error ();
    0x00039e8c mov r0, r6                                        |         r0 = r6;
    0x00039e8e blx 0xde30                                        |         fcn_0000de30 ();
    0x00039e92 mov r0, sb                                        |         r0 = sb;
    0x00039e94 blx 0xde30                                        |         fcn_0000de30 ();
    0x00039e98 b 0x399c2                                         |         goto label_17;
                                                                 | label_30:
    0x00039e9a ldr r0, [sp, 0x14]                                |         r0 = var_14h;
    0x00039e9c ldr r7, [sp, 0x30]                                |         r7 = *(arg_30h);
    0x00039e9e blx 0xdc8c                                        |         fcn_0000dc8c ();
    0x00039ea2 ldr r0, [pc, 0x130]                               |         
    0x00039ea4 mov r1, r4                                        |         r1 = r4;
    0x00039ea6 ldr r3, [sp, 8]                                   |         r3 = var_8h;
    0x00039ea8 mov r2, r7                                        |         r2 = r7;
    0x00039eaa add r0, pc                                        |         r0 = 0x73e84;
    0x00039eac bl 0x43cd4                                        |         zbx_error ();
    0x00039eb0 b 0x399c8                                         |         goto label_4;
                                                                 | label_59:
    0x00039eb2 cmp r6, 0                                         |         
    0x00039eb4 bne 0x39e42                                       |         
                                                                 |     } while (r6 != 0);
                                                                 | label_21:
    0x00039eb6 mov r0, sb                                        |     r0 = sb;
    0x00039eb8 blx 0xde30                                        |     fcn_0000de30 ();
    0x00039ebc b 0x399c2                                         |     goto label_17;
                                                                 | label_24:
    0x00039ebe ldr r0, [pc, 0x118]                               |     
    0x00039ec0 mov r1, r7                                        |     r1 = r7;
    0x00039ec2 add r0, pc                                        |     r0 = 0x73ea0;
    0x00039ec4 bl 0x43cd4                                        |     zbx_error ();
    0x00039ec8 b 0x399d2                                         |     goto label_18;
                                                                 | label_56:
    0x00039eca mov r5, r7                                        |     r5 = r7;
    0x00039ecc mov r3, fp                                        |     r3 = fp;
    0x00039ece mov fp, r6                                        |     
    0x00039ed0 mov r6, r4                                        |     r6 = r4;
    0x00039ed2 ldrd r4, r7, [sp, 0x34]                           |     __asm ("ldrd r4, r7, [arg_34h]");
    0x00039ed6 b 0x39dbc                                         |     goto label_19;
                                                                 | label_40:
    0x00039ed8 blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x00039edc ldr r0, [r0]                                      |     r0 = *(r0);
    0x00039ede bl 0x30b74                                        |     r0 = zbx_strerror ();
    0x00039ee2 mov r2, r0                                        |     r2 = r0;
    0x00039ee4 ldr r0, [pc, 0xf4]                                |     
    0x00039ee6 mov r1, sb                                        |     r1 = sb;
    0x00039ee8 add r0, pc                                        |     r0 = 0x73ec8;
    0x00039eea bl 0x43cd4                                        |     zbx_error ();
    0x00039eee cmp r6, 0                                         |     
                                                                 |     if (r6 != 0) {
    0x00039ef0 bne 0x39e42                                       |         goto label_20;
                                                                 |     }
    0x00039ef2 b 0x39eb6                                         |     goto label_21;
                                                                 | label_26:
    0x00039ef4 cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x00039ef6 bne.w 0x39afc                                     |         goto label_22;
                                                                 |     }
    0x00039efa blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x00039efe ldr r0, [r0]                                      |     r0 = *(r0);
    0x00039f00 bl 0x30b74                                        |     r0 = zbx_strerror ();
    0x00039f04 mov r2, r0                                        |     r2 = r0;
    0x00039f06 ldr r0, [pc, 0xd8]                                |     
    0x00039f08 mov r1, r7                                        |     r1 = r7;
    0x00039f0a add r0, pc                                        |     r0 = 0x73ef0;
    0x00039f0c bl 0x43cd4                                        |     zbx_error ();
    0x00039f10 b 0x399c8                                         |     goto label_4;
                                                                 | label_36:
    0x00039f12 movs r0, 1                                        |     r0 = 1;
    0x00039f14 blx 0xe3bc                                        |     fcn_0000e3bc ();
                                                                 | label_37:
    0x00039f18 blx 0xe158                                        |     fcn_0000e158 ();
                                                                 | label_48:
    0x00039f1c blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x00039f20 ldr r0, [r0]                                      |     r0 = *(r0);
    0x00039f22 bl 0x30b74                                        |     r0 = zbx_strerror ();
    0x00039f26 mov r2, r0                                        |     r2 = r0;
    0x00039f28 ldr r0, [pc, 0xb8]                                |     
    0x00039f2a mov r1, sb                                        |     r1 = sb;
    0x00039f2c add r0, pc                                        |     r0 = 0x73f14;
    0x00039f2e bl 0x43cd4                                        |     zbx_error ();
    0x00039f32 cmp r6, 0                                         |     
                                                                 |     if (r6 != 0) {
    0x00039f34 bne 0x39e42                                       |         goto label_20;
                                                                 |     }
    0x00039f36 b 0x39eb6                                         |     goto label_21;
                                                                 | label_47:
    0x00039f38 ldr r3, [pc, 0xac]                                |     
    0x00039f3a mov.w r2, 0x1f2                                   |     r2 = 0x1f2;
    0x00039f3e ldr r1, [pc, 0xac]                                |     
    0x00039f40 ldr r0, [pc, 0xac]                                |     
    0x00039f42 add r3, pc                                        |     r3 = 0x73f2e;
    0x00039f44 add r1, pc                                        |     r1 = 0x73f36;
    0x00039f46 add r0, pc                                        |     r0 = 0x73f3a;
    0x00039f48 blx 0xdde4                                        |     shmdt ();
    0x00039f4c movs r3, 0x54                                     |     r3 = 0x54;
    0x00039f4e movs r2, r0                                       |     r2 = r0;
    0x00039f50 lsls r4, r2, 0xe                                  |     r4 = r2 << 0xe;
    0x00039f52 movs r0, r0                                       |     
    0x00039f54 movs r3, 0x40                                     |     r3 = 0x40;
    0x00039f56 movs r2, r0                                       |     r2 = r0;
    0x00039f58 ldrb r4, [r4, 9]                                  |     r4 = *((r4 + 9));
    0x00039f5a movs r1, r0                                       |     r1 = r0;
    0x00039f5c b 0x3a48c                                         |     goto label_60;
                                                                 |     do {
    0x0003a3c6 cmp.w sl, 0x22                                    |         
                                                                 |         if (sl > 0x22) {
    0x0003a3ca bhi 0x3a44a                                       |             goto label_61;
                                                                 |         }
    0x0003a3cc cmp.w sl, 7                                       |         
                                                                 |         if (sl < 7) {
    0x0003a3d0 bls 0x3a45c                                       |             goto label_62;
                                                                 |         }
    0x0003a3d2 sub.w r3, sl, 8                                   |         r3 = sl - 8;
    0x0003a3d6 cmp r3, 0x1a                                      |         
                                                                 |         if (r3 > 0x1a) {
    0x0003a3d8 bhi 0x3a456                                       |             goto label_63;
                                                                 |         }
                                                                 |         /* switch table (27 cases) at 0x3a3de */
    0x0003a3da tbb [pc, r3]                                      |         __asm ("tbb [0x0003a3e0]");
    0x0003a3fa strh r1, [r0], 2                                  |         *(r0) = r1;
                                                                 |         r0 += 2;
                                                                 | label_23:
    0x0003a3fe ldrb sl, [r4, 1]!                                 |         sl = *((r4 += 1));
    0x0003a402 cmp.w sl, 0                                       |         
    0x0003a406 bne 0x3a3c6                                       |         
                                                                 |     } while (sl != 0);
    0x0003a408 cbnz r5, 0x3a442                                  |     
                                                                 |     while (1) {
    0x0003a40a ldr r2, [pc, 0xb4]                                |         
    0x0003a40c ldr r3, [pc, 0xac]                                |         r3 = *(0x3a4bc);
    0x0003a40e add r2, pc                                        |         r2 = 0x748d4;
    0x0003a410 ldr r3, [r2, r3]                                  |         r3 = *(0x748d4);
    0x0003a412 ldr r2, [r3]                                      |         r2 = *(0x748d4);
    0x0003a414 ldr r3, [sp, 0xc]                                 |         r3 = var_ch;
    0x0003a416 eors r2, r3                                       |         r2 ^= r3;
    0x0003a418 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0003a41c bne 0x3a4b0                                       |             goto label_64;
                                                                 |         }
    0x0003a41e add sp, 0x10                                      |         
    0x0003a420 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |         
    0x0003a424 strh r7, [r0], 2                                  |         *(r0) = r7;
                                                                 |         r0 += 2;
    0x0003a428 b 0x3a3fe                                         |         goto label_23;
    0x0003a42a strh lr, [r0], 2                                  |         
    0x0003a42e b 0x3a3fe                                         |         goto label_23;
    0x0003a430 strh r6, [r0], 2                                  |         *(r0) = r6;
                                                                 |         r0 += 2;
    0x0003a434 b 0x3a3fe                                         |         goto label_23;
    0x0003a436 strh r8, [r0], 2                                  |         *(r0) = r8;
                                                                 |         r0 += 2;
    0x0003a43a b 0x3a3fe                                         |         goto label_23;
    0x0003a43c strh ip, [r0], 2                                  |         *(r0) = ip;
                                                                 |         r0 += 2;
    0x0003a440 b 0x3a3fe                                         |         goto label_23;
    0x0003a442 movs r3, 0x22                                     |         r3 = 0x22;
    0x0003a444 strb r3, [r0], 1                                  |         *(r0) = r3;
                                                                 |         r0++;
    0x0003a448 b 0x3a40a                                         |         
                                                                 |     }
                                                                 | label_61:
    0x0003a44a cmp.w sl, 0x5c                                    |     
                                                                 |     if (sl == 0x5c) {
    0x0003a44e bne 0x3a48e                                       |         
    0x0003a450 strh sb, [r0], 2                                  |         *(r0) = sb;
                                                                 |         r0 += 2;
    0x0003a454 b 0x3a3fe                                         |         goto label_23;
                                                                 | label_63:
    0x0003a456 cmp.w sl, 0x1f                                    |         
                                                                 |         if (sl > 0x1f) {
    0x0003a45a bhi 0x3a48e                                       |             goto label_65;
                                                                 |         }
                                                                 | label_62:
    0x0003a45c movw r3, 0x755c                                   |         
    0x0003a460 movt r3, 0x3030                                   |         r3 = 0x3030755c;
    0x0003a464 str r3, [r0]                                      |         *(r0) = r3;
    0x0003a466 ldrb r2, [r4]                                     |         r2 = *(r4);
    0x0003a468 cmp r2, 0x9f                                      |         
    0x0003a46a lsr.w r3, r2, 4                                   |         r3 = r2 >> 4;
    0x0003a46e add.w r2, r0, 6                                   |         r2 = r0 + 6;
    0x0003a472 ite hi                                            |         
                                                                 |         if (r2 <= 0x9f) {
    0x0003a474 addhi r3, 0x57                                    |             r3 += 0x57;
                                                                 |         }
                                                                 |         if (r2 > 0x9f) {
    0x0003a476 addls r3, 0x30                                    |             r3 += 0x30;
                                                                 |         }
    0x0003a478 strb r3, [r0, 4]                                  |         *((r0 + 4)) = r3;
    0x0003a47a ldrb r3, [r4]                                     |         r3 = *(r4);
    0x0003a47c and r3, r3, 0xf                                   |         r3 &= 0xf;
    0x0003a480 cmp r3, 9                                         |         
    0x0003a482 ite hi                                            |         
                                                                 |         if (r3 <= 9) {
    0x0003a484 addhi r3, 0x57                                    |             r3 += 0x57;
                                                                 |         }
                                                                 |         if (r3 > 9) {
    0x0003a486 addls r3, 0x30                                    |             r3 += 0x30;
                                                                 |         }
    0x0003a488 strb r3, [r0, 5]                                  |         *((r0 + 5)) = r3;
    0x0003a48a mov r0, r2                                        |         r0 = r2;
                                                                 | label_60:
    0x0003a48c b 0x3a3fe                                         |         goto label_23;
                                                                 |     }
                                                                 | label_65:
    0x0003a48e strb sl, [r0], 1                                  |     *(r0) = sl;
                                                                 |     r0++;
    0x0003a492 b 0x3a3fe                                         |     goto label_23;
                                                                 | label_64:
    0x0003a4b0 blx 0xe158                                        |     fcn_0000e158 ();
    0x0003a4b4 stm r0!, {r1, r4, r6, r7}                         |     *(r0!) = r1;
                                                                 |     *((r0! + 4)) = r4;
                                                                 |     *((r0! + 8)) = r6;
                                                                 |     *((r0! + 12)) = r7;
    0x0003a4b6 movs r1, r0                                       |     r1 = r0;
    0x0003a4b8 adds r6, r3, r1                                   |     r6 = r3 + r1;
    0x0003a4ba movs r2, r0                                       |     r2 = r0;
    0x0003a4bc lsls r4, r2, 0xe                                  |     r4 = r2 << 0xe;
    0x0003a4be movs r0, r0                                       |     
    0x0003a4c0 asrs r2, r1, 0x1f                                 |     r2 = r1 >> 0x1f;
    0x0003a4c2 movs r2, r0                                       |     r2 = r0;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x3b604 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0003b604 ()                                      | void fcn_0003b604 (int16_t arg1, int16_t arg2) {
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0003b604 bhs 0x8d9714                                      |     
                                                                 |     if (? == ?) {
    0x0003b608 beq.w 0x3b714                                     |         goto label_6;
                                                                 |     }
    0x0003b60c push.w {r3, r4, r5, r6, r7, r8, sb, lr}           |     
    0x0003b610 movw r8, 0x441                                    |     
    0x0003b614 mov r7, r0                                        |     r7 = r0;
    0x0003b616 mov r6, r1                                        |     r6 = r1;
    0x0003b618 adds r5, r0, 1                                    |     r5 = r0 + 1;
    0x0003b61a mov.w sb, 1                                       |     sb = 1;
    0x0003b61e movt r8, 0x144                                    |     r8 = 0x1440441;
                                                                 |     do {
    0x0003b622 cmp r2, 0                                         |         
                                                                 |         if (r2 == 0) {
    0x0003b624 beq 0x3b6cc                                       |             goto label_7;
                                                                 |         }
    0x0003b626 cmp r2, 0x5c                                      |         
                                                                 |         if (r2 == 0x5c) {
    0x0003b628 beq 0x3b644                                       |             goto label_8;
                                                                 |         }
    0x0003b62a ldrb r3, [r5]                                     |         r3 = *(r5);
    0x0003b62c mov r4, r5                                        |         r4 = r5;
                                                                 | label_2:
    0x0003b62e cmp r3, 0x1f                                      |         
                                                                 |         if (r3 < 0x1f) {
    0x0003b630 bls 0x3b6e4                                       |             goto label_9;
                                                                 |         }
                                                                 | label_0:
    0x0003b632 ldrb r2, [r4, 1]                                  |         r2 = *((r4 + 1));
    0x0003b634 adds r5, r4, 1                                    |         r5 = r4 + 1;
    0x0003b636 cmp r2, 0x22                                      |         
    0x0003b638 bne 0x3b622                                       |         
                                                                 |     } while (r2 != 0x22);
    0x0003b63a subs r0, r5, r7                                   |     r0 = r5 - r7;
    0x0003b63c adds r0, 1                                        |     r0++;
    0x0003b63e asrs r1, r0, 0x1f                                 |     r1 = r0 >> 0x1f;
                                                                 | label_1:
    0x0003b640 pop.w {r3, r4, r5, r6, r7, r8, sb, pc}            |     
                                                                 | label_8:
    0x0003b644 ldrb r3, [r5, 1]                                  |     r3 = *((r5 + 1));
    0x0003b646 adds r4, r5, 1                                    |     r4 = r5 + 1;
    0x0003b648 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0003b64a beq 0x3b6fc                                       |         goto label_10;
                                                                 |     }
    0x0003b64c cmp r3, 0x75                                      |     
                                                                 |     if (r3 > 0x75) {
    0x0003b64e bhi 0x3b668                                       |         goto label_11;
                                                                 |     }
    0x0003b650 cmp r3, 0x5b                                      |     
                                                                 |     if (r3 < 0x5b) {
    0x0003b652 bls 0x3b6be                                       |         goto label_12;
                                                                 |     }
    0x0003b654 sub.w r2, r3, 0x5c                                |     r2 = r3 - 0x5c;
    0x0003b658 uxtb r2, r2                                       |     r2 = (int8_t) r2;
    0x0003b65a lsl.w r2, sb, r2                                  |     r2 = sb << r2;
    0x0003b65e tst.w r2, r8                                      |     
                                                                 |     if ((r2 & r8) != 0) {
    0x0003b662 bne 0x3b632                                       |         goto label_0;
                                                                 |     }
    0x0003b664 cmp r3, 0x75                                      |     
                                                                 |     if (r3 != 0x75) {
    0x0003b666 beq 0x3b682                                       |         
                                                                 |         if (r6 != 0) {
                                                                 | label_11:
    0x0003b668 cbz r6, 0x3b67c                                   |             
                                                                 | label_5:
    0x0003b66a ldr r2, [pc, 0xb0]                                |             
    0x0003b66c mov r3, r5                                        |             r3 = r5;
    0x0003b66e ldr r1, [pc, 0xb0]                                |             
    0x0003b670 ldr r0, [r6]                                      |             r0 = *(r6);
    0x0003b672 add r2, pc                                        |             r2 = 0x76d94;
    0x0003b674 add r1, pc                                        |             r1 = 0x76d9a;
    0x0003b676 bl 0x44820                                        |             zbx_dsprintf ()
    0x0003b67a str r0, [r6]                                      |             *(r6) = r0;
                                                                 |         }
                                                                 | label_4:
    0x0003b67c movs r0, 0                                        |         r0 = 0;
    0x0003b67e mov r1, r0                                        |         r1 = r0;
    0x0003b680 b 0x3b640                                         |         goto label_1;
                                                                 |     }
    0x0003b682 blx 0xe110                                        |     fcn_0000e110 ();
    0x0003b686 ldrb r3, [r4, 1]!                                 |     r3 = *((r4 += 1));
    0x0003b68a ldr r1, [r0]                                      |     r1 = *(r0);
    0x0003b68c adds r0, r5, 5                                    |     r0 = r5 + 5;
    0x0003b68e ldrh.w r2, [r1, r3, lsl 1]                        |     offset_0 = r3 << 1;
                                                                 |     r2 = *((r1 + offset_0));
    0x0003b692 lsls r2, r2, 0x13                                 |     r2 <<= 0x13;
                                                                 |     if (r2 >= r2) {
    0x0003b694 bpl 0x3b6a6                                       |         goto label_13;
                                                                 |     }
                                                                 | label_3:
    0x0003b696 cmp r4, r0                                        |     
                                                                 |     if (r4 == r0) {
    0x0003b698 beq 0x3b62e                                       |         goto label_2;
                                                                 |     }
    0x0003b69a ldrb r3, [r4, 1]!                                 |     r3 = *((r4 += 1));
    0x0003b69e ldrh.w r2, [r1, r3, lsl 1]                        |     offset_1 = r3 << 1;
                                                                 |     r2 = *((r1 + offset_1));
    0x0003b6a2 lsls r2, r2, 0x13                                 |     r2 <<= 0x13;
                                                                 |     if (r2 < r2) {
    0x0003b6a4 bmi 0x3b696                                       |         goto label_3;
                                                                 |     }
                                                                 | label_13:
    0x0003b6a6 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x0003b6a8 beq 0x3b67c                                       |         goto label_4;
                                                                 |     }
    0x0003b6aa ldr r2, [pc, 0x78]                                |     
    0x0003b6ac mov r3, r5                                        |     r3 = r5;
    0x0003b6ae ldr r1, [pc, 0x78]                                |     
    0x0003b6b0 ldr r0, [r6]                                      |     r0 = *(r6);
    0x0003b6b2 add r2, pc                                        |     r2 = 0x76ddc;
    0x0003b6b4 add r1, pc                                        |     r1 = 0x76de2;
    0x0003b6b6 bl 0x44820                                        |     zbx_dsprintf ()
    0x0003b6ba str r0, [r6]                                      |     *(r6) = r0;
    0x0003b6bc b 0x3b67c                                         |     goto label_4;
                                                                 | label_12:
    0x0003b6be cmp r3, 0x22                                      |     
                                                                 |     if (r3 == 0x22) {
    0x0003b6c0 beq 0x3b632                                       |         goto label_0;
                                                                 |     }
    0x0003b6c2 cmp r3, 0x2f                                      |     
                                                                 |     if (r3 == 0x2f) {
    0x0003b6c4 beq 0x3b632                                       |         goto label_0;
                                                                 |     }
    0x0003b6c6 cmp r6, 0                                         |     
                                                                 |     if (r6 != 0) {
    0x0003b6c8 bne 0x3b66a                                       |         goto label_5;
                                                                 |     }
    0x0003b6ca b 0x3b67c                                         |     goto label_4;
                                                                 | label_7:
    0x0003b6cc cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x0003b6ce beq 0x3b67c                                       |         goto label_4;
                                                                 |     }
    0x0003b6d0 ldr r3, [pc, 0x58]                                |     
    0x0003b6d2 movs r1, 0x2e                                     |     r1 = 0x2e;
    0x0003b6d4 ldr r0, [pc, 0x58]                                |     
    0x0003b6d6 ldr r2, [r6]                                      |     r2 = *(r6);
    0x0003b6d8 add r3, pc                                        |     r3 = 0x76e08;
    0x0003b6da add r0, pc                                        |     r0 = 0x76e0e;
    0x0003b6dc bl 0x40ed8                                        |     zbx_strdup2 ();
    0x0003b6e0 str r0, [r6]                                      |     *(r6) = r0;
    0x0003b6e2 b 0x3b67c                                         |     goto label_4;
                                                                 | label_9:
    0x0003b6e4 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x0003b6e6 beq 0x3b67c                                       |         goto label_4;
                                                                 |     }
    0x0003b6e8 ldr r2, [pc, 0x48]                                |     
    0x0003b6ea mov r3, r4                                        |     r3 = r4;
    0x0003b6ec ldr r1, [pc, 0x48]                                |     
    0x0003b6ee ldr r0, [r6]                                      |     r0 = *(r6);
    0x0003b6f0 add r2, pc                                        |     r2 = 0x76e28;
    0x0003b6f2 add r1, pc                                        |     r1 = 0x76e2e;
    0x0003b6f4 bl 0x44820                                        |     zbx_dsprintf ()
    0x0003b6f8 str r0, [r6]                                      |     *(r6) = r0;
    0x0003b6fa b 0x3b67c                                         |     goto label_4;
                                                                 | label_10:
    0x0003b6fc cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x0003b6fe beq 0x3b67c                                       |         goto label_4;
                                                                 |     }
    0x0003b700 ldr r2, [pc, 0x38]                                |     
    0x0003b702 mov r3, r5                                        |     r3 = r5;
    0x0003b704 ldr r1, [pc, 0x38]                                |     
    0x0003b706 ldr r0, [r6]                                      |     r0 = *(r6);
    0x0003b708 add r2, pc                                        |     r2 = 0x76e48;
    0x0003b70a add r1, pc                                        |     r1 = 0x76e4e;
    0x0003b70c bl 0x44820                                        |     zbx_dsprintf ()
    0x0003b710 str r0, [r6]                                      |     *(r6) = r0;
    0x0003b712 b 0x3b67c                                         |     goto label_4;
                                                                 | label_6:
    0x0003b714 movs r0, 2                                        |     r0 = 2;
    0x0003b716 movs r1, 0                                        |     r1 = 0;
    0x0003b718 bx lr                                             |     return;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x3ba98 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0003ba98 ()                                      | void fcn_0003ba98 (int16_t arg1, int16_t arg2) {
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0003ba98 push.w {r4, r5, r6, r7, r8, sb, sl, lr}           |     
    0x0003ba9c mov r8, r1                                        |     r8 = r1;
    0x0003ba9e ldrb r1, [r0]                                     |     r1 = *(r0);
    0x0003baa0 mov sb, r0                                        |     sb = r0;
    0x0003baa2 mov r4, r0                                        |     r4 = r0;
                                                                 |     if (r1 == 0) {
    0x0003baa4 cbz r1, 0x3bac2                                   |         goto label_2;
                                                                 |     }
    0x0003baa6 ldr r6, [pc, 0x150]                               |     
    0x0003baa8 mov r5, r0                                        |     r5 = r0;
    0x0003baaa add r6, pc                                        |     r6 = 0x776a8;
    0x0003baac b 0x3bab2                                         |     
                                                                 |     while (r0 != 0) {
    0x0003baae cmp r1, 0                                         |         
                                                                 |         if (r1 == 0) {
    0x0003bab0 beq 0x3bbb2                                       |             goto label_5;
                                                                 |         }
    0x0003bab2 mov r0, r6                                        |         r0 = r6;
    0x0003bab4 mov r4, r5                                        |         r4 = r5;
    0x0003bab6 blx 0xdcd4                                        |         fcn_0000dcd4 ();
    0x0003bab8 invalid                                           |         
    0x0003babc ldrb r1, [r5]                                     |         r1 = *(r5);
    0x0003babe cmp r0, 0                                         |         
    0x0003bac0 bne 0x3baae                                       |         
                                                                 |     }
                                                                 | label_2:
    0x0003bac2 ldrb r5, [r4, 1]                                  |     r5 = *((r4 + 1));
    0x0003bac4 adds r4, 1                                        |     r4++;
    0x0003bac6 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x0003bac8 beq 0x3bb90                                       |         goto label_6;
                                                                 |     }
    0x0003baca ldr r6, [pc, 0x130]                               |     
    0x0003bacc add r6, pc                                        |     r6 = 0x776ce;
    0x0003bace b 0x3bad6                                         |     
                                                                 |     while (r0 != 0) {
    0x0003bad0 ldrb r5, [r4, 1]!                                 |         r5 = *((r4 += 1));
                                                                 |         if (r5 == 0) {
    0x0003bad4 cbz r5, 0x3baf2                                   |             goto label_7;
                                                                 |         }
    0x0003bad6 mov r1, r5                                        |         r1 = r5;
    0x0003bad8 mov r0, r6                                        |         r0 = r6;
    0x0003bada blx 0xdcd4                                        |         r0 = fcn_0000dcd4 ();
    0x0003bade cmp r0, 0                                         |         
    0x0003bae0 bne 0x3bad0                                       |         
                                                                 |     }
    0x0003bae2 cmp r5, 0x7d                                      |     
                                                                 |     if (r5 == 0x7d) {
    0x0003bae4 bne 0x3baf2                                       |         
                                                                 | label_4:
    0x0003bae6 sub.w r0, r4, sb                                  |         r0 = r4 - sb;
    0x0003baea adds r0, 1                                        |         r0++;
    0x0003baec asrs r1, r0, 0x1f                                 |         r1 = r0 >> 0x1f;
                                                                 | label_1:
    0x0003baee pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |         
                                                                 |     }
                                                                 | label_7:
    0x0003baf2 ldrb r3, [r4]                                     |     r3 = *(r4);
    0x0003baf4 cmp r3, 0x22                                      |     
                                                                 |     if (r3 != 0x22) {
    0x0003baf6 bne 0x3bb90                                       |         goto label_6;
                                                                 |     }
    0x0003baf8 ldr r5, [pc, 0x104]                               |     
    0x0003bafa ldr r6, [pc, 0x108]                               |     
    0x0003bafc ldr r7, [pc, 0x108]                               |     
    0x0003bafe add r5, pc                                        |     r5 = 0x77702;
    0x0003bb00 add r6, pc                                        |     r6 = 0x7770a;
    0x0003bb02 add r7, pc                                        |     r7 = 0x7770e;
                                                                 | label_0:
    0x0003bb04 mov r1, r8                                        |     r1 = r8;
    0x0003bb06 mov r0, r4                                        |     r0 = r4;
    0x0003bb08 bl 0x3b604                                        |     r0 = fcn_0003b604 (r0, r1);
    0x0003bb0c orrs r1, r0                                       |     r1 |= r0;
                                                                 |     if (r1 == r0) {
    0x0003bb0e beq 0x3bbac                                       |         goto label_3;
                                                                 |     }
    0x0003bb10 ldrb.w sl, [r4, r0]                               |     sl = *((r4 + r0));
    0x0003bb14 add r4, r0                                        |     r4 += r0;
    0x0003bb16 cmp.w sl, 0                                       |     
                                                                 |     if (sl != 0) {
    0x0003bb1a bne 0x3bb28                                       |         goto label_8;
                                                                 |     }
    0x0003bb1c b 0x3bbb6                                         |     goto label_9;
                                                                 |     do {
    0x0003bb1e ldrb sl, [r4, 1]!                                 |         sl = *((r4 += 1));
    0x0003bb22 cmp.w sl, 0                                       |         
                                                                 |         if (sl == 0) {
    0x0003bb26 beq 0x3bbb6                                       |             goto label_9;
                                                                 |         }
                                                                 | label_8:
    0x0003bb28 mov r1, sl                                        |         r1 = sl;
    0x0003bb2a mov r0, r5                                        |         r0 = r5;
    0x0003bb2c blx 0xdcd4                                        |         r0 = fcn_0000dcd4 ();
    0x0003bb30 cmp r0, 0                                         |         
    0x0003bb32 bne 0x3bb1e                                       |         
                                                                 |     } while (r0 != 0);
    0x0003bb34 cmp.w sl, 0x3a                                    |     
                                                                 |     if (sl != 0x3a) {
    0x0003bb38 bne 0x3bbb6                                       |         goto label_9;
                                                                 |     }
    0x0003bb3a adds r4, 1                                        |     r4++;
    0x0003bb3c mov r1, r8                                        |     r1 = r8;
    0x0003bb3e mov r0, r4                                        |     r0 = r4;
    0x0003bb40 bl 0x3b744                                        |     r0 = json_parse_value ();
    0x0003bb44 orrs r1, r0                                       |     r1 |= r0;
                                                                 |     if (r1 == r0) {
    0x0003bb46 beq 0x3bbac                                       |         goto label_3;
                                                                 |     }
    0x0003bb48 ldrb.w sl, [r4, r0]                               |     sl = *((r4 + r0));
    0x0003bb4c add r4, r0                                        |     r4 += r0;
    0x0003bb4e cmp.w sl, 0                                       |     
                                                                 |     if (sl != 0) {
    0x0003bb52 bne 0x3bb60                                       |         goto label_10;
                                                                 |     }
    0x0003bb54 b 0x3bbda                                         |     goto label_11;
                                                                 |     do {
    0x0003bb56 ldrb sl, [r4, 1]!                                 |         sl = *((r4 += 1));
    0x0003bb5a cmp.w sl, 0                                       |         
                                                                 |         if (sl == 0) {
    0x0003bb5e beq 0x3bbda                                       |             goto label_11;
                                                                 |         }
                                                                 | label_10:
    0x0003bb60 mov r1, sl                                        |         r1 = sl;
    0x0003bb62 mov r0, r6                                        |         r0 = r6;
    0x0003bb64 blx 0xdcd4                                        |         r0 = fcn_0000dcd4 ();
    0x0003bb68 cmp r0, 0                                         |         
    0x0003bb6a bne 0x3bb56                                       |         
                                                                 |     } while (r0 != 0);
    0x0003bb6c cmp.w sl, 0x2c                                    |     
                                                                 |     if (sl != 0x2c) {
    0x0003bb70 bne 0x3bbd4                                       |         goto label_12;
                                                                 |     }
    0x0003bb72 ldrb r1, [r4, 1]                                  |     r1 = *((r4 + 1));
    0x0003bb74 adds r4, 1                                        |     r4++;
                                                                 |     if (r1 != 0) {
    0x0003bb76 cbnz r1, 0x3bb80                                  |         goto label_13;
                                                                 |     }
    0x0003bb78 b 0x3bb90                                         |     goto label_6;
                                                                 |     do {
    0x0003bb7a ldrb r1, [r4, 1]!                                 |         r1 = *((r4 += 1));
                                                                 |         if (r1 == 0) {
    0x0003bb7e cbz r1, 0x3bb90                                   |             goto label_6;
                                                                 |         }
                                                                 | label_13:
    0x0003bb80 mov r0, r7                                        |         r0 = r7;
    0x0003bb82 blx 0xdcd4                                        |         r0 = fcn_0000dcd4 ();
    0x0003bb86 cmp r0, 0                                         |         
    0x0003bb88 bne 0x3bb7a                                       |         
                                                                 |     } while (r0 != 0);
    0x0003bb8a ldrb r3, [r4]                                     |     r3 = *(r4);
    0x0003bb8c cmp r3, 0x22                                      |     
                                                                 |     if (r3 == 0x22) {
    0x0003bb8e beq 0x3bb04                                       |         goto label_0;
                                                                 |     }
                                                                 | label_6:
    0x0003bb90 cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x0003bb94 beq 0x3bbac                                       |         goto label_3;
                                                                 |     }
    0x0003bb96 ldr r2, [pc, 0x74]                                |     
    0x0003bb98 mov r3, r4                                        |     r3 = r4;
    0x0003bb9a ldr r1, [pc, 0x74]                                |     
    0x0003bb9c ldr.w r0, [r8]                                    |     r0 = *(r8);
    0x0003bba0 add r2, pc                                        |     r2 = 0x777b2;
    0x0003bba2 add r1, pc                                        |     r1 = 0x777b8;
    0x0003bba4 bl 0x44820                                        |     zbx_dsprintf ()
    0x0003bba8 str.w r0, [r8]                                    |     __asm ("str.w r0, [r8]");
                                                                 |     do {
                                                                 | label_3:
    0x0003bbac movs r0, 0                                        |         r0 = 0;
    0x0003bbae mov r1, r0                                        |         r1 = r0;
    0x0003bbb0 b 0x3baee                                         |         goto label_1;
                                                                 | label_5:
    0x0003bbb2 mov r4, r5                                        |         r4 = r5;
    0x0003bbb4 b 0x3bac2                                         |         goto label_2;
                                                                 | label_9:
    0x0003bbb6 cmp.w r8, 0                                       |         
    0x0003bbba beq 0x3bbac                                       |         
                                                                 |     } while (r8 == 0);
    0x0003bbbc ldr r2, [pc, 0x54]                                |     
    0x0003bbbe mov r3, r4                                        |     r3 = r4;
    0x0003bbc0 ldr r1, [pc, 0x54]                                |     
    0x0003bbc2 ldr.w r0, [r8]                                    |     r0 = *(r8);
    0x0003bbc6 add r2, pc                                        |     r2 = 0x777de;
    0x0003bbc8 add r1, pc                                        |     r1 = 0x777e4;
    0x0003bbca bl 0x44820                                        |     zbx_dsprintf ()
    0x0003bbce str.w r0, [r8]                                    |     __asm ("str.w r0, [r8]");
    0x0003bbd0 movs r0, r0                                       |     
    0x0003bbd2 b 0x3bbac                                         |     goto label_3;
                                                                 | label_12:
    0x0003bbd4 cmp.w sl, 0x7d                                    |     
                                                                 |     if (sl == 0x7d) {
    0x0003bbd8 beq 0x3bae6                                       |         goto label_4;
                                                                 |     }
                                                                 | label_11:
    0x0003bbda cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x0003bbde beq 0x3bbac                                       |         goto label_3;
                                                                 |     }
    0x0003bbe0 ldr r2, [pc, 0x38]                                |     
    0x0003bbe2 mov r3, r4                                        |     r3 = r4;
    0x0003bbe4 ldr r1, [pc, 0x38]                                |     
    0x0003bbe6 ldr.w r0, [r8]                                    |     r0 = *(r8);
    0x0003bbea add r2, pc                                        |     r2 = 0x7780a;
    0x0003bbec add r1, pc                                        |     r1 = 0x77810;
    0x0003bbee bl 0x44820                                        |     zbx_dsprintf ()
    0x0003bbf2 str.w r0, [r8]                                    |     __asm ("str.w r0, [r8]");
    0x0003bbf6 b 0x3bbac                                         |     goto label_3;
                                                                 | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x3bc24 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.0003bc24 ()                              | void fcn_0003bc24 (int16_t arg1, int16_t arg2) {
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x0003bc24 push.w {r4, r5, r6, r7, r8, lr}           |     
    0x0003bc28 mov r8, r0                                |     r8 = r0;
    0x0003bc2a ldrb r4, [r0, 1]                          |     r4 = *((r0 + 1));
    0x0003bc2c mov r7, r1                                |     r7 = r1;
    0x0003bc2e adds r5, r0, 1                            |     r5 = r0 + 1;
                                                         |     if (r4 == 0) {
    0x0003bc30 cbz r4, 0x3bc5a                           |         goto label_3;
                                                         |     }
    0x0003bc32 ldr r6, [pc, 0x88]                        |     
    0x0003bc34 add r6, pc                                |     r6 = 0x778f6;
    0x0003bc36 b 0x3bc3e                                 |     
                                                         |     while (r0 != 0) {
    0x0003bc38 ldrb r4, [r5, 1]!                         |         r4 = *((r5 += 1));
                                                         |         if (r4 == 0) {
    0x0003bc3c cbz r4, 0x3bc5a                           |             goto label_3;
                                                         |         }
    0x0003bc3e mov r1, r4                                |         r1 = r4;
    0x0003bc40 mov r0, r6                                |         r0 = r6;
    0x0003bc42 blx 0xdcd4                                |         r0 = fcn_0000dcd4 ();
    0x0003bc46 cmp r0, 0                                 |         
    0x0003bc48 bne 0x3bc38                               |         
                                                         |     }
    0x0003bc4a cmp r4, 0x5d                              |     
                                                         |     if (r4 == 0x5d) {
    0x0003bc4c bne 0x3bc5a                               |         
                                                         | label_1:
    0x0003bc4e sub.w r0, r5, r8                          |         r0 = r5 - r8;
    0x0003bc52 adds r0, 1                                |         r0++;
    0x0003bc54 asrs r1, r0, 0x1f                         |         r1 = r0 >> 0x1f;
    0x0003bc56 pop.w {r4, r5, r6, r7, r8, pc}            |         
                                                         |     }
                                                         | label_3:
    0x0003bc5a ldr r6, [pc, 0x64]                        |     
    0x0003bc5c mov r1, r7                                |     r1 = r7;
    0x0003bc5e mov r0, r5                                |     r0 = r5;
    0x0003bc60 bl 0x3b744                                |     r0 = json_parse_value ();
    0x0003bc64 orrs r1, r0                               |     r1 |= r0;
    0x0003bc66 add r6, pc                                |     r6 = 0x7792c;
                                                         |     if (r1 == r0) {
    0x0003bc68 beq 0x3bc96                               |         goto label_2;
                                                         |     }
                                                         | label_0:
    0x0003bc6a add r5, r0                                |     r5 += r0;
    0x0003bc6c ldrb r4, [r5]                             |     r4 = *(r5);
                                                         |     if (r4 != 0) {
    0x0003bc6e cbnz r4, 0x3bc78                          |         goto label_4;
                                                         |     }
    0x0003bc70 b 0x3bca2                                 |     goto label_5;
                                                         |     do {
    0x0003bc72 ldrb r4, [r5, 1]!                         |         r4 = *((r5 += 1));
                                                         |         if (r4 == 0) {
    0x0003bc76 cbz r4, 0x3bca2                           |             goto label_5;
                                                         |         }
                                                         | label_4:
    0x0003bc78 mov r1, r4                                |         r1 = r4;
    0x0003bc7a mov r0, r6                                |         r0 = r6;
    0x0003bc7c blx 0xdcd4                                |         r0 = fcn_0000dcd4 ();
    0x0003bc80 cmp r0, 0                                 |         
    0x0003bc82 bne 0x3bc72                               |         
                                                         |     } while (r0 != 0);
    0x0003bc84 cmp r4, 0x2c                              |     
                                                         |     if (r4 != 0x2c) {
    0x0003bc86 bne 0x3bc9e                               |         goto label_6;
                                                         |     }
    0x0003bc88 adds r5, 1                                |     r5++;
    0x0003bc8a mov r1, r7                                |     r1 = r7;
    0x0003bc8c mov r0, r5                                |     r0 = r5;
    0x0003bc8e bl 0x3b744                                |     r0 = json_parse_value ();
    0x0003bc92 orrs r1, r0                               |     r1 |= r0;
                                                         |     if (r1 != r0) {
    0x0003bc94 bne 0x3bc6a                               |         goto label_0;
                                                         |     }
                                                         | label_2:
    0x0003bc96 movs r0, 0                                |     r0 = 0;
    0x0003bc98 mov r1, r0                                |     r1 = r0;
    0x0003bc9a pop.w {r4, r5, r6, r7, r8, pc}            |     
                                                         | label_6:
    0x0003bc9e cmp r4, 0x5d                              |     
                                                         |     if (r4 == 0x5d) {
    0x0003bca0 beq 0x3bc4e                               |         goto label_1;
                                                         |     }
                                                         | label_5:
    0x0003bca2 cmp r7, 0                                 |     
                                                         |     if (r7 == 0) {
    0x0003bca4 beq 0x3bc96                               |         goto label_2;
                                                         |     }
    0x0003bca6 ldr r2, [pc, 0x1c]                        |     
    0x0003bca8 mov r3, r5                                |     r3 = r5;
    0x0003bcaa ldr r1, [pc, 0x1c]                        |     
    0x0003bcac ldr r0, [r7]                              |     r0 = *(r7);
    0x0003bcae add r2, pc                                |     r2 = 0x77978;
    0x0003bcb0 add r1, pc                                |     r1 = 0x7797e;
    0x0003bcb2 bl 0x44820                                |     zbx_dsprintf ()
    0x0003bcb4 ldc2 p0, c6, [r5, 0xe0]!                  |     __asm ("ldc2 p0, c6, [r5, 0xe0]!");
    0x0003bcb8 b 0x3bc96                                 |     goto label_2;
                                                         | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x3c3b4 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.0003c3b4 ()                                          | void fcn_0003c3b4 (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_2;
                                                                     |     int32_t var_8h_3;
                                                                     |     int16_t var_18h;
                                                                     |     int16_t var_20h;
                                                                     |     int16_t var_834h;
                                                                     |     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;
    0x0003c3b4 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0003c3b8 sub.w sp, sp, 0x1840                                  |     
    0x0003c3bc ldr r5, [pc, 0x3ac]                                   |     
    0x0003c3be sub sp, 0x1c                                          |     
    0x0003c3c0 add.w r7, sp, 0x1840                                  |     r7 += var_1840h;
    0x0003c3c4 addw sl, sp, 0x858                                    |     __asm ("addw sl, var_858h");
    0x0003c3c8 ldr r4, [pc, 0x3a4]                                   |     r4 = *(0x3c770);
    0x0003c3ca adds r7, 0x14                                         |     r7 += 0x14;
    0x0003c3cc add r5, pc                                            |     r5 = 0x78b3c;
    0x0003c3ce ldr r6, [pc, 0x3a4]                                   |     
    0x0003c3d0 vmov.i32 d16, 0                                       |     __asm ("vmov.i32 d16, 0");
    0x0003c3d4 ldr r4, [r5, r4]                                      |     
    0x0003c3d6 mov r5, r2                                            |     r5 = r2;
    0x0003c3d8 subw r2, sl, 0x834                                    |     __asm ("subw r2, var_834h");
    0x0003c3dc add r6, pc                                            |     r6 = 0x78b56;
    0x0003c3de ldr r4, [r4]                                          |     r4 = *(0x78b3c);
    0x0003c3e0 str r4, [r7]                                          |     *(r7) = r4;
    0x0003c3e2 mov.w r4, 0                                           |     r4 = 0;
    0x0003c3e6 str r1, [sp, 4]                                       |     var_4h = r1;
    0x0003c3e8 mov r4, r0                                            |     r4 = r0;
    0x0003c3ea mov r0, r1                                            |     r0 = r1;
    0x0003c3ec ldr r1, [pc, 0x388]                                   |     r1 = *(0x3c778);
    0x0003c3ee movs r7, 0                                            |     r7 = 0;
    0x0003c3f0 vst1.32 {d16}, [r2]                                   |     __asm ("vst1.32 {d16}, [r2]");
    0x0003c3f4 subw r2, sl, 0x838                                    |     __asm ("subw r2, var_20h");
    0x0003c3f8 str r3, [sp, 8]                                       |     var_8h = r3;
    0x0003c3fa mov r3, r6                                            |     r3 = r6;
    0x0003c3fc str r7, [r2]                                          |     *(r2) = r7;
    0x0003c3fe cmp r0, 7                                             |     
    0x0003c400 ldr r1, [r6, r1]                                      |     r1 = *(0x78b56);
    0x0003c402 str r1, [r2, 0xc]                                     |     var_ch_2 = r1;
    0x0003c404 ldr r1, [pc, 0x374]                                   |     r1 = *(0x3c77c);
    0x0003c406 ldr r1, [r6, r1]                                      |     r1 = *(0x78b56);
    0x0003c408 str r1, [r2, 0x10]                                    |     var_10h = r1;
    0x0003c40a ldr r1, [pc, 0x374]                                   |     r1 = *(0x3c782);
    0x0003c40c ldr r3, [r6, r1]                                      |     r3 = *(0x78b56);
    0x0003c40e str r3, [r2, 0x14]                                    |     var_14h = r3;
    0x0003c410 ldr r2, [r4, 4]                                       |     r2 = *((r4 + 4));
                                                                     |     if (r0 == 7) {
    0x0003c412 beq.w 0x3c668                                         |         goto label_12;
                                                                     |     }
    0x0003c416 cmp r5, 0                                             |     
                                                                     |     if (r5 != 0) {
    0x0003c418 bne.w 0x3c600                                         |         goto label_13;
                                                                     |     }
    0x0003c41c mov r8, r5                                            |     r8 = r5;
                                                                     | label_6:
    0x0003c41e ldr r3, [sp, 4]                                       |     r3 = var_4h;
    0x0003c420 cmp r3, 4                                             |     
                                                                     |     if (r3 == 4) {
    0x0003c422 beq.w 0x3c712                                         |         goto label_14;
                                                                     |     }
    0x0003c426 ldr r3, [sp, 4]                                       |     r3 = var_4h;
    0x0003c428 cmp r3, 5                                             |     
                                                                     |     if (r3 == 5) {
    0x0003c42a beq.w 0x3c6fe                                         |         goto label_15;
                                                                     |     }
    0x0003c42c strh r0, [r5, 0xa]                                    |     *((r5 + 0xa)) = r0;
    0x0003c42e cmp r2, 0                                             |     
                                                                     |     if (r2 == 0) {
    0x0003c430 beq.w 0x3c746                                         |         goto label_16;
                                                                     |     }
    0x0003c434 ldr r3, [r4]                                          |     r3 = *(r4);
    0x0003c436 add.w sb, sp, 0x1040                                  |     sb += var_1040h;
    0x0003c43a add.w sb, sb, 0x14                                    |     sb += var_14h_2;
    0x0003c43e mov.w r2, 0x800                                       |     r2 = 0x800;
    0x0003c442 mov r1, sb                                            |     r1 = sb;
    0x0003c444 ldr r7, [r3, 4]                                       |     r7 = *((r3 + 4));
    0x0003c446 movs r3, 0                                            |     r3 = 0;
    0x0003c448 mov r0, r7                                            |     r0 = r7;
    0x0003c44a bl 0x3b1a8                                            |     r0 = zbx_json_decodevalue ();
    0x0003c44e cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0003c450 beq.w 0x3c73a                                         |         goto label_17;
                                                                     |     }
    0x0003c454 add r6, sp, 0x18                                      |     r6 += var_18h;
    0x0003c456 mov r0, sb                                            |     r0 = sb;
    0x0003c458 sub.w r1, r6, 8                                       |     r1 -= var_8h_2;
    0x0003c45c bl 0x41798                                            |     r0 = is_double ();
    0x0003c460 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0003c462 bne.w 0x3c73a                                         |         goto label_17;
                                                                     |     }
    0x0003c466 ldr r3, [r4, 4]                                       |     r3 = var_834h;
    0x0003c468 cmp r3, 1                                             |     
                                                                     |     if (r3 <= 1) {
    0x0003c46a ble 0x3c4d2                                           |         goto label_18;
                                                                     |     }
    0x0003c46c ldr r3, [sp, 4]                                       |     r3 = var_4h;
    0x0003c46e movs r7, 1                                            |     r7 = 1;
    0x0003c470 str.w r8, [sp, 0xc]                                   |     __asm ("str.w r8, [var_ch]");
    0x0003c474 mov r8, r4                                            |     r8 = r4;
    0x0003c476 subs r3, 1                                            |     r3--;
    0x0003c478 mov fp, r3                                            |     
                                                                     |     do {
    0x0003c47a ldr.w r3, [r8]                                        |         r3 = *(r8);
    0x0003c47e mov.w r2, 0x800                                       |         r2 = 0x800;
    0x0003c482 mov r1, sb                                            |         r1 = sb;
    0x0003c484 add.w r3, r3, r7, lsl 3                               |         r3 += (r7 << 3);
    0x0003c488 ldr r4, [r3, 4]                                       |         r4 = *((r3 + 4));
    0x0003c48a movs r3, 0                                            |         r3 = 0;
    0x0003c48c mov r0, r4                                            |         r0 = r4;
    0x0003c48e bl 0x3b1a8                                            |         r0 = zbx_json_decodevalue ();
    0x0003c492 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0003c494 beq.w 0x3c59e                                         |             goto label_4;
                                                                     |         }
    0x0003c498 mov r1, r6                                            |         r1 = r6;
    0x0003c49a mov r0, sb                                            |         r0 = sb;
    0x0003c49c bl 0x41798                                            |         r0 = is_double ();
    0x0003c4a0 cmp r0, 0                                             |         
                                                                     |         if (r0 != 0) {
    0x0003c4a2 bne 0x3c59e                                           |             goto label_4;
                                                                     |         }
    0x0003c4a4 cmp.w fp, 5                                           |         
                                                                     |         if (fp <= 5) {
    0x0003c4a8 bhi 0x3c4c4                                           |             
                                                                     |             /* switch table (6 cases) at 0x3c4ae */
    0x0003c4aa tbb [pc, fp]                                          |             __asm ("tbb [0x0003c4b0]");
    0x0003c4b4 vldr d16, [r6, -8]                                    |             __asm ("vldr d16, [r6, -8]");
    0x0003c4b8 vldr d17, [r6]                                        |             __asm ("vldr d17, [r6]");
    0x0003c4bc vadd.f64 d16, d16, d17                                |             __asm ("vadd.f64 d16, d16, d17");
    0x0003c4c0 vstr d16, [r6, -8]                                    |             __asm ("vstr d16, [r6, -8]");
                                                                     |         }
                                                                     | label_0:
    0x0003c4c4 ldr.w r3, [r8, 4]                                     |         r3 = var_834h;
    0x0003c4c8 adds r7, 1                                            |         r7++;
    0x0003c4ca cmp r3, r7                                            |         
    0x0003c4cc bgt 0x3c47a                                           |         
                                                                     |     } while (r3 > r7);
                                                                     | label_1:
    0x0003c4ce ldr.w r8, [sp, 0xc]                                   |     r8 = var_ch;
                                                                     | label_18:
    0x0003c4d2 ldr r2, [sp, 4]                                       |     r2 = var_4h;
    0x0003c4d4 ldrd r0, r1, [r6, -0x8]                               |     __asm ("ldrd r0, r1, [r6, -0x8]");
    0x0003c4d8 cmp r2, 3                                             |     
                                                                     |     if (r2 == 3) {
    0x0003c4da beq.w 0x3c6da                                         |         goto label_19;
                                                                     |     }
                                                                     | label_8:
    0x0003c4de mov r3, r1                                            |     r3 = r1;
    0x0003c4e0 ldr r1, [pc, 0x2a0]                                   |     
    0x0003c4e2 mov r2, r0                                            |     r2 = r0;
    0x0003c4e4 movs r0, 0                                            |     r0 = 0;
    0x0003c4e6 add r1, pc                                            |     r1 = 0x78c6e;
    0x0003c4e8 bl 0x44820                                            |     zbx_dsprintf ()
    0x0003c4ec ldr r3, [sp, 8]                                       |     r3 = var_8h;
    0x0003c4ee movs r1, 0                                            |     r1 = 0;
    0x0003c4f0 str r0, [r3]                                          |     *(r3) = r0;
    0x0003c4f2 bl 0x41798                                            |     is_double ();
    0x0003c4f6 ldr r3, [sp, 8]                                       |     r3 = var_8h;
    0x0003c4f8 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0003c4fa bne.w 0x3c75a                                         |         goto label_20;
                                                                     |     }
    0x0003c4fe ldr r0, [r3]                                          |     r0 = *(r3);
    0x0003c500 bl 0x4448c                                            |     del_zeros ();
                                                                     | label_10:
    0x0003c504 movs r7, 0                                            |     r7 = 0;
                                                                     | label_3:
    0x0003c506 cmp r5, 0                                             |     
                                                                     |     if (r5 <= 0) {
    0x0003c508 ble.w 0x3c6f4                                         |         goto label_21;
                                                                     |     }
    0x0003c50c movs r4, 0                                            |     r4 = 0;
    0x0003c50e mov r6, r4                                            |     r6 = r4;
                                                                     |     do {
    0x0003c510 ldr.w r0, [r8, r4, lsl 3]                             |         offset_0 = r4 << 3;
                                                                     |         r0 = *((r8 + offset_0));
                                                                     |         if (r0 != 0) {
    0x0003c514 cbz r0, 0x3c51e                                       |             
    0x0003c516 blx 0xde30                                            |             fcn_0000de30 ();
    0x0003c51a str.w r6, [r8, r4, lsl 3]                             |             __asm ("str.w r6, [r8, r4, lsl 3]");
    0x0003c51c str r4, [r6]                                          |             *(r6) = r4;
                                                                     |         }
    0x0003c51e adds r4, 1                                            |         r4++;
    0x0003c520 cmp r4, r5                                            |         
    0x0003c522 bne 0x3c510                                           |         
                                                                     |     } while (r4 != r5);
                                                                     | label_9:
    0x0003c524 subw sl, sl, 0x838                                    |     __asm ("subw sl, var_20h");
    0x0003c528 mov r0, r8                                            |     r0 = r8;
    0x0003c52a ldr.w r3, [sl, 0x14]                                  |     r3 = var_14h;
    0x0003c52e blx r3                                                |     uint32_t (*r3)(uint32_t, uint32_t) (r0, r3);
                                                                     | label_7:
    0x0003c530 ldr r2, [pc, 0x254]                                   |     
    0x0003c532 add.w r1, sp, 0x1840                                  |     r1 += var_1840h;
    0x0003c536 ldr r3, [pc, 0x238]                                   |     r3 = *(0x3c772);
    0x0003c538 adds r1, 0x14                                         |     r1 += 0x14;
    0x0003c53a add r2, pc                                            |     r2 = 0x78cc6;
    0x0003c53c ldr r3, [r2, r3]                                      |     r3 = *(0x78cc6);
    0x0003c53e ldr r2, [r3]                                          |     r2 = *(0x78cc6);
    0x0003c540 ldr r3, [r1]                                          |     r3 = *(r1);
    0x0003c542 eors r2, r3                                           |     r2 ^= r3;
    0x0003c544 mov.w r3, 0                                           |     r3 = 0;
                                                                     |     if (r2 != r3) {
    0x0003c548 bne.w 0x3c766                                         |         goto label_22;
                                                                     |     }
    0x0003c54c mov r0, r7                                            |     r0 = r7;
    0x0003c54e add.w sp, sp, 0x1840                                  |     
    0x0003c552 add sp, 0x1c                                          |     
    0x0003c554 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
                                                                     | label_2:
    0x0003c558 vldr d16, [r6]                                        |     __asm ("vldr d16, [r6]");
    0x0003c55c vldr d17, [r6, -8]                                    |     __asm ("vldr d17, [r6, -8]");
    0x0003c560 vcmpe.f64 d16, d17                                    |     __asm ("vcmpe.f64 d16, d17");
    0x0003c564 vmrs apsr_nzcv, fpscr                                 |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                     |     if (r2 <= r3) {
    0x0003c568 ble 0x3c4c4                                           |         goto label_0;
                                                                     |     }
    0x0003c56a ldr.w r3, [r8, 4]                                     |     r3 = var_834h;
    0x0003c56e adds r7, 1                                            |     r7++;
    0x0003c570 vstr d16, [r6, -8]                                    |     __asm ("vstr d16, [r6, -8]");
    0x0003c574 cmp r7, r3                                            |     
                                                                     |     if (r7 >= r3) {
    0x0003c576 bge 0x3c4ce                                           |         goto label_1;
                                                                     |     }
    0x0003c578 ldr.w r3, [r8]                                        |     r3 = *(r8);
    0x0003c57c mov.w r2, 0x800                                       |     r2 = 0x800;
    0x0003c580 mov r1, sb                                            |     r1 = sb;
    0x0003c582 add.w r3, r3, r7, lsl 3                               |     r3 += (r7 << 3);
    0x0003c586 ldr r4, [r3, 4]                                       |     r4 = *((r3 + 4));
    0x0003c588 movs r3, 0                                            |     r3 = 0;
    0x0003c58a mov r0, r4                                            |     r0 = r4;
    0x0003c58c bl 0x3b1a8                                            |     r0 = zbx_json_decodevalue ();
                                                                     |     if (r0 == 0) {
    0x0003c590 cbz r0, 0x3c59e                                       |         goto label_4;
                                                                     |     }
    0x0003c592 mov r1, r6                                            |     r1 = r6;
    0x0003c594 mov r0, sb                                            |     r0 = sb;
    0x0003c596 bl 0x41798                                            |     r0 = is_double ();
    0x0003c59a cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0003c59c beq 0x3c558                                           |         goto label_2;
                                                                     |     }
                                                                     | label_4:
    0x0003c59e ldr r0, [pc, 0x1ec]                                   |     
    0x0003c5a0 mov r1, r4                                            |     r1 = r4;
    0x0003c5a2 ldr.w r8, [sp, 0xc]                                   |     r8 = var_ch;
    0x0003c5a6 add r0, pc                                            |     r0 = 0x78d38;
    0x0003c5a8 bl 0x3a990                                            |     zbx_set_json_strerror ();
                                                                     | label_11:
    0x0003c5ac mov.w r7, -1                                          |     r7 = -1;
    0x0003c5b0 b 0x3c506                                             |     goto label_3;
                                                                     | label_5:
    0x0003c5b2 vldr d16, [r6]                                        |     __asm ("vldr d16, [r6]");
    0x0003c5b6 vldr d17, [r6, -8]                                    |     __asm ("vldr d17, [r6, -8]");
    0x0003c5ba vcmpe.f64 d16, d17                                    |     __asm ("vcmpe.f64 d16, d17");
    0x0003c5bc lsrs r1, r4, 0xf                                      |     r1 = r4 >> 0xf;
    0x0003c5be vmrs apsr_nzcv, fpscr                                 |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                     |     if (r1 >= r4) {
    0x0003c5c2 bpl.w 0x3c4c4                                         |         goto label_0;
                                                                     |     }
    0x0003c5c6 ldr.w r3, [r8, 4]                                     |     r3 = var_834h;
    0x0003c5ca adds r7, 1                                            |     r7++;
    0x0003c5cc vstr d16, [r6, -8]                                    |     __asm ("vstr d16, [r6, -8]");
    0x0003c5d0 cmp r3, r7                                            |     
                                                                     |     if (r3 <= r7) {
    0x0003c5d2 ble.w 0x3c722                                         |         goto label_23;
                                                                     |     }
    0x0003c5d6 ldr.w r3, [r8]                                        |     r3 = *(r8);
    0x0003c5da mov.w r2, 0x800                                       |     r2 = 0x800;
    0x0003c5dc str r0, [r0, 0x20]                                    |     *((r0 + 0x20)) = r0;
    0x0003c5de mov r1, sb                                            |     r1 = sb;
    0x0003c5e0 add.w r3, r3, r7, lsl 3                               |     r3 += (r7 << 3);
    0x0003c5e4 ldr r4, [r3, 4]                                       |     r4 = *((r3 + 4));
    0x0003c5e6 movs r3, 0                                            |     r3 = 0;
    0x0003c5e8 mov r0, r4                                            |     r0 = r4;
    0x0003c5ea bl 0x3b1a8                                            |     r0 = zbx_json_decodevalue ();
    0x0003c5ee cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0003c5f0 beq 0x3c59e                                           |         goto label_4;
                                                                     |     }
    0x0003c5f2 mov r1, r6                                            |     r1 = r6;
    0x0003c5f4 mov r0, sb                                            |     r0 = sb;
    0x0003c5f6 bl 0x41798                                            |     r0 = is_double ();
    0x0003c5fa cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0003c5fc beq 0x3c5b2                                           |         goto label_5;
                                                                     |     }
    0x0003c5fe b 0x3c59e                                             |     goto label_4;
                                                                     | label_13:
    0x0003c600 cmp r2, 0                                             |     
                                                                     |     if (r2 == 0) {
    0x0003c602 beq.w 0x3c72c                                         |         goto label_24;
                                                                     |     }
    0x0003c606 ldr r3, [r4]                                          |     r3 = *(r4);
    0x0003c608 ldr r0, [r3, 4]                                       |     r0 = *((r3 + 4));
    0x0003c60a ldrb r3, [r0]                                         |     r3 = *(r0);
    0x0003c60c cmp r3, 0x5b                                          |     
                                                                     |     if (r3 != 0x5b) {
    0x0003c60e bne.w 0x3c72c                                         |         goto label_24;
                                                                     |     }
    0x0003c612 add r6, sp, 0x18                                      |     r6 += var_18h;
    0x0003c614 mov r1, r6                                            |     r1 = r6;
    0x0003c616 bl 0x3b42c                                            |     zbx_json_brackets_open ();
    0x0003c61a adds r0, 1                                            |     r0++;
                                                                     |     if (r0 == 1) {
    0x0003c61c beq.w 0x3c734                                         |         goto label_25;
                                                                     |     }
    0x0003c620 ldr.w sb, [pc, 0x16c]                                 |     
    0x0003c624 add.w r8, sp, 0x1040                                  |     r8 += var_1040h;
    0x0003c628 mov r5, r7                                            |     r5 = r7;
    0x0003c62a add r4, sp, 0x20                                      |     r4 += var_20h;
    0x0003c62c add.w r8, r8, 0x14                                    |     r8 += var_14h_2;
    0x0003c630 add sb, pc                                            |     sb = 0x78dc4;
    0x0003c632 b 0x3c64e                                             |     
                                                                     |     while (r0 != 0) {
    0x0003c634 adds r2, r7, 1                                        |         r2 = r7 + 1;
    0x0003c636 mov r3, r7                                            |         r3 = r7;
    0x0003c638 movs r1, 0x16                                         |         r1 = 0x16;
    0x0003c63a mov r7, r2                                            |         r7 = r2;
    0x0003c63c mov r0, r8                                            |         r0 = r8;
    0x0003c63e mov r2, sb                                            |         r2 = sb;
    0x0003c640 bl 0x43f38                                            |         zbx_snprintf ();
    0x0003c644 mov r2, r5                                            |         r2 = r5;
    0x0003c646 mov r1, r8                                            |         r1 = r8;
    0x0003c648 mov r0, r4                                            |         r0 = r4;
    0x0003c64a bl 0x3c288                                            |         fcn_0003c288 (r0, r1, r2);
    0x0003c64c invalid                                               |         
    0x0003c64e mov r1, r5                                            |         r1 = r5;
    0x0003c650 mov r0, r6                                            |         r0 = r6;
    0x0003c652 bl 0x3b048                                            |         r0 = zbx_json_next ();
    0x0003c656 mov r5, r0                                            |         r5 = r0;
    0x0003c658 cmp r0, 0                                             |         
    0x0003c65a bne 0x3c634                                           |         
                                                                     |     }
    0x0003c65c subw r3, sl, 0x838                                    |     __asm ("subw r3, var_20h");
    0x0003c660 ldrd r8, r5, [r3]                                     |     __asm ("ldrd r8, r5, [r3]");
    0x0003c664 mov r2, r5                                            |     r2 = r5;
    0x0003c666 b 0x3c41e                                             |     goto label_6;
                                                                     | label_12:
    0x0003c668 cmp r2, 0                                             |     
                                                                     |     if (r2 == 0) {
    0x0003c66a beq 0x3c750                                           |         goto label_26;
                                                                     |     }
                                                                     |     if (r5 != 0) {
    0x0003c66c cbnz r5, 0x3c6c0                                      |         goto label_27;
                                                                     |     }
    0x0003c66e add r6, sp, 0x3c                                      |     r6 += var_3ch;
    0x0003c670 mov.w r1, 0x400                                       |     r1 = 0x400;
    0x0003c674 mov r0, r6                                            |     r0 = r6;
    0x0003c676 bl 0x3ab5c                                            |     zbx_json_initarray ();
    0x0003c67a ldr r3, [r4, 4]                                       |     r3 = *((r4 + 4));
    0x0003c67c cmp r3, 0                                             |     
                                                                     |     if (r3 <= 0) {
    0x0003c67e ble 0x3c698                                           |         goto label_28;
                                                                     |     }
                                                                     |     do {
    0x0003c680 ldr r2, [r4]                                          |         r2 = *(r4);
    0x0003c682 movs r3, 1                                            |         r3 = 1;
    0x0003c684 movs r1, 0                                            |         r1 = 0;
    0x0003c686 mov r0, r6                                            |         r0 = r6;
    0x0003c688 ldr.w r2, [r2, r5, lsl 3]                             |         offset_1 = r5 << 3;
                                                                     |         r2 = *((r2 + offset_1));
    0x0003c68c add r5, r3                                            |         r5 += r3;
    0x0003c68e bl 0x3ac9c                                            |         zbx_json_addstring ();
    0x0003c692 ldr r3, [r4, 4]                                       |         r3 = *((r4 + 4));
    0x0003c694 cmp r3, r5                                            |         
    0x0003c696 bgt 0x3c680                                           |         
                                                                     |     } while (r3 > r5);
                                                                     | label_28:
    0x0003c698 mov r0, r6                                            |     r0 = r6;
    0x0003c69a subw sl, sl, 0x81c                                    |     __asm ("subw sl, var_3ch");
    0x0003c69e bl 0x3af6c                                            |     zbx_json_close ();
    0x0003c6a2 ldr r0, [pc, 0xf0]                                    |     
    0x0003c6a4 movs r2, 0                                            |     r2 = 0;
    0x0003c6a6 ldr.w r3, [sl]                                        |     r3 = *(sl);
    0x0003c6aa mov.w r1, 0x850                                       |     r1 = 0x850;
    0x0003c6ae add r0, pc                                            |     r0 = 0x78e48;
    0x0003c6b0 bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0003c6b4 ldr r3, [sp, 8]                                       |     r3 = var_8h;
    0x0003c6b6 str r0, [r3]                                          |     *(r3) = r0;
    0x0003c6b8 mov r0, r6                                            |     r0 = r6;
    0x0003c6ba bl 0x3abf4                                            |     zbx_json_clean ();
    0x0003c6be b 0x3c6d6                                             |     goto label_29;
                                                                     | label_27:
    0x0003c6c0 ldr r3, [r4]                                          |     r3 = *(r4);
    0x0003c6c2 mov r2, r7                                            |     r2 = r7;
    0x0003c6c4 ldr r0, [pc, 0xd0]                                    |     
    0x0003c6c6 movw r1, 0x854                                        |     r1 = 0x854;
    0x0003c6ca ldr r3, [r3]                                          |     r3 = *(r3);
    0x0003c6cc add r0, pc                                            |     r0 = 0x78e68;
    0x0003c6ce bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0003c6d2 ldr r3, [sp, 8]                                       |     r3 = var_8h;
    0x0003c6d4 str r0, [r3]                                          |     *(r3) = r0;
                                                                     | label_29:
    0x0003c6d6 movs r7, 0                                            |     r7 = 0;
    0x0003c6d8 b 0x3c530                                             |     goto label_7;
                                                                     | label_19:
    0x0003c6da vmov s15, r3                                          |     __asm ("vmov s15, r3");
    0x0003c6de vcvt.f64.s32 d16, s15                                 |     __asm ("vcvt.f64.s32 d16, s15");
    0x0003c6e2 vmov d17, r0, r1                                      |     __asm ("vmov d17, r0, r1");
    0x0003c6e6 vdiv.f64 d16, d17, d16                                |     __asm ("vdiv.f64 d16, d17, d16");
    0x0003c6ea vmov r0, r1, d16                                      |     __asm ("vmov r0, r1, d16");
    0x0003c6ee vstr d16, [r6, -8]                                    |     __asm ("vstr d16, [r6, -8]");
    0x0003c6f2 b 0x3c4de                                             |     goto label_8;
                                                                     | label_21:
    0x0003c6f4 cmp.w r8, 0                                           |     
                                                                     |     if (r8 == 0) {
    0x0003c6f8 beq.w 0x3c530                                         |         goto label_7;
                                                                     |     }
    0x0003c6fc b 0x3c524                                             |     goto label_9;
                                                                     | label_15:
    0x0003c6fe cmp r2, 0                                             |     
                                                                     |     if (r2 <= 0) {
    0x0003c700 ble.w 0x3c504                                         |         goto label_10;
                                                                     |     }
    0x0003c704 ldr r3, [r4]                                          |     r3 = *(r4);
    0x0003c706 ldr r1, [sp, 8]                                       |     r1 = var_8h;
    0x0003c708 ldr r0, [r3, 4]                                       |     r0 = *((r3 + 4));
    0x0003c70a bl 0x3bee4                                            |     r0 = fcn_0003bee4 (r0, r1, r2);
    0x0003c70e mov r7, r0                                            |     r7 = r0;
    0x0003c710 b 0x3c506                                             |     goto label_3;
                                                                     | label_14:
    0x0003c712 ldr r1, [pc, 0x88]                                    |     
    0x0003c714 movs r0, 0                                            |     r0 = 0;
    0x0003c716 add r1, pc                                            |     r1 = 0x78eb8;
    0x0003c718 bl 0x44820                                            |     zbx_dsprintf ()
    0x0003c71c ldr r3, [sp, 8]                                       |     r3 = var_8h;
    0x0003c71e str r0, [r3]                                          |     *(r3) = r0;
    0x0003c720 b 0x3c504                                             |     goto label_10;
                                                                     | label_23:
    0x0003c722 ldr.w r8, [sp, 0xc]                                   |     r8 = var_ch;
    0x0003c726 vmov r0, r1, d16                                      |     __asm ("vmov r0, r1, d16");
    0x0003c728 lsrs r0, r6, 0xc                                      |     r0 = r6 >> 0xc;
    0x0003c72a b 0x3c4de                                             |     goto label_8;
                                                                     | label_24:
    0x0003c72c ldr r0, [pc, 0x70]                                    |     
    0x0003c72e add r0, pc                                            |     r0 = 0x78ed2;
    0x0003c730 bl 0x3a990                                            |     zbx_set_json_strerror ();
                                                                     |     do {
                                                                     | label_25:
    0x0003c734 mov.w r7, -1                                          |         r7 = -1;
    0x0003c738 b 0x3c530                                             |         goto label_7;
                                                                     | label_17:
    0x0003c73a ldr r0, [pc, 0x68]                                    |         
    0x0003c73c mov r1, r7                                            |         r1 = r7;
    0x0003c73e add r0, pc                                            |         r0 = 0x78ee8;
    0x0003c740 bl 0x3a990                                            |         zbx_set_json_strerror ();
    0x0003c744 b 0x3c5ac                                             |         goto label_11;
                                                                     | label_16:
    0x0003c746 ldr r0, [pc, 0x60]                                    |         
    0x0003c748 add r0, pc                                            |         r0 = 0x78ef6;
    0x0003c74a bl 0x3a990                                            |         zbx_set_json_strerror ();
    0x0003c74e b 0x3c5ac                                             |         goto label_11;
                                                                     | label_26:
    0x0003c750 ldr r0, [pc, 0x58]                                    |         
    0x0003c752 add r0, pc                                            |         r0 = 0x78f02;
    0x0003c754 bl 0x3a990                                            |         zbx_set_json_strerror ();
    0x0003c758 b 0x3c734                                             |         
                                                                     |     } while (1);
                                                                     | label_20:
    0x0003c75a ldr r0, [pc, 0x54]                                    |     
    0x0003c75c ldr r1, [r3]                                          |     r1 = *(r3);
    0x0003c75e add r0, pc                                            |     r0 = 0x78f14;
    0x0003c760 bl 0x3a990                                            |     zbx_set_json_strerror ();
    0x0003c764 b 0x3c5ac                                             |     goto label_11;
                                                                     | label_22:
    0x0003c766 blx 0xe158                                            |     fcn_0000e158 ();
    0x0003c76a nop                                                   |     
    0x0003c76c strb.w r0, [ip, r1]                                   |     *((ip + r1)) = r0;
    0x0003c770 lsls r4, r2, 0xe                                      |     r4 = r2 << 0xe;
    0x0003c772 movs r0, r0                                           |     
    0x0003c774 invalid                                               |     
                                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x2bca0 */
                                                                 | #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_2h, int16_t arg_4h, int16_t arg_8h, int16_t arg_ah, int16_t arg_bh, int16_t arg_ch, int16_t arg_eh, int16_t arg_fh, int16_t arg_10h, int16_t arg_1d0h, int16_t arg_1dch, int16_t arg_1e0h, int16_t arg_38h, int16_t arg_3ch, int16_t arg_40h, int16_t arg_44h, int16_t arg_48h, int16_t arg_4ch, int16_t arg_50h, int16_t arg_54h, int16_t arg_90h, int16_t arg_94h, int16_t arg_2d0h, int16_t arg_4cch, int16_t arg_8cch, int16_t arg_10c0h, int16_t arg_18c0h, int16_t arg_20c0h, int16_t arg1, int16_t arg2) {
                                                                 |     int16_t var_78h;
                                                                 |     int16_t var_74h;
                                                                 |     int16_t var_70h;
                                                                 |     int16_t var_6ch;
                                                                 |     int16_t var_68h;
                                                                 |     int16_t var_64h;
                                                                 |     int16_t var_50h;
                                                                 |     int16_t var_bp_30h;
                                                                 |     int16_t var_bp_20h;
                                                                 |     int16_t var_bp_1ch;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_sp_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;
                                                                 |     int16_t var_34h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 | label_22:
    0x0002ab7c svcmi 0xf0e92d                                    |     __asm ("svcmi 0xf0e92d");
    0x0002ab80 mov r5, r0                                        |     r5 = r0;
    0x0002ab82 ldr.w r4, [pc, 0xc7c]                             |     r4 = *(0x0002b800);
    0x0002ab86 sub.w sp, sp, 0x20c0                              |     
    0x0002ab8a sub sp, 0x14                                      |     
    0x0002ab8c movs r7, 0                                        |     r7 = 0;
    0x0002ab8e ldr.w r0, [pc, 0xc74]                             |     
    0x0002ab92 add.w r6, sp, 0x20c0                              |     r6 += arg_20c0h;
    0x0002ab96 ldr.w r3, [pc, 0xc70]                             |     r3 = *(0x2b80a);
    0x0002ab9a add r4, pc                                        |     r4 += pc;
    0x0002ab9c str r4, [sp, 0x44]                                |     *(arg_44h) = r4;
    0x0002ab9e adds r6, 0xc                                      |     r6 += 0xc;
    0x0002aba0 add r0, pc                                        |     r0 = 0x563aa;
    0x0002aba2 add.w fp, sp, 0xd0                                |     
    0x0002aba6 ldr r3, [r0, r3]                                  |     
    0x0002aba8 ldr r3, [r3]                                      |     r3 = *(0x563aa);
    0x0002abaa str r3, [r6]                                      |     *(r6) = r3;
    0x0002abac mov.w r3, 0                                       |     r3 = 0;
    0x0002abb0 ldr r3, [r5, 4]                                   |     r3 = *((r5 + 4));
    0x0002abb2 str r2, [sp, 0x40]                                |     *(arg_40h) = r2;
    0x0002abb4 add.w r2, sp, 0x10c0                              |     r2 += arg_10c0h;
    0x0002abb8 adds r2, 0x10                                     |     r2 += 0x10;
    0x0002abba str r7, [fp, -0x6c]                               |     var_6ch = r7;
    0x0002abbe cmp r3, 6                                         |     
    0x0002abc0 str r1, [sp, 0x30]                                |     var_30h = r1;
    0x0002abc2 str r2, [sp, 0x1c]                                |     var_1ch = r2;
    0x0002abc4 strb r7, [r2, -0x4]                               |     *((r2 - 0x4)) = r7;
                                                                 |     if (r3 > 6) {
    0x0002abc8 bgt.w 0x2af7c                                     |         goto label_26;
                                                                 |     }
    0x0002abcc cmp r3, 0                                         |     
                                                                 |     if (r3 <= 0) {
    0x0002abce ble.w 0x2acd4                                     |         goto label_27;
                                                                 |     }
    0x0002abd2 ldr r2, [r5, 8]                                   |     r2 = *((r5 + 8));
    0x0002abd4 cmp r3, 1                                         |     
    0x0002abd6 mov.w r3, 4                                       |     r3 = 4;
    0x0002abd8 lsls r4, r0, 0xc                                  |     r4 = r0 << 0xc;
    0x0002abda add r4, sp, 0x90                                  |     r4 += arg_90h;
    0x0002abdc ldr r1, [r2]                                      |     r1 = *(r2);
    0x0002abde str r3, [fp, -0x50]                               |     var_50h = r3;
    0x0002abe2 it ne                                             |     
                                                                 |     if (r4 == r0) {
    0x0002abe4 ldrne r7, [r2, 4]                                 |         r7 = *((r2 + 4));
                                                                 |     }
    0x0002abe6 sub.w r2, r4, 0x10                                |     r2 = r4 - 0x10;
    0x0002abea str r1, [sp, 0x20]                                |     var_20h = r1;
    0x0002abec movs r1, 0                                        |     r1 = 0;
    0x0002abee ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x0002abf0 strd r1, r1, [r4, -0xc]                           |     __asm ("strd r1, r1, [r4, -0xc]");
    0x0002abf4 strd r1, r1, [r4, -0x4]                           |     __asm ("strd r1, r1, [r4, -0x4]");
    0x0002abf8 strd r1, r1, [r4, 4]                              |     __asm ("strd r1, r1, [r4, 4]");
    0x0002abfc str r1, [r4, 0xc]                                 |     *((r4 + 0xc)) = r1;
                                                                 |     if (r3 != 0) {
    0x0002abfe cbz r3, 0x2ac08                                   |         
    0x0002ac00 ldrb r3, [r3]                                     |         r3 = *(r3);
    0x0002ac02 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x0002ac04 bne.w 0x2b7b8                                     |             goto label_28;
                                                                 |         }
                                                                 |     }
    0x0002ac08 movs r3, 2                                        |     r3 = 2;
    0x0002ac0a str r3, [sp, 0x24]                                |     var_24h = r3;
                                                                 | label_15:
    0x0002ac0c cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x0002ac0e beq 0x2acf0                                       |         goto label_29;
                                                                 |     }
    0x0002ac10 ldrb r3, [r7]                                     |     r3 = *(r7);
    0x0002ac12 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0002ac14 beq 0x2acf0                                       |         goto label_29;
                                                                 |     }
    0x0002ac16 mov r1, r7                                        |     r1 = r7;
    0x0002ac18 addw r7, sp, 0x8cc                                |     __asm ("addw r7, arg_8cch");
    0x0002ac1c mov.w r2, 0x800                                   |     r2 = 0x800;
    0x0002ac20 mov r0, r7                                        |     r0 = r7;
    0x0002ac22 bl 0x4465c                                        |     zbx_strlcpy ();
    0x0002ac26 ldr.w sl, [r5, 4]                                 |     sl = *((r5 + 4));
    0x0002ac2a cmp.w sl, 2                                       |     
                                                                 |     if (sl <= 2) {
    0x0002ac2e ble 0x2ad0e                                       |         goto label_30;
                                                                 |     }
                                                                 |     do {
    0x0002ac30 ldr r3, [r5, 8]                                   |         r3 = *((r5 + 8));
    0x0002ac32 ldr r6, [r3, 8]                                   |         r6 = *((r3 + 8));
                                                                 |         if (r6 != 0) {
    0x0002ac34 cbz r6, 0x2ac3e                                   |             
    0x0002ac36 ldrb r2, [r6]                                     |             r2 = *(r6);
    0x0002ac38 cmp r2, 0                                         |             
                                                                 |             if (r2 != 0) {
    0x0002ac3a bne.w 0x2afcc                                     |                 goto label_31;
                                                                 |             }
                                                                 |         }
    0x0002ac3e movs r6, 6                                        |         r6 = 6;
                                                                 | label_0:
    0x0002ac40 cmp.w sl, 3                                       |         
    0x0002ac44 itt eq                                            |         
                                                                 |         if (sl != 3) {
    0x0002ac46 moveq r3, 1                                       |             r3 = 1;
                                                                 |         }
                                                                 |         if (sl != 3) {
    0x0002ac48 streq r3, [fp, -0x78]                             |             var_78h = r3;
                                                                 |         }
                                                                 |         if (sl == 3) {
    0x0002ac4c beq 0x2ad16                                       |             goto label_32;
                                                                 |         }
    0x0002ac4e ldr r0, [r3, 0xc]                                 |         r0 = *((r3 + 0xc));
                                                                 |         if (r0 != 0) {
    0x0002ac50 cbz r0, 0x2ac5a                                   |             
    0x0002ac52 ldrb r3, [r0]                                     |             r3 = *(r0);
    0x0002ac54 cmp r3, 0                                         |             
                                                                 |             if (r3 != 0) {
    0x0002ac56 bne.w 0x2b1fc                                     |                 goto label_33;
                                                                 |             }
                                                                 |         }
    0x0002ac5a movs r3, 1                                        |         r3 = 1;
    0x0002ac5c str r3, [fp, -0x78]                               |         var_78h = r3;
                                                                 | label_4:
    0x0002ac60 cmp.w sl, 4                                       |         
                                                                 |         if (sl <= 4) {
    0x0002ac64 ble 0x2ad16                                       |             goto label_32;
                                                                 |         }
    0x0002ac66 ldr r3, [r5, 8]                                   |         r3 = *((r5 + 8));
    0x0002ac68 ldr r0, [r3, 0x10]                                |         r0 = *((r3 + 0x10));
                                                                 |         if (r0 != 0) {
    0x0002ac6a cbz r0, 0x2ac74                                   |             
    0x0002ac6c ldrb r3, [r0]                                     |             r3 = *(r0);
    0x0002ac6e cmp r3, 0                                         |             
                                                                 |             if (r3 != 0) {
    0x0002ac70 bne.w 0x2b234                                     |                 goto label_34;
                                                                 |             }
                                                                 |         }
    0x0002ac74 movs r3, 2                                        |         r3 = 2;
    0x0002ac76 str r3, [fp, -0x74]                               |         var_74h = r3;
                                                                 | label_5:
    0x0002ac7a cmp.w sl, 5                                       |         
                                                                 |         if (sl <= 5) {
    0x0002ac7e ble 0x2ad1c                                       |             goto label_35;
                                                                 |         }
    0x0002ac80 ldr r3, [r5, 8]                                   |         r3 = *((r5 + 8));
    0x0002ac82 ldr r5, [r3, 0x14]                                |         r5 = *((r3 + 0x14));
    0x0002ac84 cmp r5, 0                                         |         
                                                                 |         if (r5 == 0) {
    0x0002ac86 beq 0x2ad1c                                       |             goto label_35;
                                                                 |         }
    0x0002ac88 ldrb r3, [r5]                                     |         r3 = *(r5);
    0x0002ac8a cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x0002ac8c beq 0x2ad1c                                       |             goto label_35;
                                                                 |         }
    0x0002ac8e ldr.w r1, [pc, 0xb7c]                             |         
    0x0002ac92 mov r0, r5                                        |         r0 = r5;
    0x0002ac94 add r1, pc                                        |         r1 = 0x564a6;
    0x0002ac96 blx 0xe3b0                                        |         r0 = fcn_0000e3b0 ();
    0x0002ac9a mov r8, r0                                        |         r8 = r0;
    0x0002ac9c cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0002ac9e beq 0x2ad20                                       |             goto label_36;
                                                                 |         }
    0x0002aca0 ldr.w r1, [pc, 0xb6c]                             |         r1 = *(0x0002b810);
    0x0002aca4 mov r0, r5                                        |         r0 = r5;
    0x0002aca6 mov.w r8, 1                                       |         r8 = 1;
    0x0002acaa add r1, pc                                        |         r1 += pc;
    0x0002acac blx 0xe3b0                                        |         r0 = fcn_0000e3b0 ();
                                                                 |         if (r0 == 0) {
    0x0002acb0 cbz r0, 0x2ad20                                   |             goto label_36;
                                                                 |         }
    0x0002acb2 ldr r4, [sp, 0x30]                                |         r4 = var_30h;
    0x0002acb4 movs r2, 0                                        |         r2 = 0;
    0x0002acb6 ldr.w r3, [pc, 0xb5c]                             |         
    0x0002acba mov.w r1, 0x130                                   |         r1 = 0x130;
    0x0002acbe ldr r0, [r4, 0x28]                                |         r0 = *((r4 + 0x28));
    0x0002acc0 add r3, pc                                        |         r3 = 0x564da;
    0x0002acc2 orr r0, r0, 0x20                                  |         r0 |= 0x20;
    0x0002acc6 str r0, [r4, 0x28]                                |         *((r4 + 0x28)) = r0;
    0x0002acc8 ldr.w r0, [pc, 0xb4c]                             |         
    0x0002accc add r0, pc                                        |         r0 = 0x564e8;
    0x0002acce bl 0x40ed8                                        |         zbx_strdup2 ();
    0x0002acd2 b 0x2af9a                                         |         goto label_13;
                                                                 | label_27:
    0x0002acd4 movs r3, 4                                        |         r3 = 4;
    0x0002acd6 add r4, sp, 0x90                                  |         r4 += arg_90h;
    0x0002acd8 str r3, [fp, -0x50]                               |         var_50h = r3;
    0x0002acdc movs r3, 2                                        |         r3 = 2;
    0x0002acde strd r7, r7, [r4, -0xc]                           |         __asm ("strd r7, r7, [r4, -0xc]");
    0x0002ace2 strd r7, r7, [r4, -0x4]                           |         __asm ("strd r7, r7, [r4, -0x4]");
    0x0002ace6 strd r7, r7, [r4, 4]                              |         __asm ("strd r7, r7, [r4, 4]");
    0x0002acea str r7, [sp, 0x20]                                |         var_20h = r7;
    0x0002acec str r3, [sp, 0x24]                                |         var_24h = r3;
    0x0002acee str r7, [r4, 0xc]                                 |         *((r4 + 0xc)) = r7;
                                                                 | label_29:
    0x0002acf0 ldr.w r1, [pc, 0xb28]                             |         r1 = *(0x0002b81c);
    0x0002acf4 addw r7, sp, 0x8cc                                |         __asm ("addw r7, arg_8cch");
    0x0002acf8 mov.w r2, 0x800                                   |         r2 = 0x800;
    0x0002acfc mov r0, r7                                        |         r0 = r7;
    0x0002acfe add r1, pc                                        |         r1 += pc;
    0x0002ad00 bl 0x4465c                                        |         zbx_strlcpy ();
    0x0002ad04 ldr.w sl, [r5, 4]                                 |         sl = *((r5 + 4));
    0x0002ad08 cmp.w sl, 2                                       |         
    0x0002ad0c bgt 0x2ac30                                       |         
                                                                 |     } while (sl > 2);
                                                                 | label_30:
    0x0002ad0e movs r6, 6                                        |     r6 = 6;
    0x0002ad10 movs r3, 1                                        |     r3 = 1;
    0x0002ad12 str r3, [fp, -0x78]                               |     var_78h = r3;
                                                                 | label_32:
    0x0002ad16 movs r3, 2                                        |     r3 = 2;
    0x0002ad18 str r3, [fp, -0x74]                               |     var_74h = r3;
                                                                 | label_35:
    0x0002ad1c mov.w r8, 0                                       |     r8 = 0;
                                                                 | label_36:
    0x0002ad20 sub.w r5, fp, 4                                   |     r5 = fp - 4;
    0x0002ad24 mov.w sl, 0x200                                   |     sl = 0x200;
    0x0002ad28 mov r2, sl                                        |     r2 = sl;
    0x0002ad2a movs r1, 0                                        |     r1 = 0;
    0x0002ad2c mov r0, r5                                        |     r0 = r5;
    0x0002ad2e blx 0xdd6c                                        |     uname ();
    0x0002ad32 mov r0, r5                                        |     r0 = r5;
    0x0002ad34 blx 0xe0b8                                        |     fcn_0000e0b8 ();
    0x0002ad38 adds r0, 1                                        |     r0++;
                                                                 |     if (r0 == 1) {
    0x0002ad3a beq.w 0x2b978                                     |         goto label_37;
                                                                 |     }
    0x0002ad3e mov r2, r7                                        |     r2 = r7;
    0x0002ad40 mov.w r3, 0x400                                   |     r3 = 0x400;
    0x0002ad44 movs r7, 0                                        |     r7 = 0;
    0x0002ad46 str r6, [sp]                                      |     *(sp) = r6;
    0x0002ad48 addw r6, sp, 0x4cc                                |     __asm ("addw r6, arg_4cch");
    0x0002ad4c str r3, [sp, 0x14]                                |     var_14h = r3;
    0x0002ad4e mov r1, r7                                        |     r1 = r7;
    0x0002ad50 movs r3, 1                                        |     r3 = 1;
    0x0002ad52 mov r0, r5                                        |     r0 = r5;
    0x0002ad54 strd r7, r7, [sp, 8]                              |     __asm ("strd r7, r7, [sp, 8]");
    0x0002ad58 str r7, [sp, 4]                                   |     var_sp_4h = r7;
    0x0002ad5a str r6, [sp, 0x10]                                |     var_10h = r6;
    0x0002ad5c blx 0xdc74                                        |     r0 = fcn_0000dc74 ();
    0x0002ad60 cmp.w r0, -1                                      |     
    0x0002ad64 mov sb, r0                                        |     sb = r0;
                                                                 |     if (r0 == -1) {
    0x0002ad66 beq.w 0x2b9f8                                     |         goto label_38;
                                                                 |     }
    0x0002ad6a ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x0002ad6c cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0002ad6e beq.w 0x2b944                                     |         goto label_39;
                                                                 |     }
    0x0002ad72 ldrb r3, [r3]                                     |     r3 = *(r3);
                                                                 |     if (r3 != 0) {
    0x0002ad74 cbz r3, 0x2add8                                   |         
    0x0002ad76 ldr r3, [sp, 0x24]                                |         r3 = var_24h;
    0x0002ad78 cmp r3, 2                                         |         
                                                                 |         if (r3 == 2) {
    0x0002ad7a beq.w 0x2babe                                     |             goto label_40;
                                                                 |         }
    0x0002ad7e sub.w sl, fp, 0x30                                |         sl = fp - 0x30;
    0x0002ad82 ldr r1, [sp, 0x20]                                |         r1 = var_20h;
    0x0002ad84 mov r2, sl                                        |         r2 = sl;
    0x0002ad86 movs r0, 0xa                                      |         r0 = 0xa;
    0x0002ad88 blx 0xde84                                        |         r0 = fcn_0000de84 ();
    0x0002ad8c cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0002ad8e beq.w 0x2ba88                                     |             goto label_41;
                                                                 |         }
    0x0002ad92 mov.w r2, -1                                      |         r2 = -1;
    0x0002ad96 movs r3, 0xa                                      |         
    0x0002ad98 movt r3, 0x3500                                   |         r3 = 0x3500000a;
    0x0002ad9c str.w r2, [fp, 0x1d0]                             |         __asm ("str.w r2, [arg_1d0h]");
    0x0002ada0 ldr.w r2, [fp, 0x1e0]                             |         r2 = *(arg_1e0h);
    0x0002ada4 str r3, [fp, -0x20]                               |         var_bp_20h = r3;
    0x0002ada8 movs r3, 1                                        |         r3 = 1;
    0x0002adaa strh.w r3, [fp, 0x1dc]                            |         *(arg_1dch) = r3;
    0x0002adae str.w r3, [fp, 8]                                 |         __asm ("str.w r3, [arg_8h]");
    0x0002adb2 sub.w r3, fp, 0x20                                |         r3 = fp - 0x20;
    0x0002adb6 str r2, [sp, 0x34]                                |         var_34h = r2;
    0x0002adb8 str.w r3, [fp, 0x1e0]                             |         __asm ("str.w r3, [arg_1e0h]");
    0x0002adbc ldm.w sl, {r0, r1, r2, r3}                        |         r0 = *(sl);
                                                                 |         r1 = *((sl + 4));
                                                                 |         r2 = *((sl + 8));
                                                                 |         r3 = *((sl + 12));
    0x0002adc0 str r7, [fp, -0x8]                                |         *((fp - 0x8)) = r7;
    0x0002adc4 str r7, [fp, -0x1c]                               |         var_bp_1ch = r7;
    0x0002adc8 strd r7, r7, [fp, 0xc]                            |         __asm ("strd r7, r7, [fp, 0xc]");
    0x0002adcc strd r7, r7, [fp, 0x14]                           |         __asm ("strd r7, r7, [fp, 0x14]");
    0x0002add0 sub.w r7, fp, 0x18                                |         r7 = fp - 0x18;
    0x0002add4 stm.w r7, {r0, r1, r2, r3}                        |         *(r7) = r0;
                                                                 |         *((r7 + 4)) = r1;
                                                                 |         *((r7 + 8)) = r2;
                                                                 |         *((r7 + 12)) = r3;
                                                                 |     }
                                                                 | label_20:
    0x0002add8 ldrd r2, r3, [fp, -0x78]                          |     __asm ("ldrd r2, r3, [var_78h]");
    0x0002addc cmp.w r8, 0                                       |     
                                                                 |     if (r8 != 0) {
    0x0002ade0 bne.w 0x2b016                                     |         goto label_42;
                                                                 |     }
    0x0002ade4 add r7, sp, 0x2d0                                 |     r7 += arg_2d0h;
    0x0002ade6 mov r1, r6                                        |     r1 = r6;
    0x0002ade8 strd r2, r3, [fp, -0x4]                           |     __asm ("strd r2, r3, [fp, -0x4]");
    0x0002adec mov.w r3, 0x200                                   |     r3 = 0x200;
    0x0002adf0 str r3, [sp]                                      |     *(sp) = r3;
    0x0002adf2 mov r2, sb                                        |     r2 = sb;
    0x0002adf4 subs r3, r7, 4                                    |     r3 = r7 - 4;
    0x0002adf6 mov r0, r5                                        |     r0 = r5;
    0x0002adf8 str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x0002adfa blx 0xdd2c                                        |     r0 = fcn_0000dd2c ();
    0x0002adfe mov r8, r0                                        |     r8 = r0;
                                                                 | label_1:
    0x0002ae00 ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x0002ae02 ldr r2, [sp, 0x24]                                |     r2 = var_24h;
    0x0002ae04 ldrb r3, [r3]                                     |     r3 = *(r3);
    0x0002ae06 subs r3, 0                                        |     
    0x0002ae08 it ne                                             |     
                                                                 |     if (r3 == 0) {
    0x0002ae0a movne r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x0002ae0c cmp r2, 0xa                                       |     
    0x0002ae0e it ne                                             |     
                                                                 |     if (r2 == 0xa) {
    0x0002ae10 movne r3, 0                                       |         r3 = 0;
                                                                 |     }
    0x0002ae12 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0002ae14 bne.w 0x2ba1c                                     |         goto label_43;
                                                                 |     }
                                                                 | label_16:
    0x0002ae18 mov r0, r5                                        |     r0 = r5;
    0x0002ae1a blx 0xe1d0                                        |     fcn_0000e1d0 ();
    0x0002ae1e ldr r3, [sp, 0x40]                                |     r3 = *(arg_40h);
    0x0002ae20 cmp r3, 1                                         |     
                                                                 |     if (r3 == 1) {
    0x0002ae22 beq.w 0x2b99c                                     |         goto label_44;
                                                                 |     }
    0x0002ae26 cmp.w r8, -1                                      |     
                                                                 |     if (r8 == -1) {
    0x0002ae2a beq.w 0x2b75e                                     |         goto label_45;
                                                                 |     }
    0x0002ae2e ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x0002ae30 subw r3, r3, 0xe04                                |     __asm ("subw r3, r3, 0xe04");
    0x0002ae34 ldrb r2, [r3, 3]                                  |     r2 = *((r3 + 3));
    0x0002ae36 lsls r2, r2, 0x1c                                 |     r2 <<= 0x1c;
                                                                 |     if (r2 != r2) {
    0x0002ae38 bne.w 0x2b75e                                     |         goto label_45;
                                                                 |     }
    0x0002ae3c ldrh r2, [r3, 6]                                  |     r2 = *((r3 + 6));
    0x0002ae3e cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0002ae40 beq.w 0x2b75e                                     |         goto label_45;
                                                                 |     }
    0x0002ae44 ldrh r3, [r3, 4]                                  |     r3 = *((r3 + 4));
    0x0002ae46 rev16 r2, r2                                      |     __asm ("rev16 r2, r2");
    0x0002ae48 ldr r1, [sp, 0x2c]                                |     r1 = var_2ch;
    0x0002ae4a sub.w r0, r4, 0x28                                |     r0 = r4 - 0x28;
    0x0002ae4e uxth r2, r2                                       |     r2 = (int16_t) r2;
    0x0002ae50 str r0, [sp, 0x38]                                |     *(arg_38h) = r0;
    0x0002ae52 rev16 r4, r3                                      |     __asm ("rev16 r4, r3");
    0x0002ae54 add.w r5, r1, r8                                  |     r5 = r1 + r8;
    0x0002ae58 uxth r4, r4                                       |     r4 = (int16_t) r4;
    0x0002ae5a add.w r8, r7, 8                                   |     r8 = r7 + 8;
    0x0002ae5e str r5, [sp, 0x20]                                |     var_20h = r5;
    0x0002ae60 str r2, [sp, 0x24]                                |     var_24h = r2;
    0x0002ae62 bl 0x32978                                        |     zbx_vector_str_create ();
    0x0002ae66 cmp r5, r8                                        |     
    0x0002ae68 ite ls                                            |     
                                                                 |     if (r5 > r8) {
    0x0002ae6a movls r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (r5 <= r8) {
    0x0002ae6c movhi r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x0002ae6e cmp r4, 0                                         |     
    0x0002ae70 it ne                                             |     
                                                                 |     if (r4 != 0) {
    0x0002ae72 cmpne r5, r8                                      |         __asm ("cmpne r5, r8");
                                                                 |     }
                                                                 |     if (r4 < 0) {
    0x0002ae74 bls 0x2ae9a                                       |         goto label_46;
                                                                 |     }
                                                                 |     do {
    0x0002ae76 mov r0, r8                                        |         r0 = r8;
    0x0002ae78 mov r1, r5                                        |         r1 = r5;
    0x0002ae7a blx 0xe170                                        |         fcn_0000e170 ();
    0x0002ae7e adds r0, 4                                        |         r0 += 4;
    0x0002ae80 subs r4, 1                                        |         r4--;
    0x0002ae82 add r8, r0                                        |         r8 += r0;
    0x0002ae84 cmp r8, r5                                        |         
    0x0002ae86 ite hs                                            |         
                                                                 |         if (r8 < r5) {
    0x0002ae88 movhs r3, 0                                       |             r3 = 0;
                                                                 |         }
                                                                 |         if (r8 >= r5) {
    0x0002ae8a movlo r3, 1                                       |             r3 = 1;
                                                                 |         }
    0x0002ae8c cmp r4, 0                                         |         
    0x0002ae8e ite le                                            |         
                                                                 |         if (r4 > 0) {
    0x0002ae90 movle r2, 0                                       |             r2 = 0;
                                                                 |         }
                                                                 |         if (r4 <= 0) {
    0x0002ae92 andgt r2, r3, 1                                   |             r2 = r3 & 1;
                                                                 |         }
    0x0002ae96 cmp r2, 0                                         |         
    0x0002ae98 bne 0x2ae76                                       |         
                                                                 |     } while (r2 != 0);
                                                                 | label_46:
    0x0002ae9a ldr r2, [sp, 0x24]                                |     r2 = var_24h;
    0x0002ae9c cmp r2, 0                                         |     
    0x0002ae9e ite le                                            |     
                                                                 |     if (r2 > 0) {
    0x0002aea0 movle r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (r2 <= 0) {
    0x0002aea2 andgt r3, r3, 1                                   |         r3 &= 1;
                                                                 |     }
    0x0002aea6 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0002aea8 beq.w 0x2bc08                                     |         goto label_47;
                                                                 |     }
    0x0002aeac ldr.w r3, [pc, 0x970]                             |     
    0x0002aeb0 str.w fp, [sp, 0x48]                              |     __asm ("str.w fp, [arg_48h]");
    0x0002aeb4 add r3, pc                                        |     
    0x0002aeb6 adds r3, 0x10                                     |     r3 += 0x10;
    0x0002aeb8 str r3, [sp, 0x3c]                                |     *(arg_3ch) = r3;
    0x0002aeba ldr.w r3, [pc, 0x968]                             |     r3 = *(0x0002b824);
    0x0002aebe add r3, pc                                        |     r3 = 0x8159a;
    0x0002aec0 adds r3, 0x10                                     |     r3 += 0x10;
    0x0002aec2 str r3, [sp, 0x50]                                |     *(arg_50h) = r3;
    0x0002aec4 ldr.w r3, [pc, 0x960]                             |     
    0x0002aec8 add r3, pc                                        |     r3 = 0x566f4;
    0x0002aeca str r3, [sp, 0x54]                                |     *(arg_54h) = r3;
                                                                 | label_2:
    0x0002aecc ldr r4, [sp, 0x3c]                                |     r4 = *(arg_3ch);
    0x0002aece mov.w r5, 0x800                                   |     r5 = 0x800;
    0x0002aed2 ldr r1, [sp, 0x20]                                |     r1 = var_20h;
    0x0002aed4 mov r2, r8                                        |     r2 = r8;
    0x0002aed6 ldr r0, [sp, 0x2c]                                |     r0 = var_2ch;
    0x0002aed8 mov r3, r4                                        |     r3 = r4;
    0x0002aeda str r5, [sp]                                      |     *(sp) = r5;
    0x0002aedc blx 0xdd9c                                        |     r0 = setsid ();
    0x0002aee0 cmp.w r0, -1                                      |     
    0x0002aee4 mov fp, r0                                        |     
                                                                 |     if (r0 == -1) {
    0x0002aee6 beq.w 0x2b77c                                     |         goto label_48;
                                                                 |     }
    0x0002aeea ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x0002aeec mov r3, r4                                        |     r3 = r4;
    0x0002aeee mov r1, r5                                        |     r1 = r5;
    0x0002aef0 subs r6, r2, 4                                    |     r6 = r2 - 4;
    0x0002aef2 ldr.w r2, [pc, 0x938]                             |     
    0x0002aef6 mov r0, r6                                        |     r0 = r6;
    0x0002aef8 add r2, pc                                        |     r2 = 0x5672a;
    0x0002aefa bl 0x43f38                                        |     zbx_snprintf ();
    0x0002aefe ldrh.w r3, [r8, fp]                               |     r3 = *((r8 + fp));
    0x0002af02 add fp, r8                                        |     
    0x0002af04 ldrh.w r7, [fp, 2]                                |     r7 = *(arg_2h);
    0x0002af08 mov r5, r0                                        |     r5 = r0;
    0x0002af0a add.w r4, fp, 0xa                                 |     r4 += arg_ah;
    0x0002af0e add.w sb, r6, r0                                  |     sb = r6 + r0;
    0x0002af12 rev16 r3, r3                                      |     __asm ("rev16 r3, r3");
    0x0002af14 rsb.w sl, r0, 0x800                               |     sl = 0x800 - r0;
    0x0002af18 rev16 r7, r7                                      |     __asm ("rev16 r7, r7");
    0x0002af1a uxth r3, r3                                       |     r3 = (int16_t) r3;
    0x0002af1c uxth r2, r7                                       |     r2 = (int16_t) r7;
    0x0002af1e add.w r8, r3, -1                                  |     r8 = r3 + -1;
    0x0002af22 str r2, [sp, 0x34]                                |     var_34h = r2;
    0x0002af24 ldrh.w r2, [fp, 8]                                |     r2 = *(arg_8h);
    0x0002af28 rev16 r2, r2                                      |     __asm ("rev16 r2, r2");
    0x0002af2a uxth r2, r2                                       |     r2 = (int16_t) r2;
    0x0002af2c str r2, [sp, 0x28]                                |     var_28h = r2;
    0x0002af2e cmp.w r8, 0x20                                    |     
                                                                 |     if (r8 > 0x20) {
    0x0002af32 bhi.w 0x2b044                                     |         goto label_49;
                                                                 |     }
                                                                 |     /* switch table (34 cases) at 0x2af3a */
    0x0002af36 tbh [pc, r8, lsl 1]                               |     __asm ("tbh [pc, r8, lsl 1]");
                                                                 | label_26:
    0x0002af7c ldr r0, [r1, 0x28]                                |     r0 = *((r1 + 0x28));
    0x0002af7e mov r4, r1                                        |     r4 = r1;
    0x0002af80 ldr.w r3, [pc, 0x8ac]                             |     r3 = *(0x0002b830);
    0x0002af84 mov r2, r7                                        |     r2 = r7;
    0x0002af86 movs r1, 0xe7                                     |     r1 = 0xe7;
    0x0002af88 orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x0002af8c str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x0002af8e add r3, pc                                        |     r3 += pc;
    0x0002af90 ldr.w r0, [pc, 0x8a0]                             |     
    0x0002af94 add r0, pc                                        |     r0 = 0x567cc;
    0x0002af96 bl 0x40ed8                                        |     zbx_strdup2 ();
                                                                 | label_13:
    0x0002af9a ldr r3, [sp, 0x30]                                |     r3 = var_30h;
    0x0002af9c movs r4, 1                                        |     r4 = 1;
    0x0002af9e str r0, [r3, 0x20]                                |     *((r3 + 0x20)) = r0;
                                                                 | label_14:
    0x0002afa0 ldr.w r2, [pc, 0x894]                             |     r2 = *(0x0002b838);
    0x0002afa4 add.w r1, sp, 0x20c0                              |     r1 += arg_20c0h;
    0x0002afa8 ldr.w r3, [pc, 0x85c]                             |     r3 = *(0x2b808);
    0x0002afac adds r1, 0xc                                      |     r1 += 0xc;
    0x0002afae add r2, pc                                        |     r2 += pc;
    0x0002afb0 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x0002afb2 ldr r2, [r3]                                      |     r2 = *(0x2b808);
    0x0002afb4 ldr r3, [r1]                                      |     r3 = *(r1);
    0x0002afb6 eors r2, r3                                       |     r2 ^= r3;
    0x0002afb8 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x0002afbc bne.w 0x2bc12                                     |         goto label_50;
                                                                 |     }
    0x0002afc0 mov r0, r4                                        |     r0 = r4;
    0x0002afc2 add.w sp, sp, 0x20c0                              |     
    0x0002afc6 add sp, 0x14                                      |     
    0x0002afc8 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_31:
    0x0002afcc ldr.w r0, [pc, 0x86c]                             |     
    0x0002afd0 mov.w sb, 0                                       |     sb = 0;
    0x0002afd4 ldr.w r8, [pc, 0x868]                             |     
    0x0002afd8 str r3, [sp, 0x28]                                |     var_28h = r3;
    0x0002afda mov r3, r7                                        |     r3 = r7;
    0x0002afdc add r0, pc                                        |     r0 = "invalid object name";
    0x0002afde mov r7, r4                                        |     r7 = r4;
    0x0002afe0 add r8, pc                                        |     r8 = 0x56824;
    0x0002afe2 mov r4, sb                                        |     r4 = sb;
    0x0002afe4 mov sb, r3                                        |     sb = r3;
    0x0002afe6 b 0x2aff4                                         |     
                                                                 |     while (r0 != 0) {
    0x0002afe8 adds r4, 1                                        |         r4++;
    0x0002afea ldr.w r0, [r8, r4, lsl 3]                         |         offset_0 = r4 << 3;
                                                                 |         r0 = *((r8 + offset_0));
    0x0002afee cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0002aff0 beq.w 0x2b9ca                                     |             goto label_51;
                                                                 |         }
    0x0002aff4 mov r1, r6                                        |         r1 = r6;
    0x0002aff6 blx 0xdcf8                                        |         r0 = fcn_0000dcf8 ();
    0x0002affa cmp r0, 0                                         |         
    0x0002affc bne 0x2afe8                                       |         
                                                                 |     }
    0x0002affe mov r2, sb                                        |     r2 = sb;
    0x0002b000 mov sb, r4                                        |     sb = r4;
    0x0002b002 mov r4, r7                                        |     r4 = r7;
    0x0002b004 mov r7, r2                                        |     r7 = r2;
    0x0002b006 ldr.w r2, [pc, 0x83c]                             |     
    0x0002b00a ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x0002b00c add r2, pc                                        |     r2 = 0x56856;
    0x0002b00e add.w r2, r2, sb, lsl 3                           |     r2 += (sb << 3);
    0x0002b012 ldr r6, [r2, 4]                                   |     r6 = *((r2 + 4));
    0x0002b014 b 0x2ac40                                         |     goto label_0;
                                                                 | label_42:
    0x0002b016 strd r2, r3, [fp, -0x4]                           |     __asm ("strd r2, r3, [fp, -0x4]");
    0x0002b01a add r7, sp, 0x2d0                                 |     r7 += arg_2d0h;
    0x0002b01c ldr.w r3, [fp, 4]                                 |     r3 = *(arg_4h);
    0x0002b020 mov r2, sb                                        |     r2 = sb;
    0x0002b022 mov r1, r6                                        |     r1 = r6;
    0x0002b024 orr r3, r3, 8                                     |     r3 |= 8;
    0x0002b028 str.w r3, [fp, 4]                                 |     __asm ("str.w r3, [arg_4h]");
    0x0002b02c subs r3, r7, 4                                    |     r3 = r7 - 4;
    0x0002b02e mov r0, r3                                        |     r0 = r3;
    0x0002b030 str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x0002b032 mov.w r3, 0x200                                   |     r3 = 0x200;
    0x0002b036 str r3, [sp]                                      |     *(sp) = r3;
    0x0002b038 mov r3, r0                                        |     r3 = r0;
    0x0002b03a mov r0, r5                                        |     r0 = r5;
    0x0002b03c blx 0xdd2c                                        |     r0 = fcn_0000dd2c ();
    0x0002b040 mov r8, r0                                        |     r8 = r0;
    0x0002b042 b 0x2ae00                                         |     goto label_1;
                                                                 | label_49:
    0x0002b044 ldr.w r0, [pc, 0x800]                             |     r0 = *(0x0002b848);
    0x0002b048 movs r1, 0x10                                     |     r1 = 0x10;
    0x0002b04a ldr.w r2, [pc, 0x800]                             |     r2 = *(0x0002b84c);
    0x0002b04e add r0, pc                                        |     r0 += pc;
    0x0002b050 mov r7, r0                                        |     r7 = r0;
    0x0002b052 add r2, pc                                        |     r2 += pc;
    0x0002b054 bl 0x43f38                                        |     zbx_snprintf ();
    0x0002b058 mov r3, r7                                        |     r3 = r7;
                                                                 | label_11:
    0x0002b05a ldr.w r2, [pc, 0x7f4]                             |     r2 = *(0x0002b850);
    0x0002b05e mov r1, sl                                        |     r1 = sl;
    0x0002b060 mov r0, sb                                        |     r0 = sb;
    0x0002b062 add r2, pc                                        |     r2 += pc;
    0x0002b064 bl 0x43f38                                        |     r0 = zbx_snprintf ();
    0x0002b068 add r5, r0                                        |     r5 += r0;
    0x0002b06a cmp.w r8, 0x20                                    |     
                                                                 |     if (r8 > 0x20) {
    0x0002b06e bhi.w 0x2b1f4                                     |         goto label_12;
                                                                 |     }
                                                                 |     /* switch table (34 cases) at 0x2b076 */
    0x0002b072 tbh [pc, r8, lsl 1]                               |     __asm ("tbh [pc, r8, lsl 1]");
    0x0002b0b8 ldr.w r3, [pc, 0x798]                             |     
    0x0002b0bc add r3, pc                                        |     r3 = 0x56914;
                                                                 | label_7:
    0x0002b0be ldr.w r2, [pc, 0x798]                             |     r2 = *(0x0002b858);
    0x0002b0c2 mov r1, sl                                        |     r1 = sl;
    0x0002b0c4 mov r0, sb                                        |     r0 = sb;
    0x0002b0c6 add r2, pc                                        |     r2 += pc;
    0x0002b0c8 bl 0x43f38                                        |     r0 = zbx_snprintf ();
    0x0002b0cc add r5, r0                                        |     r5 += r0;
    0x0002b0ce ldr.w r7, [pc, 0x78c]                             |     
    0x0002b0d2 mov.w r3, 0x800                                   |     r3 = 0x800;
    0x0002b0d6 str r3, [sp]                                      |     *(sp) = r3;
    0x0002b0d8 mov r2, r4                                        |     r2 = r4;
    0x0002b0da ldr r1, [sp, 0x20]                                |     r1 = var_20h;
    0x0002b0dc add r7, pc                                        |     r7 = 0x5693e;
    0x0002b0de ldr r0, [sp, 0x2c]                                |     r0 = var_2ch;
    0x0002b0e0 adds r7, 0x10                                     |     r7 += 0x10;
    0x0002b0e2 mov r3, r7                                        |     r3 = r7;
    0x0002b0e4 blx 0xdd9c                                        |     r0 = setsid ();
    0x0002b0e8 adds r3, r0, 1                                    |     r3 = r0 + 1;
                                                                 |     if (r3 == r0) {
    0x0002b0ea beq.w 0x2bb8a                                     |         goto label_52;
                                                                 |     }
    0x0002b0ec strh r6, [r1, 0x2a]                               |     *((r1 + 0x2a)) = r6;
    0x0002b0ee ldr.w r2, [pc, 0x770]                             |     r2 = *(0x0002b860);
    0x0002b0f2 rsb.w r1, r5, 0x800                               |     r1 = 0x800 - r5;
    0x0002b0f6 add.w r8, r4, r0                                  |     r8 = r4 + r0;
    0x0002b0fa mov r3, r7                                        |     r3 = r7;
    0x0002b0fc adds r0, r6, r5                                   |     r0 = r6 + r5;
    0x0002b0fe add r2, pc                                        |     r2 += pc;
    0x0002b100 bl 0x43f38                                        |     r0 = zbx_snprintf ();
    0x0002b104 add r5, r0                                        |     r5 += r0;
                                                                 | label_3:
    0x0002b106 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x0002b108 rsb.w r1, r5, 0x800                               |     r1 = 0x800 - r5;
    0x0002b10c ldr.w r2, [pc, 0x754]                             |     
    0x0002b110 adds r0, r6, r5                                   |     r0 = r6 + r5;
    0x0002b112 subs r4, r3, 1                                    |     r4 = r3 - 1;
    0x0002b114 add r2, pc                                        |     r2 = 0x5697c;
    0x0002b116 str r4, [sp, 0x24]                                |     var_24h = r4;
    0x0002b118 bl 0x43f38                                        |     zbx_snprintf ();
    0x0002b11c ldr.w r0, [pc, 0x748]                             |     
    0x0002b120 mov r3, r6                                        |     r3 = r6;
    0x0002b122 movs r2, 0                                        |     r2 = 0;
    0x0002b124 mov.w r1, 0x364                                   |     r1 = 0x364;
    0x0002b128 add r0, pc                                        |     r0 = 0x56994;
    0x0002b12a bl 0x40ed8                                        |     r0 = zbx_strdup2 ();
    0x0002b12e mov r1, r0                                        |     r1 = r0;
    0x0002b130 ldr r0, [sp, 0x38]                                |     r0 = *(arg_38h);
    0x0002b132 bl 0x32a08                                        |     zbx_vector_str_append ();
    0x0002b136 ldr r2, [sp, 0x20]                                |     r2 = var_20h;
    0x0002b138 cmp r4, 0                                         |     
    0x0002b13a mov r3, r4                                        |     r3 = r4;
    0x0002b13c ldr r1, [sp, 0x1c]                                |     r1 = var_1ch;
    0x0002b13e ite le                                            |     
                                                                 |     if (r4 > 0) {
    0x0002b140 movle r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (r4 <= 0) {
    0x0002b142 movgt r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x0002b144 cmp r2, r8                                        |     
    0x0002b146 mov.w r2, 0                                       |     r2 = 0;
    0x0002b14a it ls                                             |     
                                                                 |     if (r2 > r8) {
    0x0002b14c movls r3, 0                                       |         r3 = 0;
                                                                 |     }
    0x0002b14e strb r2, [r1, -0x4]                               |     *((r1 - 0x4)) = r2;
    0x0002b152 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0002b154 bne.w 0x2aecc                                     |         goto label_2;
                                                                 |     }
    0x0002b158 ldr.w fp, [sp, 0x48]                              |     fp = *(arg_48h);
                                                                 | label_21:
    0x0002b15c ldr r2, [sp, 0x44]                                |     r2 = *(arg_44h);
    0x0002b15e ldr.w r3, [pc, 0x70c]                             |     r3 = *(0x2b86e);
    0x0002b162 ldr r0, [sp, 0x38]                                |     r0 = *(arg_38h);
    0x0002b164 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x0002b166 mov r1, r3                                        |     r1 = r3;
    0x0002b168 str r3, [sp, 0x20]                                |     var_20h = r3;
    0x0002b16a bl 0x32ba8                                        |     zbx_vector_str_sort ();
    0x0002b16e ldr r3, [fp, -0x64]                               |     r3 = var_64h;
    0x0002b172 cmp r3, 0                                         |     
                                                                 |     if (r3 <= 0) {
    0x0002b174 ble 0x2b1ae                                       |         goto label_53;
                                                                 |     }
    0x0002b176 ldr.w r7, [pc, 0x6f8]                             |     r7 = *(0x0002b870);
    0x0002b17a movs r4, 0                                        |     r4 = 0;
    0x0002b17c ldr r5, [sp, 0x40]                                |     r5 = *(arg_40h);
    0x0002b17e add r7, pc                                        |     r7 += pc;
                                                                 |     do {
    0x0002b180 ldr r3, [fp, -0x68]                               |         r3 = var_68h;
    0x0002b184 rsb.w r1, r4, 0x800                               |         r1 = 0x800 - r4;
    0x0002b188 adds r0, r6, r4                                   |         r0 = r6 + r4;
    0x0002b18a mov r2, r7                                        |         r2 = r7;
    0x0002b18c ldr.w r3, [r3, r5, lsl 2]                         |         offset_1 = r5 << 2;
                                                                 |         r3 = *((r3 + offset_1));
    0x0002b190 adds r5, 1                                        |         r5++;
    0x0002b192 bl 0x43f38                                        |         zbx_snprintf ();
    0x0002b196 ldr r3, [fp, -0x64]                               |         r3 = var_64h;
    0x0002b19a add r4, r0                                        |         r4 += r0;
    0x0002b19c cmp r3, r5                                        |         
    0x0002b19e bgt 0x2b180                                       |         
                                                                 |     } while (r3 > r5);
                                                                 |     if (r4 != 0) {
    0x0002b1a0 cbz r4, 0x2b1ae                                   |         
    0x0002b1a2 ldr r3, [sp, 0x1c]                                |         r3 = var_1ch;
    0x0002b1a4 add r3, r4                                        |         r3 += r4;
    0x0002b1a6 mov r4, r3                                        |         r4 = r3;
    0x0002b1a8 movs r3, 0                                        |         r3 = 0;
    0x0002b1aa strb r3, [r4, -0x5]                               |         *((r4 - 0x5)) = r3;
                                                                 |     }
                                                                 | label_53:
    0x0002b1ae ldr r5, [sp, 0x30]                                |     r5 = var_30h;
    0x0002b1b0 mov r3, r6                                        |     r3 = r6;
    0x0002b1b2 ldr.w r0, [pc, 0x6c0]                             |     r0 = *(0x0002b874);
    0x0002b1b6 movw r1, 0x372                                    |     r1 = 0x372;
    0x0002b1ba ldr r4, [sp, 0x40]                                |     r4 = *(arg_40h);
    0x0002b1bc ldr r2, [r5, 0x28]                                |     r2 = *((r5 + 0x28));
    0x0002b1be add r0, pc                                        |     r0 += pc;
    0x0002b1c0 orr r2, r2, 8                                     |     r2 |= 8;
    0x0002b1c4 str r2, [r5, 0x28]                                |     *((r5 + 0x28)) = r2;
    0x0002b1c6 movs r2, 0                                        |     r2 = 0;
    0x0002b1c8 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x0002b1cc str r0, [r5, 0x1c]                                |     *((r5 + 0x1c)) = r0;
    0x0002b1ce b 0x2b79c                                         |     goto label_54;
    0x0002b1d0 ldr.w r3, [pc, 0x6a4]                             |     
    0x0002b1d4 mov r1, sl                                        |     r1 = sl;
    0x0002b1d6 ldr.w r2, [pc, 0x6a4]                             |     r2 = *(0x0002b87c);
    0x0002b1da mov r0, sb                                        |     r0 = sb;
    0x0002b1dc add r3, pc                                        |     r3 = "invalid function result: %s";
    0x0002b1de add r2, pc                                        |     r2 += pc;
    0x0002b1e0 bl 0x43f38                                        |     r0 = zbx_snprintf ();
    0x0002b1e4 add r5, r0                                        |     r5 += r0;
    0x0002b1e6 ldr r3, [sp, 0x34]                                |     r3 = var_34h;
    0x0002b1e8 cmp r3, 1                                         |     
                                                                 |     if (r3 == 1) {
    0x0002b1ea beq.w 0x2b73c                                     |         goto label_55;
                                                                 |     }
    0x0002b1ee cmp r3, 4                                         |     
                                                                 |     if (r3 == 4) {
    0x0002b1f0 beq.w 0x2b73c                                     |         goto label_55;
                                                                 |     }
                                                                 | label_12:
    0x0002b1f4 ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x0002b1f6 add r3, r4                                        |     r3 += r4;
    0x0002b1f8 mov r8, r3                                        |     r8 = r3;
    0x0002b1fa b 0x2b106                                         |     goto label_3;
                                                                 | label_33:
    0x0002b1fc vmov.i32 d16, 0                                   |     __asm ("vmov.i32 d16, 0");
    0x0002b200 mvn r8, 0x80000000                                |     r8 = ~0x80000000;
    0x0002b204 mov.w sb, 0                                       |     sb = 0;
    0x0002b208 movs r3, 4                                        |     r3 = 4;
    0x0002b20a sub.w r2, r4, 0x38                                |     r2 = r4 - 0x38;
    0x0002b20e mov.w r1, -1                                      |     r1 = -1;
    0x0002b212 vstr d16, [sp]                                    |     __asm ("vstr d16, [sp]");
    0x0002b216 strd r8, sb, [sp, 8]                              |     __asm ("strd r8, sb, [sp, 8]");
    0x0002b21a bl 0x419a8                                        |     r0 = is_uint_n_range ();
    0x0002b21e cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0002b220 bne.w 0x2ba48                                     |         goto label_56;
                                                                 |     }
    0x0002b224 ldr r3, [fp, -0x78]                               |     r3 = var_78h;
    0x0002b228 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0002b22a beq.w 0x2ba48                                     |         goto label_56;
                                                                 |     }
    0x0002b22c strh r5, [r1, 0x20]                               |     *((r1 + 0x20)) = r5;
    0x0002b22e ldr.w sl, [r5, 4]                                 |     sl = *((r5 + 4));
    0x0002b232 b 0x2ac60                                         |     goto label_4;
                                                                 | label_34:
    0x0002b234 vmov.i32 d16, 0                                   |     __asm ("vmov.i32 d16, 0");
    0x0002b238 mvn r8, 0x80000000                                |     r8 = ~0x80000000;
    0x0002b23c mov.w sb, 0                                       |     sb = 0;
    0x0002b240 movs r3, 4                                        |     r3 = 4;
    0x0002b242 sub.w r2, r4, 0x34                                |     r2 = r4 - 0x34;
    0x0002b246 mov.w r1, -1                                      |     r1 = -1;
    0x0002b24a vstr d16, [sp]                                    |     __asm ("vstr d16, [sp]");
    0x0002b24e strd r8, sb, [sp, 8]                              |     __asm ("strd r8, sb, [sp, 8]");
    0x0002b250 ldrh r2, [r0, 8]                                  |     r2 = *((r0 + 8));
    0x0002b252 bl 0x419a8                                        |     r0 = is_uint_n_range ();
    0x0002b256 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0002b258 bne.w 0x2ba68                                     |         goto label_57;
                                                                 |     }
    0x0002b25c ldr r3, [fp, -0x74]                               |     r3 = var_74h;
    0x0002b260 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0002b262 beq.w 0x2ba68                                     |         goto label_57;
                                                                 |     }
    0x0002b266 ldr.w sl, [r5, 4]                                 |     sl = *((r5 + 4));
    0x0002b26a b 0x2ac7a                                         |     goto label_5;
    0x0002b26c ldr.w r3, [pc, 0x610]                             |     
    0x0002b270 mov r1, sl                                        |     r1 = sl;
    0x0002b272 ldr.w r2, [pc, 0x610]                             |     r2 = *(0x0002b884);
    0x0002b276 mov r0, sb                                        |     r0 = sb;
    0x0002b278 add r3, pc                                        |     r3 = 0x56afc;
    0x0002b27a add r2, pc                                        |     r2 += pc;
    0x0002b27c bl 0x43f38                                        |     r0 = zbx_snprintf ();
    0x0002b280 add r5, r0                                        |     r5 += r0;
    0x0002b282 ldrh.w r3, [fp, 0xa]                              |     r3 = *(arg_ah);
    0x0002b286 rsb.w r1, r5, 0x800                               |     r1 = 0x800 - r5;
    0x0002b28a ldr.w r7, [pc, 0x5fc]                             |     r7 = *(0x0002b888);
    0x0002b28e adds r0, r6, r5                                   |     r0 = r6 + r5;
    0x0002b290 add.w r8, fp, 0x10                                |     r8 += arg_10h;
    0x0002b294 rev16 r3, r3                                      |     __asm ("rev16 r3, r3");
    0x0002b296 add r7, pc                                        |     r7 += pc;
    0x0002b298 uxth r3, r3                                       |     r3 = (int16_t) r3;
    0x0002b29a mov r2, r7                                        |     r2 = r7;
    0x0002b29c bl 0x43f38                                        |     zbx_snprintf ();
    0x0002b2a0 ldrh.w r3, [fp, 0xc]                              |     r3 = *(arg_ch);
    0x0002b2a4 add r5, r0                                        |     r5 += r0;
    0x0002b2a6 rsb.w r1, r5, 0x800                               |     r1 = 0x800 - r5;
    0x0002b2aa mov r2, r7                                        |     r2 = r7;
    0x0002b2ac adds r0, r6, r5                                   |     r0 = r6 + r5;
    0x0002b2ae rev16 r3, r3                                      |     __asm ("rev16 r3, r3");
    0x0002b2b0 uxth r3, r3                                       |     r3 = (int16_t) r3;
    0x0002b2b2 bl 0x43f38                                        |     zbx_snprintf ();
    0x0002b2b6 ldrh.w r3, [fp, 0xe]                              |     r3 = *(arg_eh);
    0x0002b2ba add r5, r0                                        |     r5 += r0;
    0x0002b2bc rsb.w r1, r5, 0x800                               |     r1 = 0x800 - r5;
    0x0002b2c0 mov r2, r7                                        |     r2 = r7;
    0x0002b2c2 adds r0, r6, r5                                   |     r0 = r6 + r5;
    0x0002b2c4 rev16 r3, r3                                      |     __asm ("rev16 r3, r3");
    0x0002b2c6 uxth r3, r3                                       |     r3 = (int16_t) r3;
    0x0002b2c8 bl 0x43f38                                        |     zbx_snprintf ();
    0x0002b2cc ldr r4, [sp, 0x50]                                |     r4 = *(arg_50h);
    0x0002b2ce mov.w r3, 0x800                                   |     r3 = 0x800;
    0x0002b2d2 str r3, [sp]                                      |     *(sp) = r3;
    0x0002b2d4 add r5, r0                                        |     r5 += r0;
    0x0002b2d6 ldr r1, [sp, 0x20]                                |     r1 = var_20h;
    0x0002b2d8 mov r2, r8                                        |     r2 = r8;
    0x0002b2da mov r3, r4                                        |     r3 = r4;
    0x0002b2dc ldr r0, [sp, 0x2c]                                |     r0 = var_2ch;
    0x0002b2de blx 0xdd9c                                        |     r0 = setsid ();
    0x0002b2e2 adds r3, r0, 1                                    |     r3 = r0 + 1;
                                                                 |     if (r3 == r0) {
    0x0002b2e4 beq.w 0x2bbaa                                     |         goto label_58;
                                                                 |     }
    0x0002b2e8 ldr.w r2, [pc, 0x5a0]                             |     r2 = *(0x0002b88c);
    0x0002b2ec rsb.w r1, r5, 0x800                               |     r1 = 0x800 - r5;
    0x0002b2f0 add r8, r0                                        |     r8 += r0;
    0x0002b2f2 mov r3, r4                                        |     r3 = r4;
    0x0002b2f4 adds r0, r6, r5                                   |     r0 = r6 + r5;
    0x0002b2f6 add r2, pc                                        |     r2 += pc;
    0x0002b2f8 bl 0x43f38                                        |     r0 = zbx_snprintf ();
    0x0002b2fc add r5, r0                                        |     r5 += r0;
    0x0002b2fe b 0x2b106                                         |     goto label_3;
    0x0002b300 ldr.w r3, [pc, 0x58c]                             |     
    0x0002b304 mov r1, sl                                        |     r1 = sl;
    0x0002b306 ldr.w r2, [pc, 0x58c]                             |     r2 = *(0x0002b894);
    0x0002b30a mov r0, sb                                        |     r0 = sb;
    0x0002b30c add r3, pc                                        |     r3 = 0x56ba0;
    0x0002b30e add r2, pc                                        |     r2 += pc;
    0x0002b310 bl 0x43f38                                        |     r0 = zbx_snprintf ();
    0x0002b314 add r5, r0                                        |     r5 += r0;
    0x0002b316 ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x0002b318 rsb.w r1, r5, 0x800                               |     r1 = 0x800 - r5;
    0x0002b31c ldr.w r2, [pc, 0x578]                             |     r2 = *(0x0002b898);
    0x0002b320 adds r0, r6, r5                                   |     r0 = r6 + r5;
    0x0002b322 add r3, r4                                        |     r3 += r4;
    0x0002b324 mov sb, r3                                        |     sb = r3;
    0x0002b326 add r2, pc                                        |     r2 += pc;
    0x0002b328 bl 0x43f38                                        |     zbx_snprintf ();
    0x0002b32c cmp r4, sb                                        |     
    0x0002b32e add.w r7, r0, r5                                  |     r7 = r0 + r5;
                                                                 |     if (r4 >= sb) {
    0x0002b332 bhs.w 0x2b7ea                                     |         goto label_59;
                                                                 |     }
    0x0002b336 ldr.w r5, [pc, 0x564]                             |     r5 = *(0x0002b89c);
    0x0002b33a add r5, pc                                        |     r5 += pc;
                                                                 | label_6:
    0x0002b33c mov r8, r4                                        |     r8 = r4;
    0x0002b33e ldrb sl, [r8], 1                                  |     sl = *(r8);
                                                                 |     r8++;
    0x0002b342 cmp.w sl, 0                                       |     
    0x0002b346 it ne                                             |     
                                                                 |     if (sl != 0) {
    0x0002b348 cmpne r8, sb                                      |         __asm ("cmpne r8, sb");
                                                                 |     }
                                                                 |     if (sl >= 0) {
    0x0002b34a bhs 0x2b370                                       |         goto label_60;
                                                                 |     }
                                                                 |     do {
    0x0002b34c ldrb r3, [r8], 1                                  |         r3 = *(r8);
                                                                 |         r8++;
    0x0002b350 rsb.w r1, r7, 0x800                               |         r1 = 0x800 - r7;
    0x0002b354 adds r0, r6, r7                                   |         r0 = r6 + r7;
    0x0002b356 mov r2, r5                                        |         r2 = r5;
    0x0002b358 bl 0x43f38                                        |         zbx_snprintf ();
    0x0002b35c rsb.w r3, r8, 1                                   |         r3 = 1 - r8;
    0x0002b360 rsb.w r2, sl, 0                                   |         r2 = sl - ;
    0x0002b364 add r3, r4                                        |         r3 += r4;
    0x0002b366 add r7, r0                                        |         r7 += r0;
    0x0002b368 cmp r2, r3                                        |         
    0x0002b36a it ne                                             |         
                                                                 |         if (r2 != r3) {
    0x0002b36c cmpne r8, sb                                      |             __asm ("cmpne r8, sb");
                                                                 |         }
    0x0002b36e blo 0x2b34c                                       |         
                                                                 |     } while (r2 <= r3);
                                                                 | label_60:
    0x0002b370 cmp sb, r8                                        |     
                                                                 |     if (sb < r8) {
    0x0002b372 bls.w 0x2b7ec                                     |         goto label_61;
                                                                 |     }
    0x0002b376 mov r4, r8                                        |     r4 = r8;
    0x0002b378 b 0x2b33c                                         |     goto label_6;
    0x0002b37a ldr.w r3, [pc, 0x524]                             |     r3 = *(0x0002b8a0);
    0x0002b37e mov r1, sl                                        |     r1 = sl;
    0x0002b380 ldr.w r2, [pc, 0x520]                             |     
    0x0002b384 mov r0, sb                                        |     r0 = sb;
    0x0002b386 add r3, pc                                        |     r3 += pc;
    0x0002b388 add r2, pc                                        |     r2 = 0x56c30;
    0x0002b38a bl 0x43f38                                        |     r0 = zbx_snprintf ();
    0x0002b38e add r5, r0                                        |     r5 += r0;
    0x0002b390 ldrh.w r3, [fp, 0xa]                              |     r3 = *(arg_ah);
    0x0002b394 rsb.w r1, r5, 0x800                               |     r1 = 0x800 - r5;
    0x0002b398 ldr.w r2, [pc, 0x50c]                             |     r2 = *(0x0002b8a8);
    0x0002b39c adds r0, r6, r5                                   |     r0 = r6 + r5;
    0x0002b39e add.w r8, fp, 0xc                                 |     r8 += arg_ch;
    0x0002b3a2 rev16 r3, r3                                      |     __asm ("rev16 r3, r3");
    0x0002b3a4 uxth r3, r3                                       |     r3 = (int16_t) r3;
    0x0002b3a6 add r2, pc                                        |     r2 += pc;
    0x0002b3a8 bl 0x43f38                                        |     r0 = zbx_snprintf ();
    0x0002b3ac adds r4, r5, r0                                   |     r4 = r5 + r0;
    0x0002b3ae ldr.w r5, [pc, 0x4fc]                             |     
    0x0002b3b2 mov.w r3, 0x800                                   |     r3 = 0x800;
    0x0002b3b6 ldr r1, [sp, 0x20]                                |     r1 = var_20h;
    0x0002b3b8 str r3, [sp]                                      |     *(sp) = r3;
    0x0002b3ba mov r2, r8                                        |     r2 = r8;
    0x0002b3bc add r5, pc                                        |     r5 = 0x56c6e;
    0x0002b3be ldr r0, [sp, 0x2c]                                |     r0 = var_2ch;
    0x0002b3c0 adds r5, 0x10                                     |     r5 += 0x10;
    0x0002b3c2 mov r3, r5                                        |     r3 = r5;
    0x0002b3c4 blx 0xdd9c                                        |     r0 = setsid ();
    0x0002b3c8 adds r7, r0, 1                                    |     r7 = r0 + 1;
                                                                 |     if (r7 == r0) {
    0x0002b3ca beq.w 0x2bb6a                                     |         goto label_62;
                                                                 |     }
    0x0002b3ce ldr.w r2, [pc, 0x4e0]                             |     
    0x0002b3d2 mov r3, r5                                        |     r3 = r5;
    0x0002b3d4 add r8, r0                                        |     r8 += r0;
    0x0002b3d6 rsb.w r1, r4, 0x800                               |     r1 = 0x800 - r4;
    0x0002b3da adds r0, r6, r4                                   |     r0 = r6 + r4;
    0x0002b3dc add r2, pc                                        |     r2 = 0x56c92;
    0x0002b3de bl 0x43f38                                        |     zbx_snprintf ();
    0x0002b3e0 stc2 p8, c1, [fp, 0x94]!                          |     __asm ("stc2 p8, c1, [fp, 0x94]!");
    0x0002b3e4 b 0x2b106                                         |     goto label_3;
    0x0002b3e6 ldr.w r3, [pc, 0x4cc]                             |     r3 = *(0x0002b8b4);
    0x0002b3ea add r3, pc                                        |     r3 += pc;
    0x0002b3ec b 0x2b0be                                         |     goto label_7;
    0x0002b3ee ldr.w r3, [pc, 0x4c8]                             |     r3 = *(0x0002b8b8);
    0x0002b3f2 mov r1, sl                                        |     r1 = sl;
    0x0002b3f4 ldr.w r2, [pc, 0x4c4]                             |     
    0x0002b3f8 mov r0, sb                                        |     r0 = sb;
    0x0002b3fa add r3, pc                                        |     r3 += pc;
    0x0002b3fc add r2, pc                                        |     r2 = 0x56cbc;
    0x0002b3fe bl 0x43f38                                        |     r0 = zbx_snprintf ();
    0x0002b402 add r5, r0                                        |     r5 += r0;
    0x0002b404 ldr.w r7, [pc, 0x4b8]                             |     r7 = *(0x0002b8c0);
    0x0002b408 mov.w r8, 0x800                                   |     r8 = 0x800;
    0x0002b40c ldr.w fp, [sp, 0x20]                              |     fp = var_20h;
    0x0002b410 mov r2, r4                                        |     r2 = r4;
    0x0002b412 ldr.w sl, [sp, 0x2c]                              |     sl = var_2ch;
    0x0002b416 add r7, pc                                        |     r7 += pc;
    0x0002b418 str.w r8, [sp]                                    |     __asm ("str.w r8, [sp]");
    0x0002b41c adds r7, 0x10                                     |     r7 += 0x10;
    0x0002b41e mov r1, fp                                        |     r1 = fp;
    0x0002b420 mov r3, r7                                        |     r3 = r7;
    0x0002b422 mov r0, sl                                        |     r0 = sl;
    0x0002b424 blx 0xdd9c                                        |     r0 = setsid ();
    0x0002b428 adds r1, r0, 1                                    |     r1 = r0 + 1;
                                                                 |     if (r1 == r0) {
    0x0002b42a beq.w 0x2bb4a                                     |         goto label_63;
                                                                 |     }
    0x0002b42e ldr.w sb, [pc, 0x494]                             |     
    0x0002b432 sub.w r1, r8, r5                                  |     r1 = r8 - r5;
    0x0002b436 add r4, r0                                        |     r4 += r0;
    0x0002b438 mov r3, r7                                        |     r3 = r7;
    0x0002b43a adds r0, r6, r5                                   |     r0 = r6 + r5;
    0x0002b43c add sb, pc                                        |     sb = 0x56d06;
    0x0002b43e mov r2, sb                                        |     r2 = sb;
    0x0002b440 bl 0x43f38                                        |     zbx_snprintf ();
    0x0002b444 mov r2, r4                                        |     r2 = r4;
    0x0002b446 str.w r8, [sp]                                    |     __asm ("str.w r8, [sp]");
    0x0002b44a mov r3, r7                                        |     r3 = r7;
    0x0002b44c add.w r8, r0, r5                                  |     r8 = r0 + r5;
    0x0002b450 mov r1, fp                                        |     r1 = fp;
    0x0002b452 mov r0, sl                                        |     r0 = sl;
    0x0002b454 blx 0xdd9c                                        |     r0 = setsid ();
    0x0002b458 adds r2, r0, 1                                    |     r2 = r0 + 1;
    0x0002b45a mov r5, r0                                        |     r5 = r0;
                                                                 |     if (r2 == r0) {
    0x0002b45c beq.w 0x2bb2a                                     |         goto label_64;
                                                                 |     }
    0x0002b460 mov r3, r7                                        |     r3 = r7;
    0x0002b462 rsb.w r1, r8, 0x800                               |     r1 = 0x800 - r8;
    0x0002b466 mov r2, sb                                        |     r2 = sb;
    0x0002b468 add.w r0, r6, r8                                  |     r0 = r6 + r8;
    0x0002b46c bl 0x43f38                                        |     zbx_snprintf ();
    0x0002b470 ldr r3, [r4, r5]                                  |     r3 = *((r4 + r5));
    0x0002b472 add.w r7, r8, r0                                  |     r7 = r8 + r0;
    0x0002b476 ldr.w r2, [pc, 0x450]                             |     r2 = *(0x0002b8c8);
    0x0002b47a rsb.w r1, r7, 0x800                               |     r1 = 0x800 - r7;
    0x0002b47c str r0, [r0, 0x10]                                |     *((r0 + 0x10)) = r0;
    0x0002b47e adds r0, r6, r7                                   |     r0 = r6 + r7;
    0x0002b480 add.w r8, r4, r5                                  |     r8 = r4 + r5;
    0x0002b484 rev r3, r3                                        |     r3 = SWAP32 (r3);
    0x0002b486 add.w r8, r8, 0x14                                |     r8 += 0x14;
    0x0002b48a add r2, pc                                        |     r2 += pc;
    0x0002b48c bl 0x43f38                                        |     r0 = zbx_snprintf ();
    0x0002b490 adds r4, r7, r0                                   |     r4 = r7 + r0;
    0x0002b492 ldr.w r7, [pc, 0x438]                             |     
    0x0002b496 ldr r3, [r8, -0x10]                               |     r3 = *((r8 - 0x10));
    0x0002b49a rsb.w r1, r4, 0x800                               |     r1 = 0x800 - r4;
    0x0002b49e adds r0, r6, r4                                   |     r0 = r6 + r4;
    0x0002b4a0 add r7, pc                                        |     r7 = 0x56d72;
    0x0002b4a2 rev r3, r3                                        |     r3 = SWAP32 (r3);
    0x0002b4a4 mov r2, r7                                        |     r2 = r7;
    0x0002b4a6 bl 0x43f38                                        |     zbx_snprintf ();
    0x0002b4aa ldr r3, [r8, -0xc]                                |     r3 = *((r8 - 0xc));
    0x0002b4ae add r4, r0                                        |     r4 += r0;
    0x0002b4b0 rsb.w r1, r4, 0x800                               |     r1 = 0x800 - r4;
    0x0002b4b4 mov r2, r7                                        |     r2 = r7;
    0x0002b4b6 adds r0, r6, r4                                   |     r0 = r6 + r4;
    0x0002b4b8 rev r3, r3                                        |     r3 = SWAP32 (r3);
    0x0002b4ba bl 0x43f38                                        |     zbx_snprintf ();
    0x0002b4bc ldc2 p8, c15, [sp, -0x160]!                       |     __asm ("ldc2 p8, c15, [sp, -0x160]!");
    0x0002b4c0 subs r4, 8                                        |     r4 -= 8;
    0x0002b4c2 add r4, r0                                        |     r4 += r0;
    0x0002b4c4 rsb.w r1, r4, 0x800                               |     r1 = 0x800 - r4;
    0x0002b4c8 mov r2, r7                                        |     r2 = r7;
    0x0002b4ca adds r0, r6, r4                                   |     r0 = r6 + r4;
    0x0002b4cc rev r3, r3                                        |     r3 = SWAP32 (r3);
    0x0002b4ce bl 0x43f38                                        |     zbx_snprintf ();
    0x0002b4d2 ldr r3, [r8, -0x4]                                |     r3 = *((r8 - 0x4));
    0x0002b4d6 add r4, r0                                        |     r4 += r0;
    0x0002b4d8 mov r2, r7                                        |     r2 = r7;
    0x0002b4da rsb.w r1, r4, 0x800                               |     r1 = 0x800 - r4;
    0x0002b4de adds r0, r6, r4                                   |     r0 = r6 + r4;
    0x0002b4e0 rev r3, r3                                        |     r3 = SWAP32 (r3);
    0x0002b4e2 bl 0x43f38                                        |     r0 = zbx_snprintf ();
    0x0002b4e6 adds r5, r4, r0                                   |     r5 = r4 + r0;
    0x0002b4e8 b 0x2b106                                         |     goto label_3;
    0x0002b4ea ldr r3, [pc, 0x3e4]                               |     
    0x0002b4ec add r3, pc                                        |     r3 = 0x56dc2;
    0x0002b4ee b 0x2b0be                                         |     goto label_7;
    0x0002b4f0 ldr r3, [pc, 0x3e0]                               |     
    0x0002b4f2 add r3, pc                                        |     r3 = 0x56dca;
    0x0002b4f4 b 0x2b0be                                         |     goto label_7;
    0x0002b4f6 ldr r3, [pc, 0x3e0]                               |     
    0x0002b4f8 add r3, pc                                        |     r3 = 0x56dd6;
    0x0002b4fa b 0x2b0be                                         |     goto label_7;
    0x0002b4fc ldr r3, [pc, 0x3dc]                               |     
    0x0002b4fe mov r1, sl                                        |     r1 = sl;
    0x0002b500 ldr r2, [pc, 0x3dc]                               |     
    0x0002b502 mov r0, sb                                        |     r0 = sb;
    0x0002b504 add r3, pc                                        |     r3 = 0x56de4;
    0x0002b506 add r2, pc                                        |     r2 = 0x56dea;
    0x0002b508 bl 0x43f38                                        |     r0 = zbx_snprintf ();
    0x0002b50c add r5, r0                                        |     r5 += r0;
    0x0002b50e ldr r7, [pc, 0x3d4]                               |     
    0x0002b510 mov.w sb, 0x800                                   |     sb = 0x800;
    0x0002b514 ldr.w fp, [sp, 0x20]                              |     fp = var_20h;
    0x0002b518 mov r2, r4                                        |     r2 = r4;
    0x0002b51a ldr.w sl, [sp, 0x2c]                              |     sl = var_2ch;
    0x0002b51e add r7, pc                                        |     r7 = 0x56e08;
    0x0002b520 str.w sb, [sp]                                    |     __asm ("str.w sb, [sp]");
    0x0002b524 adds r7, 0x10                                     |     r7 += 0x10;
    0x0002b526 mov r1, fp                                        |     r1 = fp;
    0x0002b528 mov r3, r7                                        |     r3 = r7;
    0x0002b52a mov r0, sl                                        |     r0 = sl;
    0x0002b52c blx 0xdd9c                                        |     r0 = setsid ();
    0x0002b530 adds r1, r0, 1                                    |     r1 = r0 + 1;
                                                                 |     if (r1 == r0) {
    0x0002b532 beq.w 0x2bb0a                                     |         goto label_65;
                                                                 |     }
    0x0002b536 add.w r8, r4, r0                                  |     r8 = r4 + r0;
    0x0002b53a ldr r4, [pc, 0x3ac]                               |     
    0x0002b53c sub.w r1, sb, r5                                  |     r1 = sb - r5;
    0x0002b540 mov r3, r7                                        |     r3 = r7;
    0x0002b542 adds r0, r6, r5                                   |     r0 = r6 + r5;
    0x0002b544 add r4, pc                                        |     r4 = 0x56e32;
    0x0002b546 mov r2, r4                                        |     r2 = r4;
    0x0002b548 bl 0x43f38                                        |     zbx_snprintf ();
    0x0002b54c mov r2, r8                                        |     r2 = r8;
    0x0002b54e add r5, r0                                        |     r5 += r0;
    0x0002b550 mov r3, r7                                        |     r3 = r7;
    0x0002b552 mov r1, fp                                        |     r1 = fp;
    0x0002b554 mov r0, sl                                        |     r0 = sl;
    0x0002b556 str.w sb, [sp]                                    |     __asm ("str.w sb, [sp]");
    0x0002b55a blx 0xdd9c                                        |     r0 = setsid ();
    0x0002b55e adds r2, r0, 1                                    |     r2 = r0 + 1;
                                                                 |     if (r2 == r0) {
    0x0002b560 beq.w 0x2baea                                     |         goto label_66;
                                                                 |     }
    0x0002b564 rsb.w r1, r5, 0x800                               |     r1 = 0x800 - r5;
    0x0002b568 add r8, r0                                        |     r8 += r0;
    0x0002b56a mov r3, r7                                        |     r3 = r7;
    0x0002b56c adds r0, r6, r5                                   |     r0 = r6 + r5;
    0x0002b56e mov r2, r4                                        |     r2 = r4;
    0x0002b570 bl 0x43f38                                        |     r0 = zbx_snprintf ();
    0x0002b574 add r5, r0                                        |     r5 += r0;
    0x0002b576 b 0x2b106                                         |     goto label_3;
    0x0002b578 ldr r3, [pc, 0x370]                               |     
    0x0002b57a mov r1, sl                                        |     r1 = sl;
    0x0002b57c ldr r2, [pc, 0x370]                               |     
    0x0002b57e mov r0, sb                                        |     r0 = sb;
    0x0002b580 add r3, pc                                        |     r3 = 0x56e70;
    0x0002b582 add r2, pc                                        |     r2 = 0x56e76;
    0x0002b584 bl 0x43f38                                        |     r0 = zbx_snprintf ();
    0x0002b588 add r5, r0                                        |     r5 += r0;
    0x0002b58a ldr r2, [pc, 0x368]                               |     
    0x0002b58c rsb.w r1, r5, 0x800                               |     r1 = 0x800 - r5;
    0x0002b590 ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x0002b592 adds r0, r6, r5                                   |     r0 = r6 + r5;
    0x0002b594 add r2, pc                                        |     r2 = 0x56e8e;
    0x0002b596 add.w r8, r4, r3                                  |     r8 = r4 + r3;
    0x0002b59a bl 0x43f38                                        |     r0 = zbx_snprintf ();
    0x0002b59e add r5, r0                                        |     r5 += r0;
    0x0002b5a0 b 0x2b106                                         |     goto label_3;
    0x0002b5a2 ldr r3, [pc, 0x354]                               |     
    0x0002b5a4 add r3, pc                                        |     r3 = 0x56ea2;
    0x0002b5a6 b 0x2b0be                                         |     goto label_7;
    0x0002b5a8 ldr r3, [pc, 0x350]                               |     
    0x0002b5aa mov r1, sl                                        |     r1 = sl;
    0x0002b5ac ldr r2, [pc, 0x350]                               |     
    0x0002b5ae mov r0, sb                                        |     r0 = sb;
    0x0002b5b0 add r3, pc                                        |     r3 = 0x56eb0;
    0x0002b5b2 add r2, pc                                        |     r2 = 0x56eb6;
    0x0002b5b4 bl 0x43f38                                        |     r0 = zbx_snprintf ();
    0x0002b5b8 add r5, r0                                        |     r5 += r0;
    0x0002b5ba ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x0002b5bc cmp r3, 4                                         |     
                                                                 |     if (r3 <= 4) {
    0x0002b5be ble.w 0x2bbe8                                     |         goto label_67;
                                                                 |     }
    0x0002b5c2 ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x0002b5c4 ldr r7, [pc, 0x33c]                               |     
    0x0002b5c6 ldr.w r0, [fp, 0xa]                               |     r0 = *(arg_ah);
    0x0002b5ca add r3, r4                                        |     r3 += r4;
    0x0002b5cc str r3, [sp, 0x28]                                |     var_28h = r3;
    0x0002b5ce add r7, pc                                        |     r7 = 0x56ed6;
    0x0002b5d0 ldr r3, [sp, 0x48]                                |     r3 = *(arg_48h);
    0x0002b5d2 str r0, [r3, -0x70]                               |     *((r3 - 0x70)) = r0;
    0x0002b5d6 blx 0xdc1c                                        |     clock_gettime ();
    0x0002b5da rsb.w r1, r5, 0x800                               |     r1 = 0x800 - r5;
    0x0002b5de mov r3, r0                                        |     r3 = r0;
    0x0002b5e0 mov r2, r7                                        |     r2 = r7;
    0x0002b5e2 adds r0, r6, r5                                   |     r0 = r6 + r5;
    0x0002b5e4 bl 0x43f38                                        |     r0 = zbx_snprintf ();
    0x0002b5e8 add r5, r0                                        |     r5 += r0;
    0x0002b5ea ldrb.w r0, [fp, 0xe]                              |     r0 = *(arg_eh);
    0x0002b5ee blx 0xdeb4                                        |     r0 = fcn_0000deb4 ();
    0x0002b5f2 mov sb, r0                                        |     sb = r0;
    0x0002b5f4 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002b5f6 beq.w 0x2baa8                                     |         goto label_68;
                                                                 |     }
    0x0002b5fa ldr r3, [r0]                                      |     r3 = *(r0);
    0x0002b5fc rsb.w r1, r5, 0x800                               |     r1 = 0x800 - r5;
    0x0002b600 adds r0, r6, r5                                   |     r0 = r6 + r5;
    0x0002b602 mov r2, r7                                        |     r2 = r7;
    0x0002b604 bl 0x43f38                                        |     r0 = zbx_snprintf ();
    0x0002b608 add r5, r0                                        |     r5 += r0;
                                                                 | label_19:
    0x0002b60a ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x0002b60c add.w r8, fp, 0xf                                 |     r8 += arg_fh;
    0x0002b610 cmp r8, r3                                        |     
                                                                 |     if (r8 >= r3) {
    0x0002b612 bhs.w 0x2b106                                     |         goto label_3;
                                                                 |     }
    0x0002b616 ldr.w sl, [pc, 0x2f0]                             |     sl = *(0x0002b908);
    0x0002b61a str.w fp, [sp, 0x34]                              |     __asm ("str.w fp, [var_34h]");
    0x0002b61e mov fp, r8                                        |     
    0x0002b620 str.w r8, [sp, 0x4c]                              |     __asm ("str.w r8, [arg_4ch]");
    0x0002b624 mov r8, r6                                        |     r8 = r6;
    0x0002b626 ldr r4, [sp, 0x40]                                |     r4 = *(arg_40h);
    0x0002b628 mov r6, sb                                        |     r6 = sb;
    0x0002b62a ldr.w sb, [sp, 0x54]                              |     sb = *(arg_54h);
    0x0002b62e add sl, pc                                        |     sl += pc;
                                                                 | label_10:
    0x0002b630 ldrb r7, [fp], 1                                  |     r7 = *(fp);
                                                                 |     fp++;
    0x0002b634 b 0x2b648                                         |     goto label_9;
                                                                 | label_8:
    0x0002b636 ldr r3, [r3]                                      |     r3 = *(r3);
    0x0002b638 mov r2, sl                                        |     r2 = sl;
    0x0002b63a bl 0x43f38                                        |     r0 = zbx_snprintf ();
    0x0002b63e add r5, r0                                        |     r5 += r0;
                                                                 |     do {
    0x0002b640 adds r4, 1                                        |         r4++;
    0x0002b642 lsls r7, r7, 1                                    |         r7 <<= 1;
    0x0002b644 lsls r0, r4, 0x1d                                 |         r0 = r4 << 0x1d;
                                                                 |         if (r0 == r4) {
    0x0002b646 beq 0x2b67a                                       |             goto label_69;
                                                                 |         }
                                                                 | label_9:
    0x0002b648 lsls r3, r7, 0x18                                 |         r3 = r7 << 0x18;
    0x0002b64a bpl 0x2b640                                       |         
                                                                 |     } while (r3 >= r7);
    0x0002b64c rev16 r0, r4                                      |     __asm ("rev16 r0, r4");
    0x0002b64e mov r1, r6                                        |     r1 = r6;
    0x0002b650 uxth r0, r0                                       |     r0 = (int16_t) r0;
                                                                 |     if (r6 != 0) {
    0x0002b652 cbz r6, 0x2b656                                   |         
    0x0002b654 ldr r1, [r6]                                      |         r1 = *(r6);
                                                                 |     }
    0x0002b656 blx 0xe2d4                                        |     r0 = fcn_0000e2d4 ();
    0x0002b65a mov r3, r0                                        |     r3 = r0;
    0x0002b65c rsb.w r1, r5, 0x800                               |     r1 = 0x800 - r5;
    0x0002b660 add.w r0, r8, r5                                  |     r0 = r8 + r5;
    0x0002b664 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0002b666 bne 0x2b636                                       |         goto label_8;
                                                                 |     }
    0x0002b668 mov r3, r4                                        |     r3 = r4;
    0x0002b66a mov r2, sb                                        |     r2 = sb;
    0x0002b66c adds r4, 1                                        |     r4++;
    0x0002b66e lsls r7, r7, 1                                    |     r7 <<= 1;
    0x0002b670 bl 0x43f38                                        |     r0 = zbx_snprintf ();
    0x0002b674 add r5, r0                                        |     r5 += r0;
    0x0002b676 lsls r0, r4, 0x1d                                 |     r0 = r4 << 0x1d;
                                                                 |     if (r0 != r4) {
    0x0002b678 bne 0x2b648                                       |         goto label_9;
                                                                 |     }
                                                                 | label_69:
    0x0002b67a ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x0002b67c cmp fp, r3                                        |     
                                                                 |     if (fp != r3) {
    0x0002b67e bne 0x2b630                                       |         goto label_10;
                                                                 |     }
    0x0002b680 mov r3, fp                                        |     r3 = fp;
    0x0002b682 ldr.w fp, [sp, 0x34]                              |     fp = var_34h;
    0x0002b686 mov r6, r8                                        |     r6 = r8;
    0x0002b688 ldr.w r8, [sp, 0x4c]                              |     r8 = *(arg_4ch);
    0x0002b68c sub.w r3, r3, fp                                  |     r3 -= fp;
    0x0002b690 subs r3, 0xf                                      |     r3 -= 0xf;
    0x0002b692 add r8, r3                                        |     r8 += r3;
    0x0002b694 b 0x2b106                                         |     goto label_3;
    0x0002b696 ldr r3, [pc, 0x274]                               |     
    0x0002b698 mov r1, sl                                        |     r1 = sl;
    0x0002b69a ldr r2, [pc, 0x274]                               |     
    0x0002b69c mov r0, sb                                        |     r0 = sb;
    0x0002b69e add r3, pc                                        |     r3 = 0x56fb0;
    0x0002b6a0 add r2, pc                                        |     r2 = 0x56fb6;
    0x0002b6a2 bl 0x43f38                                        |     r0 = zbx_snprintf ();
    0x0002b6a6 add r5, r0                                        |     r5 += r0;
    0x0002b6a8 ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x0002b6aa add.w r8, fp, 0xb                                 |     r8 += arg_bh;
    0x0002b6ae add r4, r3                                        |     r4 += r3;
    0x0002b6b0 ldrb.w r3, [fp, 0xa]                              |     r3 = *(arg_ah);
    0x0002b6b4 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0002b6b6 bne.w 0x2ba26                                     |         goto label_70;
                                                                 |     }
                                                                 | label_17:
    0x0002b6ba cmp r4, r8                                        |     
                                                                 |     if (r4 < r8) {
    0x0002b6bc bls.w 0x2b106                                     |         goto label_3;
                                                                 |     }
    0x0002b6c0 ldrb r3, [r8], 1                                  |     r3 = *(r8);
                                                                 |     r8++;
    0x0002b6c4 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0002b6c6 beq.w 0x2b106                                     |         goto label_3;
                                                                 |     }
    0x0002b6ca ldr r2, [pc, 0x248]                               |     
    0x0002b6cc rsb.w r1, r5, 0x800                               |     r1 = 0x800 - r5;
    0x0002b6d0 adds r0, r6, r5                                   |     r0 = r6 + r5;
    0x0002b6d2 str.w r8, [sp]                                    |     __asm ("str.w r8, [sp]");
    0x0002b6d6 add r8, r3                                        |     r8 += r3;
    0x0002b6d8 add r2, pc                                        |     r2 = 0x56ff2;
    0x0002b6da bl 0x43f38                                        |     r0 = zbx_snprintf ();
    0x0002b6de add r5, r0                                        |     r5 += r0;
    0x0002b6e0 b 0x2b106                                         |     goto label_3;
    0x0002b6e2 ldr r3, [pc, 0x234]                               |     
    0x0002b6e4 add r3, pc                                        |     r3 = 0x57002;
    0x0002b6e6 b 0x2b05a                                         |     goto label_11;
    0x0002b6e8 ldr r3, [pc, 0x230]                               |     
    0x0002b6ea add r3, pc                                        |     r3 = 0x5700a;
    0x0002b6ec b 0x2b0be                                         |     goto label_7;
    0x0002b6ee ldr r3, [pc, 0x230]                               |     
    0x0002b6f0 add r3, pc                                        |     r3 = 0x57016;
    0x0002b6f2 b 0x2b0be                                         |     goto label_7;
    0x0002b6f4 ldr r3, [sp, 0x34]                                |     r3 = var_34h;
    0x0002b6f6 cmp r3, 1                                         |     
                                                                 |     if (r3 == 1) {
    0x0002b6f8 beq 0x2b700                                       |         goto label_71;
                                                                 |     }
    0x0002b6fa cmp r3, 4                                         |     
                                                                 |     if (r3 != 4) {
    0x0002b6fc bne.w 0x2b1f4                                     |         goto label_12;
                                                                 |     }
                                                                 | label_71:
    0x0002b700 ldr r7, [sp, 0x48]                                |     r7 = *(arg_48h);
    0x0002b702 ldr.w r0, [fp, 0xa]                               |     r0 = *(arg_ah);
    0x0002b706 ldr r1, [r4, 4]                                   |     r1 = *((r4 + 4));
    0x0002b708 ldr r2, [r4, 8]                                   |     r2 = *((r4 + 8));
    0x0002b70a sub.w ip, r7, 0x30                                |     
    0x0002b70e ldr r3, [r4, 0xc]                                 |     r3 = *((r4 + 0xc));
    0x0002b710 mov lr, ip                                        |     lr = ip;
    0x0002b712 stm.w lr!, {r0, r1, r2, r3}                       |     *(lr!) = r0;
                                                                 |     *((lr! + 4)) = r1;
                                                                 |     *((lr! + 8)) = r2;
                                                                 |     *((lr! + 12)) = r3;
    0x0002b716 add.w r2, sp, 0x18c0                              |     r2 += arg_18c0h;
    0x0002b71a mov r1, ip                                        |     r1 = ip;
    0x0002b71c adds r2, 0xc                                      |     r2 += 0xc;
    0x0002b71e mov.w r3, 0x800                                   |     r3 = 0x800;
    0x0002b722 movs r0, 0xa                                      |     r0 = 0xa;
    0x0002b724 blx 0xdb6c                                        |     fcn_0000db6c ();
    0x0002b728 ldr r2, [pc, 0x1f8]                               |     
    0x0002b72a mov r3, r0                                        |     r3 = r0;
    0x0002b72c rsb.w r1, r5, 0x800                               |     r1 = 0x800 - r5;
    0x0002b730 adds r0, r6, r5                                   |     r0 = r6 + r5;
    0x0002b732 add r2, pc                                        |     r2 = 0x5705a;
    0x0002b734 bl 0x43f38                                        |     r0 = zbx_snprintf ();
    0x0002b738 add r5, r0                                        |     r5 += r0;
    0x0002b73a b 0x2b1f4                                         |     goto label_12;
                                                                 | label_55:
    0x0002b73c ldr r3, [sp, 0x48]                                |     r3 = *(arg_48h);
    0x0002b73e ldr.w r0, [fp, 0xa]                               |     r0 = *(arg_ah);
    0x0002b742 str r0, [r3, -0x70]                               |     *((r3 - 0x70)) = r0;
    0x0002b746 blx 0xdc1c                                        |     clock_gettime ();
    0x0002b74a ldr r2, [pc, 0x1dc]                               |     
    0x0002b74c mov r3, r0                                        |     r3 = r0;
    0x0002b74e rsb.w r1, r5, 0x800                               |     r1 = 0x800 - r5;
    0x0002b752 adds r0, r6, r5                                   |     r0 = r6 + r5;
    0x0002b754 add r2, pc                                        |     r2 = 0x57082;
    0x0002b756 bl 0x43f38                                        |     r0 = zbx_snprintf ();
    0x0002b75a add r5, r0                                        |     r5 += r0;
    0x0002b75c b 0x2b1f4                                         |     goto label_12;
                                                                 | label_45:
    0x0002b75e ldr r4, [sp, 0x30]                                |     r4 = var_30h;
    0x0002b760 movs r2, 0                                        |     r2 = 0;
    0x0002b762 ldr r3, [pc, 0x1c8]                               |     
    0x0002b764 movw r1, 0x26b                                    |     r1 = 0x26b;
    0x0002b768 ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x0002b76a add r3, pc                                        |     r3 = 0x5709c;
    0x0002b76c orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x0002b770 str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x0002b772 ldr r0, [pc, 0x1bc]                               |     
    0x0002b774 add r0, pc                                        |     r0 = 0x570aa;
    0x0002b776 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x0002b77a b 0x2af9a                                         |     goto label_13;
                                                                 | label_48:
    0x0002b77c ldr r5, [sp, 0x30]                                |     r5 = var_30h;
    0x0002b77e movs r4, 1                                        |     r4 = 1;
    0x0002b780 ldr r3, [pc, 0x1b0]                               |     
    0x0002b782 movw r1, 0x27f                                    |     r1 = 0x27f;
    0x0002b786 ldr r0, [pc, 0x1b0]                               |     
    0x0002b788 ldr r2, [r5, 0x28]                                |     r2 = *((r5 + 0x28));
    0x0002b78a add r3, pc                                        |     r3 = 0x570c2;
    0x0002b78c add r0, pc                                        |     r0 = 0x570ca;
    0x0002b78e orr r2, r2, 0x20                                  |     r2 |= 0x20;
    0x0002b792 str r2, [r5, 0x28]                                |     *((r5 + 0x28)) = r2;
    0x0002b794 movs r2, 0                                        |     r2 = 0;
    0x0002b796 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x0002b79a str r0, [r5, 0x20]                                |     *((r5 + 0x20)) = r0;
                                                                 | label_54:
    0x0002b79c ldr r2, [sp, 0x44]                                |     r2 = *(arg_44h);
    0x0002b79e ldr r3, [pc, 0x19c]                               |     r3 = *(0x2b93e);
    0x0002b7a0 ldr r5, [sp, 0x38]                                |     r5 = *(arg_38h);
    0x0002b7a2 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x0002b7a4 mov r0, r5                                        |     r0 = r5;
    0x0002b7a6 mov r1, r3                                        |     r1 = r3;
    0x0002b7a8 str r3, [sp, 0x1c]                                |     var_1ch = r3;
    0x0002b7aa bl 0x32de8                                        |     zbx_vector_str_clear_ext ();
    0x0002b7ae mov r0, r5                                        |     r0 = r5;
    0x0002b7b0 bl 0x329d8                                        |     zbx_vector_str_destroy ();
    0x0002b7b4 b.w 0x2afa0                                       |     goto label_14;
                                                                 | label_28:
    0x0002b7b8 ldr r0, [sp, 0x20]                                |     r0 = var_20h;
    0x0002b7ba sub.w r3, r4, 0x2c                                |     r3 = r4 - 0x2c;
    0x0002b7be blx 0xdf14                                        |     r0 = fcn_0000df14 ();
                                                                 |     if (r0 != 0) {
    0x0002b7c2 cbnz r0, 0x2b7da                                  |         goto label_72;
                                                                 |     }
    0x0002b7c4 ldr r0, [fp, -0x6c]                               |     r0 = var_6ch;
    0x0002b7c8 ldr r3, [r0, 4]                                   |     r3 = *((r0 + 4));
    0x0002b7ca cmp r3, 0xa                                       |     
    0x0002b7cc it ne                                             |     
                                                                 |     if (r3 == 0xa) {
    0x0002b7ce movne r3, 2                                       |         r3 = 2;
                                                                 |     }
    0x0002b7d0 str r3, [sp, 0x24]                                |     var_24h = r3;
                                                                 |     do {
    0x0002b7d2 blx 0xdd90                                        |         strrchr (r0, r1);
    0x0002b7d6 b.w 0x2ac0c                                       |         goto label_15;
                                                                 | label_72:
    0x0002b7da ldr r0, [fp, -0x6c]                               |         r0 = var_6ch;
    0x0002b7de movs r3, 2                                        |         r3 = 2;
    0x0002b7e0 str r3, [sp, 0x24]                                |         var_24h = r3;
    0x0002b7e2 cmp r0, 0                                         |         
    0x0002b7e4 bne 0x2b7d2                                       |         
                                                                 |     } while (r0 != 0);
    0x0002b7e6 b.w 0x2ac0c                                       |     goto label_15;
                                                                 | label_59:
    0x0002b7ea mov r8, r4                                        |     r8 = r4;
                                                                 | label_61:
    0x0002b7ec ldr r2, [pc, 0x150]                               |     
    0x0002b7ee rsb.w r1, r7, 0x800                               |     r1 = 0x800 - r7;
    0x0002b7f2 adds r0, r6, r7                                   |     r0 = r6 + r7;
    0x0002b7f4 add r2, pc                                        |     r2 = 0x57138;
    0x0002b7f6 bl 0x43f38                                        |     r0 = zbx_snprintf ();
    0x0002b7fa adds r5, r0, r7                                   |     r5 = r0 + r7;
    0x0002b7fc b 0x2b106                                         |     goto label_3;
                                                                 | label_39:
    0x0002b944 ldrd r2, r3, [fp, -0x78]                          |     __asm ("ldrd r2, r3, [var_78h]");
    0x0002b948 cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x0002b94c beq 0x2b9ea                                       |         goto label_73;
                                                                 |     }
    0x0002b94e str.w sl, [sp]                                    |     __asm ("str.w sl, [sp]");
    0x0002b952 mov r1, r6                                        |     r1 = r6;
    0x0002b954 strd r2, r3, [fp, -0x4]                           |     __asm ("strd r2, r3, [fp, -0x4]");
    0x0002b958 mov r2, r0                                        |     r2 = r0;
    0x0002b95a ldr.w r3, [fp, 4]                                 |     r3 = *(arg_4h);
    0x0002b95e orr r3, r3, 8                                     |     r3 |= 8;
    0x0002b962 str.w r3, [fp, 4]                                 |     __asm ("str.w r3, [arg_4h]");
                                                                 |     do {
    0x0002b966 add r7, sp, 0x2d0                                 |         r7 += arg_2d0h;
    0x0002b968 mov r0, r5                                        |         r0 = r5;
    0x0002b96a subs r3, r7, 4                                    |         r3 = r7 - 4;
    0x0002b96c str r3, [sp, 0x2c]                                |         var_2ch = r3;
    0x0002b96e blx 0xdd2c                                        |         r0 = fcn_0000dd2c ();
    0x0002b972 mov r8, r0                                        |         r8 = r0;
    0x0002b974 b.w 0x2ae18                                       |         goto label_16;
                                                                 | label_37:
    0x0002b978 ldr r2, [sp, 0x30]                                |         r2 = var_30h;
    0x0002b97a ldr r3, [r2, 0x28]                                |         r3 = *((r2 + 0x28));
    0x0002b97c orr r3, r3, 0x20                                  |         r3 |= 0x20;
    0x0002b980 str r3, [r2, 0x28]                                |         *((r2 + 0x28)) = r3;
    0x0002b982 blx 0xe3d4                                        |         r0 = fcn_0000e3d4 ();
    0x0002b986 ldr r0, [r0]                                      |         r0 = *(r0);
    0x0002b988 bl 0x30b74                                        |         zbx_strerror ();
    0x0002b98c ldr r1, [pc, 0x288]                               |         
    0x0002b98e mov r2, r0                                        |         r2 = r0;
    0x0002b990 movs r0, 0                                        |         r0 = 0;
    0x0002b992 add r1, pc                                        |         r1 = 0x575ae;
    0x0002b994 bl 0x44820                                        |         zbx_dsprintf ()
    0x0002b998 b.w 0x2af9a                                       |         goto label_13;
                                                                 | label_44:
    0x0002b99c ldr r2, [sp, 0x30]                                |         r2 = var_30h;
    0x0002b99e cmp.w r8, -1                                      |         
    0x0002b9a2 ldr r3, [r2, 0x28]                                |         r3 = *((r2 + 0x28));
    0x0002b9a4 orr r3, r3, 1                                     |         r3 |= 1;
    0x0002b9a8 str r3, [r2, 0x28]                                |         *((r2 + 0x28)) = r3;
                                                                 |         if (r8 != -1) {
    0x0002b9aa beq 0x2b9ba                                       |             
    0x0002b9ac ldr r3, [sp, 0x1c]                                |             r3 = var_1ch;
    0x0002b9ae subw r2, r3, 0xe04                                |             __asm ("subw r2, r3, 0xe04");
    0x0002b9b2 ldrb r3, [r2, 3]                                  |             r3 = *((r2 + 3));
    0x0002b9b4 ands r3, r3, 0xf                                  |             r3 &= 0xf;
                                                                 |             if (r3 == r3) {
    0x0002b9b8 beq 0x2ba3e                                       |                 goto label_74;
                                                                 |             }
                                                                 |         }
    0x0002b9ba movs r2, 0                                        |         r2 = 0;
    0x0002b9bc mov r3, r2                                        |         r3 = r2;
                                                                 | label_18:
    0x0002b9be ldr r1, [sp, 0x30]                                |         r1 = var_30h;
    0x0002b9c0 movs r4, 0                                        |         r4 = 0;
    0x0002b9c2 strd r2, r3, [r1, 8]                              |         __asm ("strd r2, r3, [r1, 8]");
    0x0002b9c6 b.w 0x2afa0                                       |         goto label_14;
                                                                 | label_51:
    0x0002b9ca ldr r5, [sp, 0x30]                                |         r5 = var_30h;
    0x0002b9cc mov r2, r0                                        |         r2 = r0;
    0x0002b9ce ldr r3, [pc, 0x24c]                               |         
    0x0002b9d0 movw r1, 0x10f                                    |         r1 = 0x10f;
    0x0002b9d4 ldr r0, [pc, 0x248]                               |         
    0x0002b9d6 ldr r4, [r5, 0x28]                                |         r4 = *((r5 + 0x28));
    0x0002b9d8 add r3, pc                                        |         r3 = 0x575fa;
    0x0002b9da add r0, pc                                        |         r0 = 0x575fe;
    0x0002b9dc orr r4, r4, 0x20                                  |         r4 |= 0x20;
    0x0002b9e0 str r4, [r5, 0x28]                                |         *((r5 + 0x28)) = r4;
    0x0002b9e2 bl 0x40ed8                                        |         zbx_strdup2 ();
    0x0002b9e6 b.w 0x2af9a                                       |         goto label_13;
                                                                 | label_73:
    0x0002b9ea str.w sl, [sp]                                    |         __asm ("str.w sl, [sp]");
    0x0002b9ee mov r1, r6                                        |         r1 = r6;
    0x0002b9f0 strd r2, r3, [fp, -0x4]                           |         __asm ("strd r2, r3, [fp, -0x4]");
    0x0002b9f4 mov r2, sb                                        |         r2 = sb;
    0x0002b9f6 b 0x2b966                                         |         
                                                                 |     } while (1);
                                                                 | label_38:
    0x0002b9f8 ldr r2, [sp, 0x30]                                |     r2 = var_30h;
    0x0002b9fa ldr r3, [r2, 0x28]                                |     r3 = *((r2 + 0x28));
    0x0002b9fc orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x0002ba00 str r3, [r2, 0x28]                                |     *((r2 + 0x28)) = r3;
    0x0002ba02 blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x0002ba06 ldr r0, [r0]                                      |     r0 = *(r0);
    0x0002ba08 bl 0x30b74                                        |     zbx_strerror ();
    0x0002ba0c ldr r1, [pc, 0x214]                               |     
    0x0002ba0e mov r2, r0                                        |     r2 = r0;
    0x0002ba10 mov r0, r7                                        |     r0 = r7;
    0x0002ba12 add r1, pc                                        |     r1 = 0x5763a;
    0x0002ba14 bl 0x44820                                        |     zbx_dsprintf ()
    0x0002ba18 b.w 0x2af9a                                       |     goto label_13;
                                                                 | label_43:
    0x0002ba1c ldr r3, [sp, 0x34]                                |     r3 = var_34h;
    0x0002ba1e str.w r3, [fp, 0x1e0]                             |     __asm ("str.w r3, [arg_1e0h]");
    0x0002ba22 b.w 0x2ae18                                       |     goto label_16;
                                                                 | label_70:
    0x0002ba26 ldr r2, [pc, 0x200]                               |     
    0x0002ba28 rsb.w r1, r5, 0x800                               |     r1 = 0x800 - r5;
    0x0002ba2c adds r0, r6, r5                                   |     r0 = r6 + r5;
    0x0002ba2e str.w r8, [sp]                                    |     __asm ("str.w r8, [sp]");
    0x0002ba32 add r8, r3                                        |     r8 += r3;
    0x0002ba34 add r2, pc                                        |     r2 = 0x57662;
    0x0002ba36 bl 0x43f38                                        |     r0 = zbx_snprintf ();
    0x0002ba3a add r5, r0                                        |     r5 += r0;
    0x0002ba3c b 0x2b6ba                                         |     goto label_17;
                                                                 | label_74:
    0x0002ba3e ldrh r2, [r2, 6]                                  |     r2 = *((r2 + 6));
    0x0002ba40 subs r2, 0                                        |     
    0x0002ba42 it ne                                             |     
                                                                 |     if (r2 == 0) {
    0x0002ba44 movne r2, 1                                       |         r2 = 1;
                                                                 |     }
    0x0002ba46 b 0x2b9be                                         |     goto label_18;
                                                                 | label_56:
    0x0002ba48 ldr r4, [sp, 0x30]                                |     r4 = var_30h;
    0x0002ba4a movs r2, 0                                        |     r2 = 0;
    0x0002ba4c ldr r3, [pc, 0x1dc]                               |     
    0x0002ba4e mov.w r1, 0x11a                                   |     r1 = 0x11a;
    0x0002ba52 ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x0002ba54 add r3, pc                                        |     r3 = "java poller";
    0x0002ba56 orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x0002ba5a str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x0002ba5c ldr r0, [pc, 0x1d0]                               |     
    0x0002ba5e add r0, pc                                        |     r0 = 0x57692;
    0x0002ba60 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x0002ba64 b.w 0x2af9a                                       |     goto label_13;
                                                                 | label_57:
    0x0002ba68 ldr r4, [sp, 0x30]                                |     r4 = var_30h;
    0x0002ba6a movs r2, 0                                        |     r2 = 0;
    0x0002ba6c ldr r3, [pc, 0x1c4]                               |     
    0x0002ba6e mov.w r1, 0x124                                   |     r1 = 0x124;
    0x0002ba72 ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x0002ba74 add r3, pc                                        |     r3 = 0x576ac;
    0x0002ba76 orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x0002ba7a str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x0002ba7c ldr r0, [pc, 0x1b8]                               |     
    0x0002ba7e add r0, pc                                        |     r0 = 0x576ba;
    0x0002ba80 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x0002ba84 b.w 0x2af9a                                       |     goto label_13;
                                                                 | label_41:
    0x0002ba88 ldr r5, [sp, 0x30]                                |     r5 = var_30h;
    0x0002ba8a mov r2, r0                                        |     r2 = r0;
    0x0002ba8c ldr r3, [pc, 0x1ac]                               |     
    0x0002ba8e mov.w r1, 0x1f6                                   |     r1 = 0x1f6;
    0x0002ba92 ldr r0, [pc, 0x1ac]                               |     
    0x0002ba94 ldr r4, [r5, 0x28]                                |     r4 = *((r5 + 0x28));
    0x0002ba96 add r3, pc                                        |     r3 = 0x576d6;
    0x0002ba98 add r0, pc                                        |     r0 = 0x576de;
    0x0002ba9a orr r4, r4, 0x20                                  |     r4 |= 0x20;
    0x0002ba9e str r4, [r5, 0x28]                                |     *((r5 + 0x28)) = r4;
    0x0002baa0 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x0002baa4 b.w 0x2af9a                                       |     goto label_13;
                                                                 | label_68:
    0x0002baa8 ldr r2, [pc, 0x198]                               |     
    0x0002baaa rsb.w r1, r5, 0x800                               |     r1 = 0x800 - r5;
    0x0002baae adds r0, r6, r5                                   |     r0 = r6 + r5;
    0x0002bab0 ldrb.w r3, [fp, 0xe]                              |     r3 = *(arg_eh);
    0x0002bab4 add r2, pc                                        |     r2 = "data sender";
    0x0002bab6 bl 0x43f38                                        |     r0 = zbx_snprintf ();
    0x0002baba add r5, r0                                        |     r5 += r0;
    0x0002babc b 0x2b60a                                         |     goto label_19;
                                                                 | label_40:
    0x0002babe ldr r0, [sp, 0x20]                                |     r0 = var_20h;
    0x0002bac0 sub.w r1, r4, 0x30                                |     r1 = r4 - 0x30;
    0x0002bac4 blx 0xdf2c                                        |     r0 = fcn_0000df2c ();
    0x0002bac8 mov r2, r0                                        |     r2 = r0;
    0x0002baca cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0002bacc beq 0x2bbca                                       |         
    0x0002bace ldr r3, [fp, -0x70]                               |         r3 = var_70h;
    0x0002bad2 str.w r3, [fp, 0x10]                              |         __asm ("str.w r3, [arg_10h]");
    0x0002bad6 movs r3, 2                                        |         
    0x0002bad8 movt r3, 0x3500                                   |         r3 = 0x35000002;
    0x0002badc str.w r3, [fp, 0xc]                               |         __asm ("str.w r3, [arg_ch]");
    0x0002bae0 movs r3, 1                                        |         r3 = 1;
    0x0002bae2 str.w r3, [fp, 8]                                 |         __asm ("str.w r3, [arg_8h]");
    0x0002bae6 b.w 0x2add8                                       |         goto label_20;
                                                                 | label_66:
    0x0002baea ldr r4, [sp, 0x30]                                |         r4 = var_30h;
    0x0002baec movs r2, 0                                        |         r2 = 0;
    0x0002baee ldr r3, [pc, 0x158]                               |         
    0x0002baf0 mov.w r1, 0x338                                   |         r1 = 0x338;
    0x0002baf4 ldr r0, [r4, 0x28]                                |         r0 = *((r4 + 0x28));
    0x0002baf6 add r3, pc                                        |         r3 = "vmware collector";
    0x0002baf8 orr r0, r0, 0x20                                  |         r0 |= 0x20;
    0x0002bafc str r0, [r4, 0x28]                                |         *((r4 + 0x28)) = r0;
    0x0002bafe ldr r0, [pc, 0x14c]                               |         
    0x0002bb00 add r0, pc                                        |         r0 = 0x57752;
    0x0002bb02 bl 0x40ed8                                        |         zbx_strdup2 ();
    0x0002bb06 b.w 0x2af9a                                       |         goto label_13;
                                                                 | label_65:
    0x0002bb0a ldr r4, [sp, 0x30]                                |         r4 = var_30h;
    0x0002bb0c movs r2, 0                                        |         r2 = 0;
    0x0002bb0e ldr r3, [pc, 0x140]                               |         
    0x0002bb10 movw r1, 0x331                                    |         r1 = 0x331;
    0x0002bb14 ldr r0, [r4, 0x28]                                |         r0 = *((r4 + 0x28));
    0x0002bb16 add r3, pc                                        |         r3 = 0x5776c;
    0x0002bb18 orr r0, r0, 0x20                                  |         r0 |= 0x20;
    0x0002bb1c str r0, [r4, 0x28]                                |         *((r4 + 0x28)) = r0;
    0x0002bb1e ldr r0, [pc, 0x134]                               |         
    0x0002bb20 add r0, pc                                        |         r0 = 0x5777a;
    0x0002bb22 bl 0x40ed8                                        |         zbx_strdup2 ();
    0x0002bb26 b.w 0x2af9a                                       |         goto label_13;
                                                                 | label_64:
    0x0002bb2a ldr r4, [sp, 0x30]                                |         r4 = var_30h;
    0x0002bb2c movs r2, 0                                        |         r2 = 0;
    0x0002bb2e ldr r3, [pc, 0x128]                               |         
    0x0002bb30 movw r1, 0x2d3                                    |         r1 = 0x2d3;
    0x0002bb34 ldr r0, [r4, 0x28]                                |         r0 = *((r4 + 0x28));
    0x0002bb36 add r3, pc                                        |         r3 = "preprocessing manager";
    0x0002bb38 orr r0, r0, 0x20                                  |         r0 |= 0x20;
    0x0002bb3c str r0, [r4, 0x28]                                |         *((r4 + 0x28)) = r0;
    0x0002bb3e ldr r0, [pc, 0x11c]                               |         
    0x0002bb40 add r0, pc                                        |         r0 = 0x577a2;
    0x0002bb42 bl 0x40ed8                                        |         zbx_strdup2 ();
    0x0002bb46 b.w 0x2af9a                                       |         goto label_13;
                                                                 | label_63:
    0x0002bb4a ldr r4, [sp, 0x30]                                |         r4 = var_30h;
    0x0002bb4c movs r2, 0                                        |         r2 = 0;
    0x0002bb4e ldr r3, [pc, 0x110]                               |         
    0x0002bb50 mov.w r1, 0x2cc                                   |         r1 = 0x2cc;
    0x0002bb54 ldr r0, [r4, 0x28]                                |         r0 = *((r4 + 0x28));
    0x0002bb56 add r3, pc                                        |         r3 = 0x577bc;
    0x0002bb58 orr r0, r0, 0x20                                  |         r0 |= 0x20;
    0x0002bb5c str r0, [r4, 0x28]                                |         *((r4 + 0x28)) = r0;
    0x0002bb5e ldr r0, [pc, 0x104]                               |         
    0x0002bb60 add r0, pc                                        |         r0 = 0x577ca;
    0x0002bb62 bl 0x40ed8                                        |         zbx_strdup2 ();
    0x0002bb66 b.w 0x2af9a                                       |         goto label_13;
                                                                 | label_62:
    0x0002bb6a ldr r4, [sp, 0x30]                                |         r4 = var_30h;
    0x0002bb6c movs r2, 0                                        |         r2 = 0;
    0x0002bb6e ldr r3, [pc, 0xf8]                                |         
    0x0002bb70 movw r1, 0x2c3                                    |         r1 = 0x2c3;
    0x0002bb74 ldr r0, [r4, 0x28]                                |         r0 = *((r4 + 0x28));
    0x0002bb76 add r3, pc                                        |         r3 = 0x577e4;
    0x0002bb78 orr r0, r0, 0x20                                  |         r0 |= 0x20;
    0x0002bb7c str r0, [r4, 0x28]                                |         *((r4 + 0x28)) = r0;
    0x0002bb7e ldr r0, [pc, 0xec]                                |         
    0x0002bb80 add r0, pc                                        |         r0 = 0x577f2;
    0x0002bb82 bl 0x40ed8                                        |         zbx_strdup2 ();
    0x0002bb86 b.w 0x2af9a                                       |         goto label_13;
                                                                 | label_52:
    0x0002bb8a ldr r4, [sp, 0x30]                                |         r4 = var_30h;
    0x0002bb8c movs r2, 0                                        |         r2 = 0;
    0x0002bb8e ldr r3, [pc, 0xe0]                                |         
    0x0002bb90 mov.w r1, 0x2b8                                   |         r1 = 0x2b8;
    0x0002bb94 ldr r0, [r4, 0x28]                                |         r0 = *((r4 + 0x28));
    0x0002bb96 add r3, pc                                        |         r3 = 0x5780c;
    0x0002bb98 orr r0, r0, 0x20                                  |         r0 |= 0x20;
    0x0002bb9c str r0, [r4, 0x28]                                |         *((r4 + 0x28)) = r0;
    0x0002bb9e ldr r0, [pc, 0xd4]                                |         
    0x0002bba0 add r0, pc                                        |         r0 = 0x5781a;
    0x0002bba2 bl 0x40ed8                                        |         zbx_strdup2 ();
    0x0002bba6 b.w 0x2af9a                                       |         goto label_13;
                                                                 | label_58:
    0x0002bbaa ldr r4, [sp, 0x30]                                |         r4 = var_30h;
    0x0002bbac movs r2, 0                                        |         r2 = 0;
    0x0002bbae ldr r3, [pc, 0xc8]                                |         
    0x0002bbb0 movw r1, 0x357                                    |         r1 = 0x357;
    0x0002bbb4 ldr r0, [r4, 0x28]                                |         r0 = *((r4 + 0x28));
    0x0002bbb6 add r3, pc                                        |         r3 = "service manager";
    0x0002bbb8 orr r0, r0, 0x20                                  |         r0 |= 0x20;
    0x0002bbbc str r0, [r4, 0x28]                                |         *((r4 + 0x28)) = r0;
    0x0002bbbe ldr r0, [pc, 0xbc]                                |         
    0x0002bbc0 add r0, pc                                        |         r0 = 0x57842;
    0x0002bbc2 bl 0x40ed8                                        |         zbx_strdup2 ();
    0x0002bbc6 b.w 0x2af9a                                       |         goto label_13;
                                                                 |     }
    0x0002bbca ldr r4, [sp, 0x30]                                |     r4 = var_30h;
    0x0002bbcc movw r1, 0x1df                                    |     r1 = 0x1df;
    0x0002bbd0 ldr r3, [pc, 0xac]                                |     
    0x0002bbd2 ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x0002bbd4 add r3, pc                                        |     r3 = "ha manager";
    0x0002bbd6 orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x0002bbda str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x0002bbdc ldr r0, [pc, 0xa4]                                |     
    0x0002bbde add r0, pc                                        |     r0 = 0x57866;
    0x0002bbe0 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x0002bbe4 b.w 0x2af9a                                       |     goto label_13;
                                                                 | label_67:
    0x0002bbe8 ldr r4, [sp, 0x30]                                |     r4 = var_30h;
    0x0002bbea movs r2, 0                                        |     r2 = 0;
    0x0002bbec ldr r3, [pc, 0x98]                                |     
    0x0002bbee movw r1, 0x2ef                                    |     r1 = 0x2ef;
    0x0002bbf2 ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x0002bbf4 add r3, pc                                        |     r3 = "sender";
    0x0002bbf6 orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x0002bbfa str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x0002bbfc ldr r0, [pc, 0x8c]                                |     
    0x0002bbfe add r0, pc                                        |     r0 = 0x5788e;
    0x0002bc00 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x0002bc04 b.w 0x2af9a                                       |     goto label_13;
                                                                 | label_47:
    0x0002bc08 add.w r6, sp, 0x10c0                              |     r6 += arg_10c0h;
    0x0002bc0c adds r6, 0xc                                      |     r6 += 0xc;
    0x0002bc0e b.w 0x2b15c                                       |     goto label_21;
                                                                 | label_50:
    0x0002bc12 blx 0xe158                                        |     fcn_0000e158 ();
    0x0002bc16 nop                                               |     
    0x0002bc18 ldrb r2, [r5, 7]                                  |     r2 = *((r5 + 7));
    0x0002bc1a movs r2, r0                                       |     r2 = r0;
    0x0002bc1c strb r4, [r7, r3]                                 |     *((r7 + r3)) = r4;
    0x0002bc1e movs r2, r0                                       |     r2 = r0;
    0x0002bc20 ldrb r2, [r5, 5]                                  |     r2 = *((r5 + 5));
    0x0002bc22 movs r2, r0                                       |     r2 = r0;
    0x0002bc24 ldrb r6, [r1, 6]                                  |     r6 = *((r1 + 6));
    0x0002bc26 movs r2, r0                                       |     r2 = r0;
    0x0002bc28 ldrb r0, [r3, 8]                                  |     r0 = *((r3 + 8));
    0x0002bc2a movs r2, r0                                       |     r2 = r0;
    0x0002bc2c subs r4, 0x68                                     |     r4 -= 0x68;
    0x0002bc2e movs r2, r0                                       |     r2 = r0;
    0x0002bc30 ldrb r6, [r4, 3]                                  |     r6 = *((r4 + 3));
    0x0002bc32 movs r2, r0                                       |     r2 = r0;
    0x0002bc34 subs r4, 0x64                                     |     r4 -= 0x64;
    0x0002bc36 movs r2, r0                                       |     r2 = r0;
    0x0002bc38 ldrb r6, [r0, 3]                                  |     r6 = *((r0 + 3));
    0x0002bc3a movs r2, r0                                       |     r2 = r0;
    0x0002bc3c ldrb r2, [r7, 4]                                  |     r2 = *((r7 + 4));
    0x0002bc3e movs r2, r0                                       |     r2 = r0;
    0x0002bc40 ldrb r4, [r5, 2]                                  |     r4 = *((r5 + 2));
    0x0002bc42 movs r2, r0                                       |     r2 = r0;
    0x0002bc44 strh r4, [r5, 0x32]                               |     *((r5 + 0x32)) = r4;
    0x0002bc46 movs r2, r0                                       |     r2 = r0;
    0x0002bc48 ldrb r6, [r2, 4]                                  |     r6 = *((r2 + 4));
    0x0002bc4a movs r2, r0                                       |     r2 = r0;
    0x0002bc4c ldrb r4, [r0, 1]                                  |     r4 = *((r0 + 1));
    0x0002bc4e movs r2, r0                                       |     r2 = r0;
    0x0002bc50 ldrb r6, [r6, 3]                                  |     r6 = *((r6 + 3));
    0x0002bc52 movs r2, r0                                       |     r2 = r0;
    0x0002bc54 ldrb r4, [r4]                                     |     r4 = *(r4);
    0x0002bc56 movs r2, r0                                       |     r2 = r0;
    0x0002bc58 ldrb r6, [r2, 3]                                  |     r6 = *((r2 + 3));
    0x0002bc5a movs r2, r0                                       |     r2 = r0;
    0x0002bc5c ldrb r4, [r0]                                     |     r4 = *(r0);
    0x0002bc5e movs r2, r0                                       |     r2 = r0;
    0x0002bc60 ldrb r6, [r6, 2]                                  |     r6 = *((r6 + 2));
    0x0002bc62 movs r2, r0                                       |     r2 = r0;
    0x0002bc64 strb r4, [r4, 0x1f]                               |     *((r4 + 0x1f)) = r4;
    0x0002bc66 movs r2, r0                                       |     r2 = r0;
    0x0002bc68 ldrb r6, [r2, 2]                                  |     r6 = *((r2 + 2));
    0x0002bc6a movs r2, r0                                       |     r2 = r0;
    0x0002bc6c strb r4, [r0, 0x1f]                               |     *((r0 + 0x1f)) = r4;
    0x0002bc6e movs r2, r0                                       |     r2 = r0;
    0x0002bc70 ldrb r6, [r6, 1]                                  |     r6 = *((r6 + 1));
    0x0002bc72 movs r2, r0                                       |     r2 = r0;
    0x0002bc74 strb r4, [r4, 0x1e]                               |     *((r4 + 0x1e)) = r4;
    0x0002bc76 movs r2, r0                                       |     r2 = r0;
    0x0002bc78 ldrb r6, [r2, 1]                                  |     r6 = *((r2 + 1));
    0x0002bc7a movs r2, r0                                       |     r2 = r0;
    0x0002bc7c strb r4, [r0, 0x1e]                               |     *((r0 + 0x1e)) = r4;
    0x0002bc7e movs r2, r0                                       |     r2 = r0;
    0x0002bc80 strb r0, [r5, 0x1f]                               |     *((r5 + 0x1f)) = r0;
    0x0002bc82 movs r2, r0                                       |     r2 = r0;
    0x0002bc84 strb r6, [r4, 0x1d]                               |     *((r4 + 0x1d)) = r6;
    0x0002bc86 movs r2, r0                                       |     r2 = r0;
    0x0002bc88 ldrb r0, [r3]                                     |     r0 = *(r3);
    0x0002bc8a movs r2, r0                                       |     r2 = r0;
    0x0002bc8c strb r6, [r0, 0x1d]                               |     *((r0 + 0x1d)) = r6;
    0x0002bc8e movs r2, r0                                       |     r2 = r0;
    0x0002bc90 movs r2, 1                                        |     r2 = 1;
    0x0002bc92 b.w 0x2ab7c                                       |     goto label_22;
    0x0002bca0 push {r3, r4, r5, lr}                             |     
    0x0002bca2 mov r4, r0                                        |     r4 = r0;
    0x0002bca4 ldr r3, [r0, 4]                                   |     r3 = *((r0 + 4));
    0x0002bca6 mov r5, r1                                        |     r5 = r1;
    0x0002bca8 cmp r3, 5                                         |     
                                                                 |     if (r3 > 5) {
    0x0002bcaa ble 0x2bccc                                       |         
    0x0002bcac ldr r3, [r0, 8]                                   |         r3 = *((r0 + 8));
    0x0002bcae ldr r0, [r3, 0x14]                                |         r0 = *((r3 + 0x14));
                                                                 |         if (r0 == 0) {
    0x0002bcb0 cbz r0, 0x2bccc                                   |             goto label_75;
                                                                 |         }
    0x0002bcb2 ldr r1, [pc, 0x28]                                |         
    0x0002bcb4 add r1, pc                                        |         r1 = 0x57996;
    0x0002bcb6 blx 0xe3b0                                        |         r0 = fcn_0000e3b0 ();
                                                                 |         if (r0 != 0) {
    0x0002bcba cbnz r0, 0x2bccc                                  |             goto label_75;
                                                                 |         }
    0x0002bcbc ldr r0, [pc, 0x20]                                |         
    0x0002bcbe mov r2, r5                                        |         r2 = r5;
    0x0002bcc0 mov r1, r4                                        |         r1 = r4;
    0x0002bcc2 pop.w {r3, r4, r5, lr}                            |         
    0x0002bcc6 add r0, pc                                        |         r0 = 0x579aa;
    0x0002bcc8 b.w 0x1d378                                       |         void (*0x1d378)() ();
                                                                 |     }
                                                                 | label_75:
    0x0002bccc mov r1, r5                                        |     r1 = r5;
    0x0002bcce mov r0, r4                                        |     r0 = r4;
    0x0002bcd0 movs r2, 1                                        |     r2 = 1;
    0x0002bcd2 pop.w {r3, r4, r5, lr}                            |     
    0x0002bcd6 b.w 0x2ab7c                                       |     goto label_22;
                                                                 | label_25:
    0x000383b4 lsl.w r2, r2, r7                                  |     r2 <<= r7;
    0x000383b8 mov.w r3, 0                                       |     r3 = 0;
    0x000383bc add.w r0, r5, 1                                   |     r0 = r5 + 1;
    0x000383c0 orr.w r2, r2, r1                                  |     r2 |= r1;
    0x000383c4 it eq                                             |     
                                                                 |     if (r2 != 1) {
    0x000383c6 moveq r1, r4                                      |         r1 = r4;
                                                                 |     }
    0x000383c8 str r2, [ip, -0x84]                               |     *((ip - 0x84)) = r2;
    0x000383cc itte ne                                           |     
                                                                 |     if (r2 == 1) {
    0x000383ce movne r1, r3                                      |         r1 = r3;
                                                                 |     }
                                                                 |     if (r2 == 1) {
    0x000383d0 movne r2, r4                                      |         r2 = r4;
                                                                 |     }
                                                                 |     if (r2 != 1) {
    0x000383d2 moveq r2, r3                                      |         r2 = r3;
                                                                 |     }
    0x000383d4 blx 0xe09c                                        |     r0 = fwrite (r0, r1, r2, r3);
    0x000383d8 adds r3, r0, 1                                    |     r3 = r0 + 1;
    0x000383da mov r4, r0                                        |     r4 = r0;
                                                                 |     if (r3 == r0) {
    0x000383dc beq 0x38410                                       |         goto label_76;
                                                                 |     }
                                                                 | label_24:
    0x000383de ldr r3, [r6]                                      |     r3 = *(r6);
    0x000383e0 cmp r3, 3                                         |     
    0x000383e2 bgt 0x383fe                                       |     
                                                                 |     while (1) {
                                                                 | label_23:
    0x000383e4 ldr r2, [pc, 0x80]                                |         
    0x000383e6 ldr r3, [pc, 0x74]                                |         r3 = *(0x3845e);
    0x000383e8 add r2, pc                                        |         r2 = 0x70854;
    0x000383ea ldr r3, [r2, r3]                                  |         r3 = *(0x70854);
    0x000383ec ldr r2, [r3]                                      |         r2 = *(0x70854);
    0x000383ee ldr r3, [sp, 0x94]                                |         r3 = *(arg_94h);
    0x000383f0 eors r2, r3                                       |         r2 ^= r3;
    0x000383f2 mov.w r3, 0                                       |         r3 = 0;
    0x000383f4 lsls r0, r0, 0xc                                  |         r0 <<= 0xc;
                                                                 |         if (r0 != r0) {
    0x000383f6 bne 0x38448                                       |             goto label_77;
                                                                 |         }
    0x000383f8 mov r0, r4                                        |         r0 = r4;
    0x000383fa add sp, 0x9c                                      |         
    0x000383fc pop {r4, r5, r6, r7, pc}                          |         
    0x000383fe ldr r2, [pc, 0x6c]                                |         
    0x00038400 mov r3, r4                                        |         r3 = r4;
    0x00038402 ldr r1, [pc, 0x6c]                                |         
    0x00038404 movs r0, 4                                        |         r0 = 4;
    0x00038406 add r2, pc                                        |         r2 = 0x70878;
    0x00038408 add r1, pc                                        |         r1 = 0x7087e;
    0x0003840a bl 0x30d1c                                        |         zbx_zabbix_log ();
    0x0003840e b 0x383e4                                         |         
                                                                 |     }
                                                                 | label_76:
    0x00038410 ldr r3, [r6]                                      |     r3 = *(r6);
    0x00038412 cmp r3, 3                                         |     
                                                                 |     if (r3 <= 3) {
    0x00038414 ble 0x383e4                                       |         goto label_23;
                                                                 |     }
    0x00038416 blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x0003841a ldr r5, [r0]                                      |     r5 = *(r0);
    0x0003841c mov r0, r5                                        |     r0 = r5;
    0x0003841e bl 0x31154                                        |     strerror_from_system ();
    0x00038422 ldr r2, [pc, 0x50]                                |     
    0x00038424 mov r3, r4                                        |     r3 = r4;
    0x00038426 ldr r1, [pc, 0x50]                                |     
    0x00038428 strd r5, r0, [sp]                                 |     __asm ("strd r5, r0, [sp]");
    0x0003842c movs r0, 4                                        |     r0 = 4;
    0x0003842e add r2, pc                                        |     r2 = 0x708a8;
    0x00038430 add r1, pc                                        |     r1 = 0x708ae;
    0x00038432 bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x00038436 b 0x383de                                         |     goto label_24;
                                                                 | label_77:
    0x00038448 blx 0xe158                                        |     fcn_0000e158 ();
    0x0003844a cdp p3, 8, c15, c6, c15, 5                        |     __asm ("cdp p3, 8, c15, c6, c15, 5");
    0x0003844e strh r0, [r0]                                     |     *(r0) = r0;
    0x00038450 movs r0, r0                                       |     
    0x00038452 movs r0, r0                                       |     
    0x00038454 strh r0, [r4, 0x34]                               |     *((r4 + 0x34)) = r0;
    0x00038456 movs r1, r0                                       |     r1 = r0;
    0x00038458 subs r0, 0x72                                     |     r0 -= 0x72;
    0x0003845a movs r2, r0                                       |     r2 = r0;
    0x0003845c lsls r4, r2, 0xe                                  |     r4 = r2 << 0xe;
    0x0003845e movs r0, r0                                       |     
    0x00038460 subs r0, 0x68                                     |     r0 -= 0x68;
    0x00038462 movs r2, r0                                       |     r2 = r0;
    0x00038464 lsls r4, r7, 0xe                                  |     r4 = r7 << 0xe;
    0x00038466 movs r0, r0                                       |     
    0x00038468 adds r7, 0xf0                                     |     r7 += 0xf0;
    0x0003846a movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 >= r0) {
    0x0003846c bge 0x384ec                                       |         void (*0x384ec)() ();
                                                                 |     }
    0x0003846e movs r1, r0                                       |     r1 = r0;
    0x00038470 str r0, [r3, 4]                                   |     *((r3 + 4)) = r0;
    0x00038472 movs r1, r0                                       |     r1 = r0;
                                                                 |     if (r1 >= r0) {
    0x00038474 bge 0x384a4                                       |         void (*0x384a4)() ();
                                                                 |     }
    0x00038476 movs r1, r0                                       |     r1 = r0;
                                                                 |     if (r1 > r0) {
    0x00038478 bhi 0x383b4                                       |         goto label_25;
                                                                 |     }
    0x0003847a movs r1, r0                                       |     r1 = r0;
                                                                 |     if (r1 >= r0) {
    0x0003847c bge 0x3848c                                       |         void (*0x3848c)() ();
                                                                 |     }
    0x0003847e movs r1, r0                                       |     r1 = r0;
    0x00038480 ldrsb r4, [r0, r4]                                |     r4 = *((r0 + r4));
    0x00038482 movs r1, r0                                       |     r1 = r0;
                                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x2bce4 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.NET_DNS_RECORD ()            | void NET_DNS_RECORD (int16_t arg1, int16_t arg2) {
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x0002bce4 push {r3, r4, r5, lr}         |     
    0x0002bce6 mov r4, r0                    |     r4 = r0;
    0x0002bce8 ldr r3, [r0, 4]               |     r3 = *((r0 + 4));
    0x0002bcea mov r5, r1                    |     r5 = r1;
    0x0002bcec cmp r3, 5                     |     
                                             |     if (r3 > 5) {
    0x0002bcee ble 0x2bd10                   |         
    0x0002bcf0 ldr r3, [r0, 8]               |         r3 = *((r0 + 8));
    0x0002bcf2 ldr r0, [r3, 0x14]            |         r0 = *((r3 + 0x14));
                                             |         if (r0 == 0) {
    0x0002bcf4 cbz r0, 0x2bd10               |             goto label_0;
                                             |         }
    0x0002bcf6 ldr r1, [pc, 0x28]            |         
    0x0002bcf8 add r1, pc                    |         r1 = 0x57a1e;
    0x0002bcfa blx 0xe3b0                    |         r0 = fcn_0000e3b0 ();
                                             |         if (r0 != 0) {
    0x0002bcfe cbnz r0, 0x2bd10              |             goto label_0;
                                             |         }
    0x0002bd00 ldr r0, [pc, 0x20]            |         
    0x0002bd02 mov r2, r5                    |         r2 = r5;
    0x0002bd04 mov r1, r4                    |         r1 = r4;
    0x0002bd06 pop.w {r3, r4, r5, lr}        |         
    0x0002bd0a add r0, pc                    |         r0 = 0x57a32;
    0x0002bd0c b.w 0x1d378                   |         void (*0x1d378)() ();
                                             |     }
                                             | label_0:
    0x0002bd10 mov r1, r5                    |     r1 = r5;
    0x0002bd12 mov r0, r4                    |     r0 = r4;
    0x0002bd14 movs r2, 0                    |     r2 = 0;
    0x0002bd16 pop.w {r3, r4, r5, lr}        |     
    0x0002bd1a b.w 0x2ab7c                   |     return void (*0x2ab7c)() ();
                                             | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x20228 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.NET_IF_DISCOVERY ()                      | void NET_IF_DISCOVERY (int16_t arg2) {
                                                         |     int16_t var_4h;
                                                         |     int16_t var_16h;
                                                         |     int16_t var_18h;
                                                         |     int16_t var_1ch;
                                                         |     int16_t var_20h;
                                                         |     int16_t var_24h;
                                                         |     int16_t var_64h;
                                                         |     int16_t var_1000h;
                                                         |     int16_t var_1800h;
                                                         |     r1 = arg2;
    0x00020228 ldr r2, [pc, 0x124]                       |     
    0x0002022a ldr r3, [pc, 0x128]                       |     r3 = *(0x20356);
    0x0002022c push.w {r4, r5, r6, r7, r8, sb, lr}       |     
    0x00020230 mov sb, r1                                |     sb = r1;
    0x00020232 add r2, pc                                |     r2 = 0x40586;
    0x00020234 ldr r0, [pc, 0x120]                       |     
    0x00020236 sub.w sp, sp, 0x1820                      |     
    0x0002023a ldr r1, [pc, 0x120]                       |     
    0x0002023c sub sp, 4                                 |     
    0x0002023e ldr r3, [r2, r3]                          |     
    0x00020240 add.w r4, sp, 0x1800                      |     r4 += var_1800h;
    0x00020244 add r0, pc                                |     r0 = 0x405a0;
    0x00020246 adds r4, 0x1c                             |     r4 += 0x1c;
    0x00020248 add r1, pc                                |     r1 = 0x405aa;
    0x0002024a ldr r3, [r3]                              |     r3 = *(0x40586);
    0x0002024c str r3, [r4]                              |     *(r4) = r3;
    0x0002024e mov.w r3, 0                               |     r3 = 0;
    0x00020252 blx 0xdf90                                |     r0 = fcn_0000df90 ();
    0x00020256 mov r7, r0                                |     r7 = r0;
    0x00020258 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0002025a beq 0x2031e                               |         goto label_7;
                                                         |     }
    0x0002025c ldr.w r8, [pc, 0x100]                     |     r8 = *(0x00020360);
    0x00020260 add.w r5, sp, 0x1000                      |     r5 += var_1000h;
    0x00020264 add r6, sp, 4                             |     r6 += var_4h;
    0x00020266 adds r5, 0x1c                             |     r5 += 0x1c;
    0x00020268 mov.w r1, 0x1000                          |     r1 = 0x1000;
    0x0002026c mov r0, r6                                |     r0 = r6;
    0x0002026e add r8, pc                                |     r8 += pc;
    0x00020270 bl 0x3ab5c                                |     zbx_json_initarray ();
                                                         |     do {
    0x00020274 mov r2, r7                                |         r2 = r7;
    0x00020276 mov.w r1, 0x800                           |         r1 = 0x800;
    0x0002027a mov r0, r5                                |         r0 = r5;
    0x0002027c blx 0xdc98                                |         r0 = fcn_0000dc98 ();
    0x00020280 mov r4, r0                                |         r4 = r0;
                                                         |         if (r0 == 0) {
    0x00020282 cbz r0, 0x202d0                           |             goto label_8;
                                                         |         }
                                                         | label_0:
    0x00020284 movs r1, 0x3a                             |         r1 = 0x3a;
    0x00020286 mov r0, r5                                |         r0 = r5;
    0x00020288 blx 0xdcd4                                |         r0 = fcn_0000dcd4 ();
    0x0002028c cmp r0, 0                                 |         
    0x0002028e beq 0x20274                               |         
                                                         |     } while (r0 == 0);
    0x00020290 movs r3, 0                                |     r3 = 0;
    0x00020292 mov r4, r5                                |     r4 = r5;
    0x00020294 strb r3, [r0]                             |     *(r0) = r3;
    0x00020296 ldrb r3, [r5]                             |     r3 = *(r5);
    0x00020298 cmp r3, 0x20                              |     
                                                         |     if (r3 != 0x20) {
    0x0002029a bne 0x202a4                               |         goto label_9;
                                                         |     }
                                                         |     do {
    0x0002029c ldrb r3, [r4, 1]!                         |         r3 = *((r4 += 1));
    0x000202a0 cmp r3, 0x20                              |         
    0x000202a2 beq 0x2029c                               |         
                                                         |     } while (r3 == 0x20);
                                                         | label_9:
    0x000202a4 movs r1, 0                                |     r1 = 0;
    0x000202a6 mov r0, r6                                |     r0 = r6;
    0x000202a8 bl 0x3ac94                                |     zbx_json_addobject ();
    0x000202ac mov r2, r4                                |     r2 = r4;
    0x000202ae movs r3, 1                                |     r3 = 1;
    0x000202b0 mov r1, r8                                |     r1 = r8;
    0x000202b2 mov r0, r6                                |     r0 = r6;
    0x000202b4 bl 0x3ac9c                                |     zbx_json_addstring ();
    0x000202b8 mov r0, r6                                |     r0 = r6;
    0x000202ba bl 0x3af6c                                |     zbx_json_close ();
    0x000202be mov r2, r7                                |     r2 = r7;
    0x000202c0 mov.w r1, 0x800                           |     r1 = 0x800;
    0x000202c4 mov r0, r5                                |     r0 = r5;
    0x000202c6 blx 0xdc98                                |     r0 = fcn_0000dc98 ();
    0x000202ca mov r4, r0                                |     r4 = r0;
    0x000202cc cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x000202ce bne 0x20284                               |         goto label_0;
                                                         |     }
                                                         | label_8:
    0x000202d0 mov r0, r7                                |     r0 = r7;
    0x000202d2 blx 0xdc8c                                |     fcn_0000dc8c ();
    0x000202d6 mov r0, r6                                |     r0 = r6;
    0x000202d8 bl 0x3af6c                                |     zbx_json_close ();
    0x000202dc ldr.w r3, [sb, 0x28]                      |     r3 = *((sb + 0x28));
    0x000202e0 ldr r0, [sp, 4]                           |     r0 = var_4h;
    0x000202e2 orr r3, r3, 4                             |     r3 |= 4;
    0x000202e6 str.w r3, [sb, 0x28]                      |     __asm ("str.w r3, [sb, 0x28]");
    0x000202ea blx 0xe11c                                |     fcn_0000e11c ();
    0x000202ec invalid                                   |     
    0x000202f0 movs r0, r3                               |     r0 = r3;
    0x000202f2 mov r0, r6                                |     r0 = r6;
    0x000202f4 bl 0x3ac14                                |     zbx_json_free ();
    0x000202f8 mov r0, r4                                |     r0 = r4;
                                                         |     do {
    0x000202fa ldr r2, [pc, 0x68]                        |         
    0x000202fc add.w r1, sp, 0x1800                      |         r1 += var_1800h;
    0x00020300 ldr r3, [pc, 0x50]                        |         r3 = *(0x20354);
    0x00020302 adds r1, 0x1c                             |         r1 += 0x1c;
    0x00020304 add r2, pc                                |         r2 = 0x4066e;
    0x00020306 ldr r3, [r2, r3]                          |         r3 = *(0x4066e);
    0x00020308 ldr r2, [r3]                              |         r2 = *(0x4066e);
    0x0002030a ldr r3, [r1]                              |         r3 = *(r1);
    0x0002030c eors r2, r3                               |         r2 ^= r3;
    0x0002030e mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x00020312 bne 0x2034a                               |             goto label_10;
                                                         |         }
    0x00020314 add.w sp, sp, 0x1820                      |         
    0x00020318 add sp, 4                                 |         
    0x0002031a pop.w {r4, r5, r6, r7, r8, sb, pc}        |         
                                                         | label_7:
    0x0002031e ldr.w r3, [sb, 0x28]                      |         r3 = *((sb + 0x28));
    0x00020322 orr r3, r3, 0x20                          |         r3 |= 0x20;
    0x00020326 str.w r3, [sb, 0x28]                      |         __asm ("str.w r3, [sb, 0x28]");
    0x0002032a blx 0xe3d4                                |         r0 = fcn_0000e3d4 ();
    0x0002032e ldr r0, [r0]                              |         r0 = *(r0);
    0x00020330 bl 0x30b74                                |         zbx_strerror ();
    0x00020334 ldr r1, [pc, 0x30]                        |         
    0x00020336 mov r2, r0                                |         r2 = r0;
    0x00020338 mov r0, r7                                |         r0 = r7;
    0x0002033a add r1, pc                                |         r1 = 0x406a6;
    0x0002033c bl 0x44820                                |         r0 = zbx_dsprintf ()
    0x00020340 mov r3, r0                                |         r3 = r0;
    0x00020342 movs r0, 1                                |         r0 = 1;
    0x00020344 str.w r3, [sb, 0x20]                      |         __asm ("str.w r3, [sb, 0x20]");
    0x00020348 b 0x202fa                                 |         
                                                         |     } while (1);
                                                         | label_10:
    0x0002034a blx 0xe158                                |     fcn_0000e158 ();
    0x0002034e nop                                       |     
                                                         |     if (r6 == 0) {
    0x00020350 cbnz r6, 0x2037c                          |         
    0x00020352 movs r3, r0                               |         r3 = r0;
    0x00020354 lsls r4, r2, 0xe                          |         r4 = r2 << 0xe;
    0x00020356 movs r0, r0                               |         
    0x00020358 asrs r4, r5, 0xe                          |         r4 = r5 >> 0xe;
    0x0002035a movs r3, r0                               |         r3 = r0;
    0x0002035c asrs r0, r1, 3                            |         r0 = r1 >> 3;
    0x0002035e movs r3, r0                               |         r3 = r0;
    0x00020360 asrs r6, r7, 0x18                         |         r6 = r7 >> 0x18;
    0x00020362 movs r3, r0                               |         r3 = r0;
    0x00020364 invalid                                   |         
                                                         |     }
    0x0002037c ldr r3, [pc, 0x1dc]                       |     
    0x0002037e add r4, pc                                |     r4 += pc;
    0x00020380 ldr r7, [r0, 4]                           |     r7 = *((r0 + 4));
    0x00020382 ldr r6, [pc, 0x1dc]                       |     
    0x00020384 ldr r3, [r4, r3]                          |     r3 = *((r4 + r3));
    0x00020386 mov r4, r1                                |     r4 = r1;
    0x00020388 cmp r7, 1                                 |     
    0x0002038a add r6, pc                                |     r6 = 0x408f0;
    0x0002038c ldr r3, [r3]                              |     r3 = *(0x2055c);
    0x0002038e str r3, [sp, 0x64]                        |     var_64h = r3;
    0x00020390 mov.w r3, 0                               |     r3 = 0;
    0x00020394 str r2, [sp, 0x18]                        |     var_18h = r2;
                                                         |     if (r7 > 1) {
    0x00020396 bgt 0x203fc                               |         goto label_11;
                                                         |     }
                                                         |     if (r7 == 1) {
    0x00020398 bne 0x203c0                               |         
    0x0002039a ldr r3, [r0, 8]                           |         r3 = *((r0 + 8));
    0x0002039c ldr r0, [r3]                              |         r0 = *(r3);
                                                         |         if (r0 == 0) {
    0x0002039e cbz r0, 0x203c0                           |             goto label_12;
                                                         |         }
    0x000203a0 vmov.i64 d17, 0xffff                      |         __asm ("vmov.i64 d17, 0xffff");
    0x000203a4 movs r3, 2                                |         r3 = 2;
    0x000203a6 vmov.i32 d16, 0                           |         __asm ("vmov.i32 d16, 0");
    0x000203aa add.w r2, sp, 0x16                        |         r2 += var_16h;
    0x000203ae mov.w r1, -1                              |         r1 = -1;
    0x000203b2 vstr d17, [sp, 8]                         |         __asm ("vstr d17, [sp, 8]");
    0x000203b6 vstr d16, [sp]                            |         __asm ("vstr d16, [sp]");
    0x000203ba bl 0x419a8                                |         r0 = is_uint_n_range ();
                                                         |         if (r0 == 0) {
    0x000203be cbz r0, 0x20416                           |             goto label_13;
                                                         |         }
                                                         |     }
                                                         | label_12:
    0x000203c0 ldr r0, [r4, 0x28]                        |     r0 = *((r4 + 0x28));
    0x000203c2 movs r2, 0                                |     r2 = 0;
    0x000203c4 ldr r3, [pc, 0x19c]                       |     
    0x000203c6 mov.w r1, 0x284                           |     r1 = 0x284;
    0x000203ca orr r0, r0, 0x20                          |     r0 |= 0x20;
    0x000203ce str r0, [r4, 0x28]                        |     *((r4 + 0x28)) = r0;
    0x000203d0 add r3, pc                                |     r3 = 0x40938;
    0x000203d2 ldr r0, [pc, 0x194]                       |     
    0x000203d4 add r0, pc                                |     r0 = 0x40942;
    0x000203d6 bl 0x40ed8                                |     zbx_strdup2 ();
                                                         |     do {
    0x000203da movs r5, 1                                |         r5 = 1;
    0x000203dc str r0, [r4, 0x20]                        |         *((r4 + 0x20)) = r0;
                                                         | label_1:
    0x000203de ldr r2, [pc, 0x18c]                       |         
    0x000203e0 ldr r3, [pc, 0x178]                       |         r3 = *(0x2055c);
    0x000203e2 add r2, pc                                |         r2 = 0x40954;
    0x000203e4 ldr r3, [r2, r3]                          |         r3 = *(0x40954);
    0x000203e6 ldr r2, [r3]                              |         r2 = *(0x40954);
    0x000203e8 ldr r3, [sp, 0x64]                        |         r3 = var_64h;
    0x000203ea eors r2, r3                               |         r2 ^= r3;
    0x000203ec mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x000203f0 bne.w 0x2054c                             |             goto label_14;
                                                         |         }
    0x000203f4 mov r0, r5                                |         r0 = r5;
    0x000203f6 add sp, 0x6c                              |         
    0x000203f8 pop.w {r4, r5, r6, r7, r8, sb, pc}        |         
                                                         | label_11:
    0x000203fc ldr r0, [r1, 0x28]                        |         r0 = *((r1 + 0x28));
    0x000203fe mov.w r1, 0x27c                           |         r1 = 0x27c;
    0x00020402 ldr r3, [pc, 0x16c]                       |         
    0x00020404 orr r0, r0, 0x20                          |         r0 |= 0x20;
    0x00020408 str r0, [r4, 0x28]                        |         *((r4 + 0x28)) = r0;
    0x0002040a add r3, pc                                |         r3 = 0x40980;
    0x0002040c ldr r0, [pc, 0x164]                       |         
    0x0002040e add r0, pc                                |         r0 = 0x40986;
    0x00020410 bl 0x40ed8                                |         zbx_strdup2 ();
    0x00020414 b 0x203da                                 |         
                                                         |     } while (1);
                                                         | label_13:
    0x00020416 ldrh.w r0, [sp, 0x16]                     |     r0 = var_16h;
    0x0002041a add r1, sp, 0x20                          |     r1 += var_20h;
    0x0002041c bl 0x1f914                                |     r0 = fcn_0001f914 (r0, r1, r2, r3, r4, r5);
    0x00020420 mov r5, r0                                |     r5 = r0;
                                                         |     if (r0 != 0) {
    0x00020422 cbnz r0, 0x20436                          |         goto label_15;
                                                         |     }
    0x00020424 ldr r6, [sp, 0x20]                        |     r6 = var_20h;
    0x00020426 asrs r7, r6, 0x1f                         |     r7 = r6 >> 0x1f;
                                                         |     do {
                                                         | label_3:
    0x00020428 ldr r3, [r4, 0x28]                        |         r3 = *((r4 + 0x28));
    0x0002042a strd r6, r7, [r4, 8]                      |         __asm ("strd r6, r7, [r4, 8]");
    0x0002042e orr r3, r3, 1                             |         r3 |= 1;
    0x00020432 str r3, [r4, 0x28]                        |         *((r4 + 0x28)) = r3;
    0x00020434 b 0x203de                                 |         goto label_1;
                                                         | label_15:
    0x00020436 ldr r3, [pc, 0x140]                       |         
    0x00020438 add r3, pc                                |         
    0x0002043a ldr r3, [r3]                              |         r3 = *(0x409b6);
    0x0002043c subs r3, 1                                |         r3--;
    0x0002043e cmp r3, 7                                 |         
                                                         |         if (r3 > 7) {
    0x00020440 bhi.w 0x20550                             |             goto label_16;
                                                         |         }
                                                         |         /* switch table (8 cases) at 0x20448 */
    0x00020444 tbb [pc, r3]                              |         __asm ("tbb [0x0002044c]");
    0x00020450 ldr r2, [pc, 0x128]                       |         
    0x00020452 add r2, pc                                |         r2 = 0x409d2;
                                                         | label_2:
    0x00020454 ldr r3, [pc, 0x128]                       |         r3 = *(0x20580);
    0x00020456 ldr r5, [r6, r3]                          |         r5 = *((r6 + r3));
    0x00020458 ldr r3, [r5]                              |         r3 = *(r5);
    0x0002045a cmp r3, 3                                 |         
                                                         |         if (r3 > 3) {
    0x0002045c bgt 0x20508                               |             goto label_17;
                                                         |         }
                                                         | label_5:
    0x0002045e ldr r0, [pc, 0x124]                       |         
    0x00020460 mov.w r3, 0x10000                         |         r3 = 0x10000;
    0x00020464 movs r2, 0                                |         r2 = 0;
    0x00020466 movw r1, 0x2b3                            |         r1 = 0x2b3;
    0x0002046a add.w sb, sp, 0x1c                        |         sb += var_1ch;
    0x0002046e add r6, sp, 0x18                          |         r6 += var_18h;
    0x00020470 add r0, pc                                |         r0 = 0x409fa;
    0x00020472 bl 0x40dd8                                |         zbx_malloc2 ();
    0x00020476 str r0, [sp, 0x18]                        |         var_18h = r0;
    0x00020478 mov r2, sb                                |         r2 = sb;
    0x0002047a ldr r0, [pc, 0x10c]                       |         
    0x0002047c mov r1, r6                                |         r1 = r6;
    0x0002047e add r0, pc                                |         r0 = 0x40a0c;
    0x00020480 bl 0x1eeec                                |         r0 = fcn_0001eeec (r0, r1);
    0x00020484 cmp r0, 0                                 |         
                                                         |         if (r0 <= 0) {
    0x00020486 ble 0x204e2                               |             goto label_18;
                                                         |         }
    0x00020488 ldr r2, [pc, 0x100]                       |         
    0x0002048a add r5, sp, 0x24                          |         r5 += var_24h;
    0x0002048c ldrh.w r3, [sp, 0x16]                     |         r3 = var_16h;
    0x00020490 movs r1, 0x40                             |         r1 = 0x40;
    0x00020492 mov r0, r5                                |         r0 = r5;
    0x00020494 add r2, pc                                |         r2 = 0x40a24;
    0x00020496 bl 0x43f38                                |         zbx_snprintf ();
    0x0002049a ldr.w r8, [sp, 0x18]                      |         r8 = var_18h;
    0x0002049e mov r1, r5                                |         r1 = r5;
    0x000204a0 mov r0, r8                                |         r0 = r8;
    0x000204a2 blx 0xe090                                |         r0 = res_ninit ();
    0x000204a6 mov r5, r0                                |         r5 = r0;
                                                         |         if (r0 == 0) {
    0x000204a8 cbz r0, 0x204e4                           |             goto label_19;
                                                         |         }
    0x000204aa movs r6, 1                                |         r6 = 1;
    0x000204ac movs r7, 0                                |         r7 = 0;
                                                         | label_6:
    0x000204ae movs r5, 0                                |         r5 = 0;
                                                         | label_4:
    0x000204b0 mov r0, r8                                |         r0 = r8;
    0x000204b2 blx 0xde30                                |         fcn_0000de30 ();
    0x000204b6 b 0x20428                                 |         
                                                         |     } while (1);
    0x000204b8 ldr r2, [pc, 0xd4]                        |     
    0x000204ba add r2, pc                                |     r2 = 0x40a4e;
    0x000204bc b 0x20454                                 |     goto label_2;
    0x000204be ldr r2, [pc, 0xd4]                        |     
    0x000204c0 add r2, pc                                |     r2 = 0x40a5a;
    0x000204c2 b 0x20454                                 |     goto label_2;
    0x000204c4 ldr r2, [pc, 0xd0]                        |     
    0x000204c6 add r2, pc                                |     r2 = 0x40a62;
    0x000204c8 b 0x20454                                 |     goto label_2;
    0x000204ca ldr r2, [pc, 0xd0]                        |     
    0x000204cc add r2, pc                                |     r2 = 0x40a6e;
    0x000204ce b 0x20454                                 |     goto label_2;
    0x000204d0 ldr r2, [pc, 0xcc]                        |     
    0x000204d2 add r2, pc                                |     r2 = 0x40a76;
    0x000204d4 b 0x20454                                 |     goto label_2;
    0x000204d6 ldr r2, [pc, 0xcc]                        |     
    0x000204d8 add r2, pc                                |     r2 = 0x40a82;
    0x000204da b 0x20454                                 |     goto label_2;
    0x000204dc ldr r2, [pc, 0xc8]                        |     
    0x000204de add r2, pc                                |     r2 = 0x40a8a;
    0x000204e0 b 0x20454                                 |     goto label_2;
                                                         | label_18:
    0x000204e2 mov r5, r7                                |     r5 = r7;
                                                         | label_19:
    0x000204e4 ldr r0, [pc, 0xc4]                        |     
    0x000204e6 mov r2, sb                                |     r2 = sb;
    0x000204e8 mov r1, r6                                |     r1 = r6;
    0x000204ea add r0, pc                                |     r0 = 0x40a9a;
    0x000204ec bl 0x1eeec                                |     r0 = fcn_0001eeec (r0, r1);
    0x000204f0 cmp r0, 0                                 |     
                                                         |     if (r0 > 0) {
    0x000204f2 bgt 0x20524                               |         goto label_20;
                                                         |     }
    0x000204f4 ldr.w r8, [sp, 0x18]                      |     r8 = var_18h;
    0x000204f8 mov r6, r8                                |     r6 = r8;
    0x000204fa mov r7, r8                                |     r7 = r8;
    0x000204fc cmp.w r8, 0                               |     
                                                         |     if (r8 == 0) {
    0x00020500 beq 0x20428                               |         goto label_3;
                                                         |     }
    0x00020502 movs r6, 0                                |     r6 = 0;
    0x00020504 mov r7, r6                                |     r7 = r6;
    0x00020506 b 0x204b0                                 |     goto label_4;
                                                         | label_17:
    0x00020508 ldr r1, [pc, 0xa4]                        |     
    0x0002050a movs r0, 4                                |     r0 = 4;
    0x0002050c add r1, pc                                |     r1 = 0x40ac0;
    0x0002050e bl 0x30d1c                                |     zbx_zabbix_log ();
    0x00020512 ldr r3, [r5]                              |     r3 = *(r5);
    0x00020514 cmp r3, 3                                 |     
                                                         |     if (r3 <= 3) {
    0x00020516 ble 0x2045e                               |         goto label_5;
                                                         |     }
    0x00020518 ldr r1, [pc, 0x98]                        |     
    0x0002051a movs r0, 4                                |     r0 = 4;
    0x0002051c add r1, pc                                |     r1 = 0x40ad4;
    0x0002051e bl 0x30d1c                                |     zbx_zabbix_log ();
    0x00020522 b 0x2045e                                 |     goto label_5;
                                                         | label_20:
    0x00020524 ldr r2, [pc, 0x90]                        |     
    0x00020526 add r5, sp, 0x24                          |     r5 += var_24h;
    0x00020528 ldrh.w r3, [sp, 0x16]                     |     r3 = var_16h;
    0x0002052c movs r1, 0x40                             |     r1 = 0x40;
    0x0002052e mov r0, r5                                |     r0 = r5;
    0x00020530 movs r7, 0                                |     r7 = 0;
    0x00020532 add r2, pc                                |     r2 = 0x40aee;
    0x00020534 bl 0x43f38                                |     zbx_snprintf ();
    0x00020538 ldr.w r8, [sp, 0x18]                      |     r8 = var_18h;
    0x0002053c mov r1, r5                                |     r1 = r5;
    0x0002053e mov r0, r8                                |     r0 = r8;
    0x00020540 blx 0xe090                                |     r0 = res_ninit ();
    0x00020544 subs r6, r0, r7                           |     r6 = r0 - r7;
    0x00020546 it ne                                     |     
                                                         |     if (r6 == r0) {
    0x00020548 movne r6, 1                               |         r6 = 1;
                                                         |     }
    0x0002054a b 0x204ae                                 |     goto label_6;
                                                         | label_14:
    0x0002054c blx 0xe158                                |     fcn_0000e158 ();
                                                         | label_16:
    0x00020550 ldr r2, [pc, 0x68]                        |     
    0x00020552 add r2, pc                                |     r2 = 0x40b12;
    0x00020554 b 0x20454                                 |     goto label_2;
                                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x23030 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.PROC_CPU_UTIL ()                                 | void PROC_CPU_UTIL (int16_t arg_8ch, int16_t arg_280h, int16_t arg_360h, int16_t arg_368h, int16_t arg_10a0h, int16_t arg_18a0h, int16_t arg_2080h, int16_t arg_2880h, int16_t arg1, int16_t arg2) {
                                                                 |     int16_t var_85ch;
                                                                 |     int16_t var_858h;
                                                                 |     int16_t var_854h;
                                                                 |     int16_t var_850h;
                                                                 |     int16_t var_84ch;
                                                                 |     int16_t var_838h;
                                                                 |     int16_t var_81ch;
                                                                 |     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;
                                                                 |     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;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00023030 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00023034 movs r2, 0                                        |     r2 = 0;
    0x00023036 ldr r4, [pc, 0x2b4]                               |     
    0x00023038 ldr r3, [pc, 0x2b4]                               |     r3 = *(0x232f0);
    0x0002303a ldr r7, [r0, 4]                                   |     r7 = *((r0 + 4));
    0x0002303c add r4, pc                                        |     r4 = 0x4632e;
    0x0002303e vpush {d8}                                        |     __asm ("vpush {d8}");
    0x00023042 sub sp, 0x4c                                      |     
    0x00023044 ldr r3, [r4, r3]                                  |     
    0x00023046 ldr.w sb, [pc, 0x2ac]                             |     sb = *(0x000232f4);
    0x0002304a cmp r7, 5                                         |     
    0x0002304c ldr r3, [r3]                                      |     r3 = *(0x4632e);
    0x0002304e str r3, [sp, 0x44]                                |     var_44h = r3;
    0x00023050 mov.w r3, 0                                       |     r3 = 0;
    0x00023054 str r2, [sp, 0x24]                                |     var_24h = r2;
    0x00023056 add sb, pc                                        |     sb += pc;
    0x00023058 str r1, [sp, 0x1c]                                |     var_1ch = r1;
                                                                 |     if (r7 > 5) {
    0x0002305a bgt.w 0x2322e                                     |         goto label_66;
                                                                 |     }
    0x0002305e cmp r7, 0                                         |     
                                                                 |     if (r7 > 0) {
    0x00023060 ble 0x2311c                                       |         
    0x00023062 ldr.w sl, [r0, 8]                                 |         sl = *((r0 + 8));
    0x00023066 ldr.w r6, [sl]                                    |         r6 = *(sl);
                                                                 |         if (r6 != 0) {
    0x0002306a cbz r6, 0x23074                                   |             
    0x0002306c ldrb r3, [r6]                                     |             r3 = *(r6);
    0x0002306e cmp r3, 0                                         |             
    0x00023070 it eq                                             |             
                                                                 |             if (r3 == 0) {
    0x00023072 moveq r6, 0                                       |                 r6 = 0;
                                                                 |                 goto label_67;
                                                                 |             }
                                                                 |         }
                                                                 | label_67:
    0x00023074 cmp r7, 1                                         |         
                                                                 |         if (r7 == 1) {
    0x00023076 beq.w 0x232be                                     |             goto label_68;
                                                                 |         }
    0x0002307a ldr.w r5, [sl, 4]                                 |         r5 = *((sl + 4));
                                                                 |         if (r5 != 0) {
    0x0002307e cbz r5, 0x23088                                   |             
    0x00023080 ldrb r3, [r5]                                     |             r3 = *(r5);
    0x00023082 cmp r3, 0                                         |             
    0x00023084 it eq                                             |             
                                                                 |             if (r3 == 0) {
    0x00023086 moveq r5, 0                                       |                 r5 = 0;
                                                                 |                 goto label_69;
                                                                 |             }
                                                                 |         }
                                                                 | label_69:
    0x00023088 cmp r7, 3                                         |         
                                                                 |         if (r7 <= 3) {
    0x0002308a ble.w 0x231b8                                     |             goto label_70;
                                                                 |         }
    0x0002308e ldr.w r4, [sl, 0xc]                               |         r4 = *((sl + 0xc));
                                                                 |         if (r4 != 0) {
    0x00023092 cbz r4, 0x2309c                                   |             
    0x00023094 ldrb r3, [r4]                                     |             r3 = *(r4);
    0x00023096 cmp r3, 0                                         |             
    0x00023098 it eq                                             |             
                                                                 |             if (r3 == 0) {
    0x0002309a moveq r4, 0                                       |                 r4 = 0;
                                                                 |                 goto label_71;
                                                                 |             }
                                                                 |         }
                                                                 | label_71:
    0x0002309c ldr.w r8, [sl, 8]                                 |         r8 = *((sl + 8));
    0x000230a0 cmp.w r8, 0                                       |         
                                                                 |         if (r8 != 0) {
    0x000230a4 beq 0x230b0                                       |             
    0x000230a6 ldrb.w r3, [r8]                                   |             r3 = *(r8);
    0x000230aa cmp r3, 0                                         |             
                                                                 |             if (r3 != 0) {
    0x000230ac bne.w 0x2324c                                     |                 goto label_72;
                                                                 |             }
                                                                 |         }
                                                                 | label_2:
    0x000230b0 mov.w r8, 3                                       |         r8 = 3;
                                                                 | label_3:
    0x000230b4 cmp r7, 5                                         |         
                                                                 |         if (r7 != 5) {
    0x000230b6 bne.w 0x231e2                                     |             goto label_73;
                                                                 |         }
    0x000230ba ldr.w r7, [sl, 0x10]                              |         r7 = *((sl + 0x10));
    0x000230be cmp r7, 0                                         |         
                                                                 |         if (r7 == 0) {
    0x000230c0 beq.w 0x231e2                                     |             goto label_73;
                                                                 |         }
    0x000230c4 ldrb r3, [r7]                                     |         r3 = *(r7);
    0x000230c6 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x000230c8 beq.w 0x231e2                                     |             goto label_73;
                                                                 |         }
    0x000230cc ldr r1, [pc, 0x228]                               |         
    0x000230ce mov r0, r7                                        |         r0 = r7;
    0x000230d0 add r1, pc                                        |         r1 = 0x463cc;
    0x000230d2 blx 0xe3b0                                        |         r0 = fcn_0000e3b0 ();
    0x000230d6 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x000230d8 beq.w 0x231e2                                     |             goto label_73;
                                                                 |         }
    0x000230dc ldr r1, [pc, 0x21c]                               |         
    0x000230de mov r0, r7                                        |         r0 = r7;
    0x000230e0 add r1, pc                                        |         r1 = 0x463e0;
    0x000230e2 blx 0xe3b0                                        |         r0 = fcn_0000e3b0 ();
    0x000230e6 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x000230e8 beq.w 0x232ca                                     |             goto label_74;
                                                                 |         }
    0x000230ec ldr r1, [pc, 0x210]                               |         
    0x000230ee mov r0, r7                                        |         r0 = r7;
    0x000230f0 mov.w r7, 0x384                                   |         r7 = 0x384;
    0x000230f4 add r1, pc                                        |         r1 = 0x463f8;
    0x000230f6 blx 0xe3b0                                        |         r0 = fcn_0000e3b0 ();
                                                                 |         if (r0 == 0) {
    0x000230fa cbz r0, 0x23128                                   |             goto label_6;
                                                                 |         }
    0x000230fc ldr r4, [sp, 0x1c]                                |         r4 = var_1ch;
    0x000230fe movs r2, 0                                        |         r2 = 0;
    0x00023100 ldr r3, [pc, 0x200]                               |         
    0x00023102 movw r1, 0x60a                                    |         r1 = 0x60a;
    0x00023106 ldr r0, [r4, 0x28]                                |         r0 = *((r4 + 0x28));
    0x00023108 add r3, pc                                        |         r3 = 0x46410;
    0x0002310a orr r0, r0, 0x20                                  |         r0 |= 0x20;
    0x0002310e str r0, [r4, 0x28]                                |         *((r4 + 0x28)) = r0;
    0x00023110 ldr r0, [pc, 0x1f4]                               |         
    0x00023112 add r0, pc                                        |         r0 = 0x4641e;
    0x00023114 bl 0x40ed8                                        |         r0 = zbx_strdup2 ();
    0x00023118 mov r3, r0                                        |         r3 = r0;
    0x0002311a b 0x2320a                                         |         goto label_4;
                                                                 |     }
    0x0002311c mov r4, r2                                        |     r4 = r2;
    0x0002311e mov.w r8, 3                                       |     r8 = 3;
    0x00023122 mov r5, r2                                        |     r5 = r2;
    0x00023124 mov r6, r2                                        |     r6 = r2;
    0x00023126 movs r7, 0x3c                                     |     r7 = 0x3c;
                                                                 | label_6:
    0x00023128 bl 0x147a8                                        |     r0 = zbx_procstat_collector_started ();
    0x0002312c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0002312e bne 0x231ec                                       |         goto label_75;
                                                                 |     }
                                                                 | label_1:
    0x00023130 add r0, sp, 0x34                                  |     r0 += var_34h;
    0x00023132 vmov.i32 d8, 0                                    |     __asm ("vmov.i32 d8, 0");
    0x00023136 bl 0x3fee8                                        |     zbx_timespec ();
    0x0002313a ldr r3, [pc, 0x1d0]                               |     r3 = *(0x2330e);
    0x0002313c add.w sl, sp, 0x24                                |     sl += var_24h;
    0x00023140 add.w fp, sp, 0x3c                                |     
    0x00023144 ldr.w r3, [sb, r3]                                |     r3 = *((sb + r3));
    0x00023148 add.w sb, sp, 0x28                                |     sb += var_28h;
    0x0002314c ldr r2, [r3]                                      |     r2 = *(0x2330e);
    0x0002314e ldr r3, [sp, 0x34]                                |     r3 = var_34h;
    0x00023150 add r3, r2                                        |     r3 += r2;
    0x00023152 str r3, [sp, 0x34]                                |     var_34h = r3;
    0x00023154 b 0x2315e                                         |     
                                                                 |     while (r2 != r3) {
                                                                 |         if (r0 < 0) {
    0x00023156 blt 0x23198                                       |             goto label_76;
                                                                 |         }
                                                                 | label_0:
    0x00023158 movs r0, 1                                        |         r0 = 1;
    0x0002315a blx 0xe1dc                                        |         fcn_0000e1dc ();
    0x0002315e mov r2, r4                                        |         r2 = r4;
    0x00023160 mov r1, r5                                        |         r1 = r5;
    0x00023162 mov r0, r6                                        |         r0 = r6;
    0x00023164 strd sb, sl, [sp, 0x10]                           |         __asm ("strd sb, sl, [var_14h]");
    0x00023168 strd r7, r8, [sp, 8]                              |         __asm ("strd r7, r8, [var_8h]");
    0x0002316c vstr d8, [sp]                                     |         __asm ("vstr d8, [sp]");
    0x00023170 bl 0x14908                                        |         r0 = zbx_procstat_get_util ();
    0x00023174 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00023176 beq.w 0x2329e                                     |             goto label_77;
                                                                 |         }
    0x0002317a ldr r3, [sp, 0x24]                                |         r3 = var_24h;
    0x0002317c cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x0002317e bne.w 0x232b2                                     |             goto label_78;
                                                                 |         }
    0x00023182 mov r0, fp                                        |         r0 = fp;
    0x00023184 bl 0x3fee8                                        |         zbx_timespec ();
    0x00023188 ldr r2, [sp, 0x34]                                |         r2 = var_34h;
    0x0002318a ldr r3, [sp, 0x3c]                                |         r3 = var_3ch;
    0x0002318c cmp r2, r3                                        |         
    0x0002318e bne 0x23156                                       |         
                                                                 |     }
    0x00023190 ldr r2, [sp, 0x38]                                |     r2 = var_38h;
    0x00023192 ldr r3, [sp, 0x40]                                |     r3 = var_40h;
    0x00023194 cmp r2, r3                                        |     
                                                                 |     if (r2 >= r3) {
    0x00023196 bge 0x23158                                       |         goto label_0;
                                                                 |     }
                                                                 | label_76:
    0x00023198 ldr r4, [sp, 0x1c]                                |     r4 = var_1ch;
    0x0002319a movs r2, 0                                        |     r2 = 0;
    0x0002319c ldr r3, [pc, 0x170]                               |     
    0x0002319e movw r1, 0x626                                    |     r1 = 0x626;
    0x000231a2 ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x000231a4 add r3, pc                                        |     r3 = 0x464b8;
    0x000231a6 orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x000231aa str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x000231ac ldr r0, [pc, 0x164]                               |     
    0x000231ae add r0, pc                                        |     r0 = 0x464c6;
    0x000231b0 bl 0x40ed8                                        |     r0 = zbx_strdup2 ();
    0x000231b4 mov r3, r0                                        |     r3 = r0;
    0x000231b6 b 0x2320a                                         |     goto label_4;
                                                                 |     if (r2 != 0) {
                                                                 | label_70:
    0x000231b8 bne.w 0x232d6                                     |         goto label_79;
                                                                 |     }
    0x000231bc ldr.w r4, [sl, 8]                                 |     r4 = *((sl + 8));
    0x000231c0 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x000231c2 beq.w 0x232e0                                     |         goto label_80;
                                                                 |     }
    0x000231c6 ldrb r3, [r4]                                     |     r3 = *(r4);
                                                                 |     if (r3 != 0) {
    0x000231c8 cbz r3, 0x231de                                   |         
    0x000231ca ldr r1, [pc, 0x14c]                               |         
    0x000231cc mov r0, r4                                        |         r0 = r4;
    0x000231ce mov r8, r4                                        |         r8 = r4;
    0x000231d0 movs r4, 0                                        |         r4 = 0;
    0x000231d2 add r1, pc                                        |         r1 = 0x464f0;
    0x000231d4 blx 0xe3b0                                        |         r0 = fcn_0000e3b0 ();
    0x000231d8 mov r3, r0                                        |         r3 = r0;
    0x000231da cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x000231dc bne 0x2325c                                       |             goto label_81;
                                                                 |         }
                                                                 |     }
    0x000231de mov r8, r7                                        |     r8 = r7;
    0x000231e0 mov r4, r3                                        |     r4 = r3;
                                                                 | label_73:
    0x000231e2 movs r7, 0x3c                                     |     r7 = 0x3c;
    0x000231e4 bl 0x147a8                                        |     r0 = zbx_procstat_collector_started ();
    0x000231e8 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000231ea beq 0x23130                                       |         goto label_1;
                                                                 |     }
                                                                 | label_75:
    0x000231ec ldr r4, [sp, 0x1c]                                |     r4 = var_1ch;
    0x000231ee movs r2, 0                                        |     r2 = 0;
    0x000231f0 ldr r3, [pc, 0x128]                               |     
    0x000231f2 mov.w r1, 0x610                                   |     r1 = 0x610;
    0x000231f6 ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x000231f8 add r3, pc                                        |     r3 = 0x46518;
    0x000231fa orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x000231fe str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x00023200 ldr r0, [pc, 0x11c]                               |     
    0x00023202 add r0, pc                                        |     r0 = 0x46526;
    0x00023204 bl 0x40ed8                                        |     r0 = zbx_strdup2 ();
    0x00023208 mov r3, r0                                        |     r3 = r0;
                                                                 |     do {
                                                                 | label_4:
    0x0002320a ldr r2, [sp, 0x1c]                                |         r2 = var_1ch;
    0x0002320c movs r0, 1                                        |         r0 = 1;
    0x0002320e str r3, [r2, 0x20]                                |         *((r2 + 0x20)) = r3;
                                                                 | label_5:
    0x00023210 ldr r2, [pc, 0x110]                               |         
    0x00023212 ldr r3, [pc, 0xdc]                                |         r3 = *(0x232f2);
    0x00023214 add r2, pc                                        |         r2 = 0x4653c;
    0x00023216 ldr r3, [r2, r3]                                  |         r3 = *(0x4653c);
    0x00023218 ldr r2, [r3]                                      |         r2 = *(0x4653c);
    0x0002321a ldr r3, [sp, 0x44]                                |         r3 = var_44h;
    0x0002321c eors r2, r3                                       |         r2 ^= r3;
    0x0002321e mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00023222 bne 0x232e6                                       |             goto label_82;
                                                                 |         }
    0x00023224 add sp, 0x4c                                      |         
    0x00023226 vpop {d8}                                         |         __asm ("vpop {d8}");
    0x0002322a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_66:
    0x0002322e ldr r0, [r1, 0x28]                                |         r0 = *((r1 + 0x28));
    0x00023230 mov r4, r1                                        |         r4 = r1;
    0x00023232 ldr r3, [pc, 0xf4]                                |         
    0x00023234 movw r1, 0x5d9                                    |         r1 = 0x5d9;
    0x00023238 orr r0, r0, 0x20                                  |         r0 |= 0x20;
    0x0002323c str r0, [r4, 0x28]                                |         *((r4 + 0x28)) = r0;
    0x0002323e add r3, pc                                        |         r3 = 0x4656c;
    0x00023240 ldr r0, [pc, 0xe8]                                |         
    0x00023242 add r0, pc                                        |         r0 = 0x46572;
    0x00023244 bl 0x40ed8                                        |         r0 = zbx_strdup2 ();
    0x00023248 mov r3, r0                                        |         r3 = r0;
    0x0002324a b 0x2320a                                         |         
                                                                 |     } while (1);
                                                                 | label_72:
    0x0002324c ldr r1, [pc, 0xe0]                                |     
    0x0002324e mov r0, r8                                        |     r0 = r8;
    0x00023250 add r1, pc                                        |     r1 = 0x46584;
    0x00023252 blx 0xe3b0                                        |     r0 = fcn_0000e3b0 ();
    0x00023256 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00023258 beq.w 0x230b0                                     |         goto label_2;
                                                                 |     }
                                                                 | label_81:
    0x0002325c ldr r1, [pc, 0xd4]                                |     
    0x0002325e mov r0, r8                                        |     r0 = r8;
    0x00023260 add r1, pc                                        |     r1 = 0x46598;
    0x00023262 blx 0xe3b0                                        |     r0 = fcn_0000e3b0 ();
    0x00023266 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00023268 beq 0x232d0                                       |         goto label_83;
                                                                 |     }
    0x0002326a ldr r1, [pc, 0xcc]                                |     
    0x0002326c mov r0, r8                                        |     r0 = r8;
    0x0002326e mov.w r8, 2                                       |     r8 = 2;
    0x00023272 add r1, pc                                        |     r1 = 0x465b0;
    0x00023274 blx 0xe3b0                                        |     r0 = fcn_0000e3b0 ();
    0x00023278 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002327a beq.w 0x230b4                                     |         goto label_3;
                                                                 |     }
    0x0002327e ldr r4, [sp, 0x1c]                                |     r4 = var_1ch;
    0x00023280 movs r2, 0                                        |     r2 = 0;
    0x00023282 ldr r3, [pc, 0xb8]                                |     
    0x00023284 movw r1, 0x5f7                                    |     r1 = 0x5f7;
    0x00023288 ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x0002328a add r3, pc                                        |     r3 = 0x465cc;
    0x0002328c orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x00023290 str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x00023292 ldr r0, [pc, 0xac]                                |     
    0x00023294 add r0, pc                                        |     r0 = 0x465da;
    0x00023296 bl 0x40ed8                                        |     r0 = zbx_strdup2 ();
    0x0002329a mov r3, r0                                        |     r3 = r0;
    0x0002329c b 0x2320a                                         |     goto label_4;
                                                                 | label_77:
    0x0002329e ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x000232a0 ldrd r4, r5, [sp, 0x28]                           |     __asm ("ldrd r4, r5, [var_2ch]");
    0x000232a4 ldr r3, [r2, 0x28]                                |     r3 = *((r2 + 0x28));
    0x000232a6 strd r4, r5, [r2, 0x10]                           |     __asm ("strd r4, r5, [r2, 0x10]");
    0x000232aa orr r3, r3, 2                                     |     r3 |= 2;
    0x000232ae str r3, [r2, 0x28]                                |     *((r2 + 0x28)) = r3;
    0x000232b0 b 0x23210                                         |     goto label_5;
                                                                 | label_78:
    0x000232b2 ldr r1, [sp, 0x1c]                                |     r1 = var_1ch;
    0x000232b4 ldr r2, [r1, 0x28]                                |     r2 = *((r1 + 0x28));
    0x000232b6 orr r2, r2, 0x20                                  |     r2 |= 0x20;
    0x000232ba str r2, [r1, 0x28]                                |     *((r1 + 0x28)) = r2;
    0x000232bc b 0x2320a                                         |     goto label_4;
                                                                 | label_68:
    0x000232be movs r4, 0                                        |     r4 = 0;
    0x000232c0 mov.w r8, 3                                       |     r8 = 3;
    0x000232c4 mov r5, r4                                        |     r5 = r4;
    0x000232c6 movs r7, 0x3c                                     |     r7 = 0x3c;
    0x000232c8 b 0x23128                                         |     goto label_6;
                                                                 | label_74:
    0x000232ca mov.w r7, 0x12c                                   |     r7 = 0x12c;
    0x000232ce b 0x23128                                         |     goto label_6;
                                                                 | label_83:
    0x000232d0 mov.w r8, 1                                       |     r8 = 1;
    0x000232d4 b 0x230b4                                         |     goto label_3;
                                                                 | label_79:
    0x000232d6 mov.w r8, 3                                       |     r8 = 3;
    0x000232da movs r4, 0                                        |     r4 = 0;
    0x000232dc movs r7, 0x3c                                     |     r7 = 0x3c;
    0x000232de b 0x23128                                         |     goto label_6;
                                                                 | label_80:
    0x000232e0 mov r8, r7                                        |     r8 = r7;
    0x000232e2 movs r7, 0x3c                                     |     r7 = 0x3c;
    0x000232e4 b 0x23128                                         |     goto label_6;
                                                                 | label_82:
    0x000232e6 blx 0xe158                                        |     fcn_0000e158 ();
    0x000232ea nop                                               |     
    0x000232ec ldrh r4, [r3, 0x1c]                               |     r4 = *((r3 + 0x1c));
    0x000232ee movs r3, r0                                       |     r3 = r0;
    0x000232f0 lsls r4, r2, 0xe                                  |     r4 = r2 << 0xe;
    0x000232f2 movs r0, r0                                       |     
    0x000232f4 ldrh r2, [r0, 0x1c]                               |     r2 = *((r0 + 0x1c));
    0x000232f6 movs r3, r0                                       |     r3 = r0;
    0x000232f8 b 0x2365c                                         |     goto label_84;
                                                                 |     do {
                                                                 | label_7:
    0x00023490 ldr r0, [sp, 0x14]                                |         r0 = var_14h;
    0x00023492 blx 0xe28c                                        |         r0 = fcn_0000e28c ();
    0x00023496 mov r6, r0                                        |         r6 = r0;
    0x00023498 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0002349a beq.w 0x237dc                                     |             goto label_85;
                                                                 |         }
                                                                 | label_10:
    0x0002349e ldr r3, [sp, 0x10]                                |         r3 = var_10h;
                                                                 |         if (r3 != 0) {
    0x000234a0 cbz r3, 0x234a8                                   |             
    0x000234a2 mov r0, r3                                        |             r0 = r3;
    0x000234a4 blx 0xdc8c                                        |             fcn_0000dc8c ();
                                                                 |         }
                                                                 |         if (r4 != 0) {
    0x000234a8 cbz r4, 0x234b0                                   |             
    0x000234aa mov r0, r4                                        |             r0 = r4;
    0x000234ac blx 0xdc8c                                        |             fcn_0000dc8c ();
                                                                 |         }
    0x000234b0 subw r4, fp, 0x858                                |         __asm ("subw r4, fp, 0x858");
    0x000234b4 ldr r0, [r4]                                      |         r0 = *(r4);
                                                                 |         if (r0 != 0) {
    0x000234b6 cbz r0, 0x234c0                                   |             
    0x000234b8 blx 0xde30                                        |             fcn_0000de30 ();
    0x000234bc movs r3, 0                                        |             r3 = 0;
    0x000234be str r3, [r4]                                      |             *(r4) = r3;
                                                                 |         }
    0x000234c0 subw r4, fp, 0x85c                                |         __asm ("subw r4, fp, 0x85c");
    0x000234c4 ldr r0, [r4]                                      |         r0 = *(r4);
                                                                 |         if (r0 != 0) {
    0x000234c6 cbz r0, 0x234d0                                   |             
    0x000234c8 blx 0xde30                                        |             fcn_0000de30 ();
    0x000234cc movs r3, 0                                        |             r3 = 0;
    0x000234ce str r3, [r4]                                      |             *(r4) = r3;
                                                                 |         }
    0x000234d0 cmp.w sl, 0                                       |         
                                                                 |         if (sl != 0) {
    0x000234d4 beq 0x234dc                                       |             
    0x000234d6 mov r0, sl                                        |             r0 = sl;
    0x000234d8 blx 0xde30                                        |             fcn_0000de30 ();
                                                                 |         }
                                                                 |         if (r5 != 0) {
    0x000234dc cbz r5, 0x234e4                                   |             
    0x000234de mov r0, r5                                        |             r0 = r5;
    0x000234e0 blx 0xde30                                        |             fcn_0000de30 ();
                                                                 |         }
    0x000234e4 vmov.i64 d17, 0xffffffff                          |         __asm ("vmov.i64 d17, 0xffffffff");
    0x000234e8 adds r6, 0x13                                     |         r6 += 0x13;
    0x000234ea vmov.i32 d16, 0                                   |         __asm ("vmov.i32 d16, 0");
    0x000234ec movs r0, r2                                       |         r0 = r2;
    0x000234ee movs r3, 4                                        |         r3 = 4;
    0x000234f0 sub.w r2, sb, 0x14                                |         r2 = sb - 0x14;
    0x000234f4 mov.w r1, -1                                      |         r1 = -1;
    0x000234f8 mov r0, r6                                        |         r0 = r6;
    0x000234fa vstr d17, [sp, 8]                                 |         __asm ("vstr d17, [sp, 8]");
    0x000234fe vstr d16, [sp]                                    |         __asm ("vstr d16, [sp]");
    0x00023502 bl 0x419a8                                        |         is_uint_n_range ();
    0x00023506 adds r0, 1                                        |         r0++;
                                                                 |         if (r0 == 1) {
    0x00023508 beq.w 0x23eb6                                     |             goto label_86;
                                                                 |         }
    0x0002350c ldr.w r4, [pc, 0xb10]                             |         r4 = *(0x00024020);
    0x00023510 add.w r3, sp, 0x10a0                              |         r3 += arg_10a0h;
    0x00023514 ldr.w r2, [pc, 0xb0c]                             |         
    0x00023518 adds r3, 4                                        |         r3 += 4;
    0x0002351a mov r7, r3                                        |         r7 = r3;
    0x0002351c mov.w r1, 0x800                                   |         r1 = 0x800;
    0x00023520 str r3, [sp, 0x18]                                |         var_18h = r3;
    0x00023522 add r4, pc                                        |         r4 += pc;
    0x00023524 add r2, pc                                        |         r2 = 0x4754c;
    0x00023526 mov r3, r6                                        |         r3 = r6;
    0x00023528 mov r0, r7                                        |         r0 = r7;
    0x0002352a bl 0x43f38                                        |         zbx_snprintf ();
    0x0002352e mov r1, r4                                        |         r1 = r4;
    0x00023530 mov r0, r7                                        |         r0 = r7;
    0x00023532 blx 0xdf90                                        |         r0 = fcn_0000df90 ();
    0x00023536 mov r5, r0                                        |         r5 = r0;
    0x00023538 str r0, [sp, 0x10]                                |         var_10h = r0;
    0x0002353a cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0002353c beq.w 0x24b18                                     |             goto label_87;
                                                                 |         }
    0x00023540 ldr.w r2, [pc, 0xae4]                             |         
    0x00023544 mov r3, r6                                        |         r3 = r6;
    0x00023546 mov.w r1, 0x800                                   |         r1 = 0x800;
    0x0002354a mov r0, r7                                        |         r0 = r7;
    0x0002354c add r2, pc                                        |         r2 = 0x47578;
    0x0002354e bl 0x43f38                                        |         zbx_snprintf ();
    0x00023552 mov r1, r4                                        |         r1 = r4;
    0x00023554 mov r0, r7                                        |         r0 = r7;
    0x00023556 blx 0xdf90                                        |         r0 = fcn_0000df90 ();
    0x0002355a mov r4, r0                                        |         r4 = r0;
    0x0002355c cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0002355e beq.w 0x24b24                                     |             goto label_88;
                                                                 |         }
    0x00023562 sub.w r2, sb, 0x10                                |         r2 = sb - 0x10;
    0x00023566 sub.w r1, sb, 0x18                                |         r1 = sb - 0x18;
    0x0002356a mov r0, r5                                        |         r0 = r5;
    0x0002356c bl 0x208bc                                        |         r0 = fcn_000208bc (r0, r1, r2);
    0x00023570 mov r8, r0                                        |         r8 = r0;
    0x00023572 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00023574 bne.w 0x23eae                                     |             goto label_89;
                                                                 |         }
    0x00023578 ldr.w r1, [pc, 0xab0]                             |         
    0x0002357c sub.w r3, sb, 0x1c                                |         r3 = sb - 0x1c;
    0x00023580 mov r2, r0                                        |         r2 = r0;
    0x00023582 str r3, [sp]                                      |         *(sp) = r3;
    0x00023584 mov r3, r0                                        |         r3 = r0;
    0x00023586 mov r0, r4                                        |         r0 = r4;
    0x00023588 add r1, pc                                        |         r1 = 0x475b8;
    0x0002358a bl 0x20e0c                                        |         fcn_00020e0c (r0, r1, r2, r3, r4, r5, r6);
    0x0002358e subw r3, fp, 0x858                                |         __asm ("subw r3, fp, 0x858");
    0x00023590 lsls r0, r3, 0xd                                  |         r0 = r3 << 0xd;
    0x00023592 ldr r3, [r3]                                      |         r3 = *(r3);
    0x00023594 str r3, [sp, 0x1c]                                |         var_1ch = r3;
    0x00023596 ldrb r3, [r3]                                     |         r3 = *(r3);
    0x00023598 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x0002359a bne.w 0x24458                                     |             goto label_90;
                                                                 |         }
                                                                 | label_45:
    0x0002359e subw r3, fp, 0x85c                                |         __asm ("subw r3, fp, 0x85c");
    0x000235a2 ldr r0, [r3]                                      |         r0 = *(r3);
    0x000235a4 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x000235a6 beq.w 0x23eae                                     |             goto label_89;
                                                                 |         }
    0x000235aa ldr r1, [sp, 0x30]                                |         r1 = var_30h;
                                                                 |         if (r1 != 0) {
    0x000235ac cbz r1, 0x235bc                                   |             
    0x000235ae ldrb r3, [r1]                                     |             r3 = *(r1);
                                                                 |             if (r3 == 0) {
    0x000235b0 cbz r3, 0x235bc                                   |                 goto label_91;
                                                                 |             }
    0x000235b2 blx 0xe3b0                                        |             r0 = fcn_0000e3b0 ();
    0x000235b6 cmp r0, 0                                         |             
                                                                 |             if (r0 != 0) {
    0x000235b8 bne.w 0x23eae                                     |                 goto label_89;
                                                                 |             }
                                                                 |         }
                                                                 | label_91:
    0x000235bc sub.w r2, sb, 8                                   |         r2 = sb - 8;
    0x000235c0 movs r1, 0                                        |         r1 = 0;
    0x000235c2 mov r0, r4                                        |         r0 = r4;
    0x000235c4 bl 0x21040                                        |         fcn_00021040 (r0, r1, r2, r3);
    0x000235c8 ldr r3, [sp, 0x28]                                |         r3 = var_28h;
    0x000235ca mov r5, r0                                        |         r5 = r0;
    0x000235cc cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x000235ce beq.w 0x24526                                     |             goto label_92;
                                                                 |         }
    0x000235d2 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x000235d4 bne.w 0x23eae                                     |             goto label_89;
                                                                 |         }
    0x000235d8 ldrd sl, r8, [sb, -0x8]                           |         __asm ("ldrd sl, r8, [sb, -0x8]");
    0x000235dc ldr r1, [r3, 8]                                   |         r1 = *((r3 + 8));
    0x000235de cmp r0, r8                                        |         
    0x000235e0 it eq                                             |         
                                                                 |         if (r0 == r8) {
    0x000235e2 cmpeq r1, sl                                      |             __asm ("cmpeq r1, sl");
                                                                 |         }
    0x000235e4 it ne                                             |         
                                                                 |         if (r0 == r8) {
    0x000235e6 movne sl, r0                                      |             sl = r0;
                                                                 |         }
    0x000235e8 bne.w 0x23490                                     |         
                                                                 |     } while (r0 != r8);
    0x000235ec ldr r3, [sp, 0x3c]                                |     r3 = var_3ch;
    0x000235ee cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x000235f0 beq.w 0x23de0                                     |         goto label_93;
                                                                 |     }
    0x000235f4 ldr r3, [sp, 0x3c]                                |     r3 = var_3ch;
    0x000235f6 ldrb r3, [r3]                                     |     r3 = *(r3);
    0x000235f8 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x000235fa beq.w 0x23de0                                     |         goto label_93;
                                                                 |     }
                                                                 | label_51:
    0x000235fe ldr r1, [sp, 0x3c]                                |     r1 = var_3ch;
    0x00023600 movs r2, 0                                        |     r2 = 0;
    0x00023602 ldr r0, [sp, 0x1c]                                |     r0 = var_1ch;
    0x00023604 bl 0x31a84                                        |     r0 = zbx_regexp_match ();
    0x00023608 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002360a beq.w 0x23eae                                     |         goto label_89;
                                                                 |     }
                                                                 | label_50:
    0x0002360e ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x00023610 cmp r3, 2                                         |     
                                                                 |     if (r3 == 2) {
    0x00023612 beq.w 0x23e1a                                     |         goto label_94;
                                                                 |     }
    0x00023616 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00023618 beq.w 0x24ad0                                     |         goto label_95;
                                                                 |     }
    0x0002361c ldr.w r3, [pc, 0xa10]                             |     r3 = *(0x00024030);
    0x00023620 movs r2, 0                                        |     r2 = 0;
    0x00023622 ldr.w r0, [pc, 0xa10]                             |     
    0x00023626 movw r1, 0x791                                    |     r1 = 0x791;
    0x0002362a vmov.i8 d16, 0xff                                 |     __asm ("vmov.i8 d16, 0xff");
    0x0002362e add r3, pc                                        |     r3 += pc;
    0x00023630 add r0, pc                                        |     r0 = 0x4766a;
    0x00023632 vstr d16, [sb, -8]                                |     __asm ("vstr d16, [sb, -8]");
    0x00023634 lsrs r2, r0, 0xc                                  |     r2 = r0 >> 0xc;
    0x00023636 bl 0x40ed8                                        |     r0 = zbx_strdup2 ();
    0x0002363a mov sl, r0                                        |     sl = r0;
                                                                 | label_62:
    0x0002363c mov r2, sb                                        |     r2 = sb;
    0x0002363e movs r1, 1                                        |     r1 = 1;
    0x00023640 mov r0, r4                                        |     r0 = r4;
    0x00023642 bl 0x21040                                        |     r0 = fcn_00021040 (r0, r1, r2, r3);
    0x00023646 mov r5, r0                                        |     r5 = r0;
    0x00023648 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002364a beq.w 0x24994                                     |         goto label_96;
                                                                 |     }
                                                                 | label_12:
    0x0002364e ldr.w r3, [pc, 0x9e8]                             |     r3 = *(0x2403a);
    0x00023652 movs r2, 0                                        |     r2 = 0;
    0x00023654 ldr.w r0, [pc, 0x9e4]                             |     r0 = *(0x0002403c);
    0x00023658 movw r1, 0x79e                                    |     r1 = 0x79e;
                                                                 | label_84:
    0x0002365c vmov.i8 d16, 0xff                                 |     __asm ("vmov.i8 d16, 0xff");
    0x00023660 add r3, pc                                        |     r3 += pc;
    0x00023662 add r0, pc                                        |     r0 += pc;
    0x00023664 vstr d16, [sb]                                    |     __asm ("vstr d16, [sb]");
    0x00023668 bl 0x40ed8                                        |     r0 = zbx_strdup2 ();
    0x0002366c mov r5, r0                                        |     r5 = r0;
                                                                 | label_55:
    0x0002366e ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x00023670 cmp r3, 1                                         |     
                                                                 |     if (r3 != 1) {
    0x00023672 bne.w 0x23e1e                                     |         goto label_97;
                                                                 |     }
    0x00023676 mov r3, r6                                        |     r3 = r6;
    0x00023678 ldr.w r2, [pc, 0x9c4]                             |     r2 = *(0x00024040);
    0x0002367c ldr r6, [sp, 0x18]                                |     r6 = var_18h;
    0x0002367e mov.w r1, 0x800                                   |     r1 = 0x800;
    0x00023682 add r2, pc                                        |     r2 += pc;
    0x00023684 mov r0, r6                                        |     r0 = r6;
    0x00023686 bl 0x43f38                                        |     zbx_snprintf ();
    0x0002368a mov r0, r6                                        |     r0 = r6;
    0x0002368c blx 0xdbdc                                        |     fcn_0000dbdc ();
    0x00023690 str r0, [sp, 0x1c]                                |     var_1ch = r0;
    0x00023692 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00023694 beq.w 0x23490                                     |         goto label_7;
                                                                 |     }
    0x00023698 vmov.i32 d9, 0                                    |     __asm ("vmov.i32 d9, 0");
    0x0002369c vmov.i64 d8, 0xffffffff                           |     __asm ("vmov.i64 d8, 0xffffffff");
    0x000236a0 str r4, [sp, 0x44]                                |     var_44h = r4;
                                                                 |     do {
                                                                 | label_8:
    0x000236a2 ldr r0, [sp, 0x1c]                                |         r0 = var_1ch;
    0x000236a4 blx 0xe28c                                        |         r0 = fcn_0000e28c ();
    0x000236a8 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x000236aa beq.w 0x237c6                                     |             goto label_98;
                                                                 |         }
                                                                 | label_9:
    0x000236ae add.w r4, r0, 0x13                                |         r4 = r0 + 0x13;
    0x000236b2 ldr r2, [sp, 0x40]                                |         r2 = var_40h;
    0x000236b4 movs r3, 4                                        |         r3 = 4;
    0x000236b6 mov.w r1, -1                                      |         r1 = -1;
    0x000236ba mov r0, r4                                        |         r0 = r4;
    0x000236bc vstr d8, [sp, 8]                                  |         __asm ("vstr d8, [sp, 8]");
    0x000236c0 vstr d9, [sp]                                     |         __asm ("vstr d9, [sp]");
    0x000236c4 bl 0x419a8                                        |         is_uint_n_range ();
    0x000236c8 adds r0, 1                                        |         r0++;
    0x000236ca beq 0x236a2                                       |         
                                                                 |     } while (r0 == 1);
    0x000236cc ldr.w r2, [pc, 0x974]                             |     r2 = *(0x00024044);
    0x000236d0 add.w r7, sp, 0x18a0                              |     r7 += arg_18a0h;
    0x000236d4 adds r7, 4                                        |     r7 += 4;
    0x000236d6 ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x000236d8 mov.w r1, 0x800                                   |     r1 = 0x800;
    0x000236dc str r4, [sp]                                      |     *(sp) = r4;
    0x000236de add r2, pc                                        |     r2 += pc;
    0x000236e0 mov r0, r7                                        |     r0 = r7;
    0x000236e2 bl 0x43f38                                        |     zbx_snprintf ();
    0x000236e6 ldr.w r8, [pc, 0x960]                             |     r8 = *(0x00024048);
    0x000236ea add.w r6, sp, 0x2080                              |     r6 += arg_2080h;
    0x000236ee ldr.w r2, [pc, 0x95c]                             |     r2 = *(0x0002404c);
    0x000236f2 adds r6, 0x24                                     |     r6 += 0x24;
    0x000236f4 mov r3, r7                                        |     r3 = r7;
    0x000236f6 mov.w r1, 0x800                                   |     r1 = 0x800;
    0x000236fa add r8, pc                                        |     r8 += pc;
    0x000236fc mov r0, r6                                        |     r0 = r6;
    0x000236fe add r2, pc                                        |     r2 += pc;
    0x00023700 bl 0x43f38                                        |     zbx_snprintf ();
    0x00023704 mov r1, r8                                        |     r1 = r8;
    0x00023706 mov r0, r6                                        |     r0 = r6;
    0x00023708 blx 0xdf90                                        |     r0 = fcn_0000df90 ();
    0x0002370c mov r4, r0                                        |     r4 = r0;
    0x0002370e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00023710 beq 0x236a2                                       |         goto label_8;
                                                                 |     }
    0x00023712 ldr.w r2, [pc, 0x93c]                             |     r2 = *(0x00024050);
    0x00023716 mov r3, r7                                        |     r3 = r7;
    0x00023718 mov.w r1, 0x800                                   |     r1 = 0x800;
    0x0002371c mov r0, r6                                        |     r0 = r6;
    0x0002371e add r2, pc                                        |     r2 += pc;
    0x00023720 bl 0x43f38                                        |     zbx_snprintf ();
    0x00023724 mov r1, r8                                        |     r1 = r8;
    0x00023726 mov r0, r6                                        |     r0 = r6;
    0x00023728 blx 0xdf90                                        |     r0 = fcn_0000df90 ();
    0x0002372c mov r7, r0                                        |     r7 = r0;
    0x0002372e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00023730 beq.w 0x24b50                                     |         goto label_99;
                                                                 |     }
    0x00023734 mov r1, r0                                        |     r1 = r0;
    0x00023736 movs r2, 1                                        |     r2 = 1;
    0x00023738 mov r0, r4                                        |     r0 = r4;
    0x0002373a bl 0x21718                                        |     r0 = fcn_00021718 (r0, r1, r2, r3, r4, r5, r6);
    0x0002373e mov r6, r0                                        |     r6 = r0;
    0x00023740 mov r0, r4                                        |     r0 = r4;
    0x00023742 blx 0xdc8c                                        |     fcn_0000dc8c ();
    0x00023746 mov r0, r7                                        |     r0 = r7;
    0x00023748 blx 0xdc8c                                        |     fcn_0000dc8c ();
    0x0002374c cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x0002374e beq 0x236a2                                       |         goto label_8;
                                                                 |     }
    0x00023750 subw r3, fp, 0x854                                |     __asm ("subw r3, fp, 0x854");
    0x00023754 ldr.w r4, [pc, 0x8fc]                             |     r4 = *(0x00024054);
    0x00023758 ldr r3, [r3]                                      |     r3 = *(r3);
    0x0002375a movs r7, 0                                        |     r7 = 0;
    0x0002375c mov r2, r7                                        |     r2 = r7;
    0x0002375e movw r1, 0x7ba                                    |     r1 = 0x7ba;
    0x00023762 add r4, pc                                        |     r4 += pc;
    0x00023764 str r7, [r6, 0x18]                                |     *((r6 + 0x18)) = r7;
    0x00023766 str r3, [r6]                                      |     *(r6) = r3;
    0x00023768 subw r3, fp, 0x84c                                |     __asm ("subw r3, fp, 0x84c");
    0x0002376c ldr r3, [r3]                                      |     r3 = *(r3);
    0x0002376e mov r0, r4                                        |     r0 = r4;
    0x00023770 str r3, [r6, 4]                                   |     *((r6 + 4)) = r3;
    0x00023772 subw r3, fp, 0x85c                                |     __asm ("subw r3, fp, 0x85c");
    0x00023776 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00023778 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x0002377c vldr d16, [sb, -8]                                |     __asm ("vldr d16, [sb, -8]");
    0x00023780 mov r3, sl                                        |     r3 = sl;
    0x00023782 mov r2, r7                                        |     r2 = r7;
    0x00023784 movw r1, 0x7bd                                    |     r1 = 0x7bd;
    0x00023788 str r0, [r6, 0x10]                                |     *((r6 + 0x10)) = r0;
    0x0002378a mov r0, r4                                        |     r0 = r4;
    0x0002378c vstr d16, [r6, 0x30]                              |     __asm ("vstr d16, [r6, 0x30]");
    0x00023790 vldr d16, [sb]                                    |     __asm ("vldr d16, [sb]");
    0x00023794 vstr d16, [r6, 0x38]                              |     __asm ("vstr d16, [r6, 0x38]");
    0x00023798 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x0002379c mov r2, r7                                        |     r2 = r7;
    0x0002379e movw r1, 0x7be                                    |     r1 = 0x7be;
    0x000237a2 mov r3, r5                                        |     r3 = r5;
    0x000237a4 str r0, [r6, 0x28]                                |     *((r6 + 0x28)) = r0;
    0x000237a6 mov r0, r4                                        |     r0 = r4;
    0x000237a8 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x000237ac ldr r3, [sp, 0x34]                                |     r3 = var_34h;
    0x000237ae mov r1, r6                                        |     r1 = r6;
    0x000237b0 str r0, [r6, 0x2c]                                |     *((r6 + 0x2c)) = r0;
    0x000237b2 sub.w r0, r3, 0x38                                |     r0 = r3 - 0x38;
    0x000237b6 bl 0x21164                                        |     zbx_vector_proc_data_ptr_append ();
    0x000237ba ldr r0, [sp, 0x1c]                                |     r0 = var_1ch;
    0x000237bc blx 0xe28c                                        |     r0 = fcn_0000e28c ();
    0x000237c0 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000237c2 bne.w 0x236ae                                     |         goto label_9;
                                                                 |     }
                                                                 | label_98:
    0x000237c6 ldr r0, [sp, 0x1c]                                |     r0 = var_1ch;
    0x000237c8 ldr r4, [sp, 0x44]                                |     r4 = var_44h;
    0x000237ca blx 0xe0d0                                        |     fcn_0000e0d0 ();
    0x000237ce ldr r0, [sp, 0x14]                                |     r0 = var_14h;
    0x000237d0 blx 0xe28c                                        |     r0 = fcn_0000e28c ();
    0x000237d4 mov r6, r0                                        |     r6 = r0;
    0x000237d6 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000237d8 bne.w 0x2349e                                     |         goto label_10;
                                                                 |     }
                                                                 | label_85:
    0x000237dc ldr r7, [sp, 0x10]                                |     r7 = var_10h;
                                                                 |     if (r7 != 0) {
    0x000237de cbz r7, 0x237e6                                   |         
    0x000237e0 mov r0, r7                                        |         r0 = r7;
    0x000237e2 blx 0xdc8c                                        |         fcn_0000dc8c ();
                                                                 |     }
                                                                 |     if (r4 != 0) {
    0x000237e6 cbz r4, 0x237ee                                   |         
    0x000237e8 mov r0, r4                                        |         r0 = r4;
    0x000237ea blx 0xdc8c                                        |         fcn_0000dc8c ();
    0x000237ec invalid                                           |         
                                                                 |     }
    0x000237ee ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
                                                                 |     if (r3 != 0) {
    0x000237f0 cbz r3, 0x237f8                                   |         
    0x000237f2 mov r0, r3                                        |         r0 = r3;
    0x000237f4 blx 0xdc8c                                        |         fcn_0000dc8c ();
                                                                 |     }
    0x000237f8 ldr r0, [sp, 0x14]                                |     r0 = var_14h;
    0x000237fa subw r4, fp, 0x858                                |     __asm ("subw r4, fp, 0x858");
    0x000237fe blx 0xe0d0                                        |     fcn_0000e0d0 ();
    0x00023802 ldr r0, [r4]                                      |     r0 = *(r4);
                                                                 |     if (r0 != 0) {
    0x00023804 cbz r0, 0x2380e                                   |         
    0x00023806 blx 0xde30                                        |         fcn_0000de30 ();
    0x0002380a movs r3, 0                                        |         r3 = 0;
    0x0002380c str r3, [r4]                                      |         *(r4) = r3;
                                                                 |     }
    0x0002380e subw r4, fp, 0x85c                                |     __asm ("subw r4, fp, 0x85c");
    0x00023812 ldr r0, [r4]                                      |     r0 = *(r4);
                                                                 |     if (r0 != 0) {
    0x00023814 cbz r0, 0x2381e                                   |         
    0x00023816 blx 0xde30                                        |         fcn_0000de30 ();
    0x0002381a movs r3, 0                                        |         r3 = 0;
    0x0002381c str r3, [r4]                                      |         *(r4) = r3;
                                                                 |     }
    0x0002381e cmp.w sl, 0                                       |     
                                                                 |     if (sl != 0) {
    0x00023822 beq 0x2382a                                       |         
    0x00023824 mov r0, sl                                        |         r0 = sl;
    0x00023826 blx 0xde30                                        |         fcn_0000de30 ();
                                                                 |     }
                                                                 |     if (r5 != 0) {
    0x0002382a cbz r5, 0x23832                                   |         
    0x0002382c mov r0, r5                                        |         r0 = r5;
    0x0002382e blx 0xde30                                        |         fcn_0000de30 ();
                                                                 |     }
    0x00023832 ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x00023834 subw r8, fp, 0x838                                |     __asm ("subw r8, fp, 0x838");
    0x00023838 ldrd r6, sl, [r8]                                 |     __asm ("ldrd r6, sl, [r8]");
    0x0002383c cmp r3, 2                                         |     
                                                                 |     if (r3 == 2) {
    0x0002383e beq.w 0x2453c                                     |         goto label_100;
                                                                 |     }
                                                                 | label_54:
    0x00023842 ldr r3, [sp, 0x34]                                |     r3 = var_34h;
    0x00023844 mov.w r1, 0x1000                                  |     r1 = 0x1000;
    0x00023848 sub.w r5, r3, 0x1c                                |     r5 = r3 - 0x1c;
    0x0002384c mov r0, r5                                        |     r0 = r5;
    0x0002384e bl 0x3ab5c                                        |     zbx_json_initarray ();
    0x00023852 cmp.w sl, 0                                       |     
                                                                 |     if (sl <= 0) {
    0x00023856 ble.w 0x23d7c                                     |         goto label_63;
                                                                 |     }
    0x0002385a ldr.w r3, [pc, 0x7fc]                             |     r3 = *(0x00024058);
    0x0002385e sub.w sb, r6, 4                                   |     sb = r6 - 4;
    0x00023862 ldr.w r2, [pc, 0x7f8]                             |     
    0x00023866 mov r8, sb                                        |     r8 = sb;
    0x00023868 ldr.w r1, [pc, 0x7f4]                             |     
    0x0002386c movs r7, 0                                        |     r7 = 0;
    0x0002386e add r3, pc                                        |     r3 += pc;
    0x00023870 strd sb, fp, [sp, 0x18]                           |     __asm ("strd sb, fp, [var_1ch]");
    0x00023874 add r2, pc                                        |     r2 = 0x478d6;
    0x00023876 str r6, [sp, 0x14]                                |     var_14h = r6;
    0x00023878 add r1, pc                                        |     r1 = 0x478dc;
    0x0002387a ldr r6, [sp, 0x20]                                |     r6 = var_20h;
    0x0002387c mov sb, r3                                        |     sb = r3;
    0x0002387e mov fp, r2                                        |     
    0x00023880 str r1, [sp, 0x10]                                |     var_10h = r1;
    0x00023882 b 0x23a80                                         |     
                                                                 |     while (r6 != 0) {
    0x00023884 cmp r6, 1                                         |         
                                                                 |         if (r6 == 1) {
    0x00023886 beq.w 0x23ed6                                     |             goto label_101;
                                                                 |         }
    0x0002388a ldr r2, [r4, 0x10]                                |         r2 = *((r4 + 0x10));
    0x0002388c movs r3, 1                                        |         r3 = 1;
    0x0002388e mov r1, sb                                        |         r1 = sb;
    0x00023890 mov r0, r5                                        |         r0 = r5;
    0x00023892 bl 0x3ac9c                                        |         zbx_json_addstring ();
    0x00023896 ldrd r2, r3, [r4, 0x20]                           |         __asm ("ldrd r2, r3, [r4, 0x20]");
    0x0002389a mov r1, fp                                        |         r1 = fp;
    0x0002389c mov r0, r5                                        |         r0 = r5;
    0x0002389e bl 0x3ae40                                        |         zbx_json_adduint64 ();
    0x000238a2 ldrd r2, r3, [r4, 0x68]                           |         __asm ("ldrd r2, r3, [r4, 0x68]");
    0x000238a6 cmp.w r3, -1                                      |         
    0x000238aa it eq                                             |         
                                                                 |         if (r3 == -1) {
    0x000238ac cmpeq r2, -1                                      |             __asm ("cmpeq r2, -1");
                                                                 |         }
                                                                 |         if (r3 == -1) {
    0x000238b0 beq.w 0x23fe2                                     |             goto label_102;
                                                                 |         }
    0x000238b4 ldr.w r1, [pc, 0x7ac]                             |         r1 = *(0x00024064);
    0x000238b8 mov r0, r5                                        |         r0 = r5;
    0x000238ba add r1, pc                                        |         r1 += pc;
    0x000238bc bl 0x3ae40                                        |         zbx_json_adduint64 ();
                                                                 | label_14:
    0x000238c0 vldr d0, [r4, 0x70]                               |         __asm ("vldr d0, [r4, 0x70]");
    0x000238c4 mov r0, r5                                        |         r0 = r5;
    0x000238c6 ldr r1, [sp, 0x10]                                |         r1 = var_10h;
    0x000238c8 bl 0x3af08                                        |         zbx_json_addfloat ();
    0x000238cc ldrd r2, r3, [r4, 0x78]                           |         __asm ("ldrd r2, r3, [r4, 0x78]");
    0x000238d0 cmp.w r3, -1                                      |         
    0x000238d4 it eq                                             |         
                                                                 |         if (r3 == -1) {
    0x000238d6 cmpeq r2, -1                                      |             __asm ("cmpeq r2, -1");
                                                                 |         }
                                                                 |         if (r3 == -1) {
    0x000238da beq.w 0x242a0                                     |             goto label_103;
                                                                 |         }
    0x000238de ldr.w r1, [pc, 0x788]                             |         
    0x000238e2 mov r0, r5                                        |         r0 = r5;
    0x000238e4 add r1, pc                                        |         r1 = 0x47952;
    0x000238e6 bl 0x3ae40                                        |         zbx_json_adduint64 ();
                                                                 | label_24:
    0x000238ea ldrd r2, r3, [r4, 0x80]                           |         __asm ("ldrd r2, r3, [r4, 0x80]");
    0x000238ee cmp.w r3, -1                                      |         
    0x000238f0 subs r7, 0xff                                     |         r7 -= 0xff;
    0x000238f2 it eq                                             |         
                                                                 |         if (r7 == 0xff) {
    0x000238f4 cmpeq r2, -1                                      |             __asm ("cmpeq r2, -1");
                                                                 |         }
                                                                 |         if (r7 == 0xff) {
    0x000238f8 beq.w 0x24168                                     |             goto label_104;
                                                                 |         }
    0x000238fc ldr.w r1, [pc, 0x76c]                             |         r1 = *(0x0002406c);
    0x00023900 mov r0, r5                                        |         r0 = r5;
    0x00023902 add r1, pc                                        |         r1 += pc;
    0x00023904 bl 0x3ae40                                        |         zbx_json_adduint64 ();
    0x00023908 ldrd r2, r3, [r4, 0x88]                           |         __asm ("ldrd r2, r3, [r4, 0x88]");
    0x0002390c cmp.w r3, -1                                      |         
    0x00023910 it eq                                             |         
                                                                 |         if (r3 == -1) {
    0x00023912 cmpeq r2, -1                                      |             __asm ("cmpeq r2, -1");
                                                                 |         }
                                                                 |         if (r3 == -1) {
    0x00023916 beq.w 0x2418e                                     |             goto label_105;
                                                                 |         }
                                                                 | label_15:
    0x0002391a ldr.w r1, [pc, 0x754]                             |         
    0x0002391e mov r0, r5                                        |         r0 = r5;
    0x00023920 add r1, pc                                        |         r1 = 0x47996;
    0x00023922 bl 0x3ae40                                        |         zbx_json_adduint64 ();
    0x00023926 ldrd r2, r3, [r4, 0x98]                           |         __asm ("ldrd r2, r3, [r4, 0x98]");
    0x0002392a cmp.w r3, -1                                      |         
    0x0002392e it eq                                             |         
                                                                 |         if (r3 == -1) {
    0x00023930 cmpeq r2, -1                                      |             __asm ("cmpeq r2, -1");
                                                                 |         }
                                                                 |         if (r3 == -1) {
    0x00023934 beq.w 0x241b2                                     |             goto label_106;
                                                                 |         }
                                                                 | label_16:
    0x00023938 ldr.w r1, [pc, 0x738]                             |         r1 = *(0x00024074);
    0x0002393c mov r0, r5                                        |         r0 = r5;
    0x0002393e add r1, pc                                        |         r1 += pc;
    0x00023940 bl 0x3ae40                                        |         zbx_json_adduint64 ();
    0x00023944 ldrd r2, r3, [r4, 0xa0]                           |         __asm ("ldrd r2, r3, [r4, 0xa0]");
    0x00023948 cmp.w r3, -1                                      |         
    0x0002394c it eq                                             |         
                                                                 |         if (r3 == -1) {
    0x0002394e cmpeq r2, -1                                      |             __asm ("cmpeq r2, -1");
                                                                 |         }
                                                                 |         if (r3 == -1) {
    0x00023952 beq.w 0x241d6                                     |             goto label_107;
                                                                 |         }
                                                                 | label_17:
    0x00023956 ldr.w r1, [pc, 0x720]                             |         
    0x0002395a mov r0, r5                                        |         r0 = r5;
    0x0002395c add r1, pc                                        |         r1 = 0x479da;
    0x0002395e bl 0x3ae40                                        |         zbx_json_adduint64 ();
    0x00023962 ldrd r2, r3, [r4, 0xb0]                           |         __asm ("ldrd r2, r3, [r4, 0xb0]");
    0x00023964 movs r3, 0x2c                                     |         r3 = 0x2c;
    0x00023966 cmp.w r3, -1                                      |         
    0x0002396a it eq                                             |         
                                                                 |         if (r3 == -1) {
    0x0002396c cmpeq r2, -1                                      |             __asm ("cmpeq r2, -1");
                                                                 |         }
                                                                 |         if (r3 == -1) {
    0x00023970 beq.w 0x241fa                                     |             goto label_108;
                                                                 |         }
                                                                 | label_18:
    0x00023974 ldr.w r1, [pc, 0x704]                             |         r1 = *(0x0002407c);
    0x00023978 mov r0, r5                                        |         r0 = r5;
    0x0002397a add r1, pc                                        |         r1 += pc;
    0x0002397c bl 0x3ae40                                        |         zbx_json_adduint64 ();
    0x00023980 ldrd r2, r3, [r4, 0xb8]                           |         __asm ("ldrd r2, r3, [r4, 0xb8]");
    0x00023984 cmp.w r3, -1                                      |         
    0x00023988 it eq                                             |         
                                                                 |         if (r3 == -1) {
    0x0002398a cmpeq r2, -1                                      |             __asm ("cmpeq r2, -1");
                                                                 |         }
                                                                 |         if (r3 == -1) {
    0x0002398e beq.w 0x2421e                                     |             goto label_109;
                                                                 |         }
                                                                 | label_19:
    0x00023992 ldr.w r1, [pc, 0x6ec]                             |         
    0x00023996 mov r0, r5                                        |         r0 = r5;
    0x00023998 add r1, pc                                        |         r1 = 0x47a1e;
    0x0002399a bl 0x3ae40                                        |         zbx_json_adduint64 ();
    0x0002399e ldrd r2, r3, [r4, 0xc0]                           |         __asm ("ldrd r2, r3, [r4, 0xc0]");
    0x000239a2 cmp.w r3, -1                                      |         
    0x000239a6 it eq                                             |         
                                                                 |         if (r3 == -1) {
    0x000239a8 cmpeq r2, -1                                      |             __asm ("cmpeq r2, -1");
                                                                 |         }
                                                                 |         if (r3 == -1) {
    0x000239ac beq.w 0x24242                                     |             goto label_110;
                                                                 |         }
                                                                 | label_20:
    0x000239b0 ldr.w r1, [pc, 0x6d0]                             |         r1 = *(0x00024084);
    0x000239b4 mov r0, r5                                        |         r0 = r5;
    0x000239b6 add r1, pc                                        |         r1 += pc;
    0x000239b8 bl 0x3ae40                                        |         zbx_json_adduint64 ();
    0x000239bc ldrd r2, r3, [r4, 0xc8]                           |         __asm ("ldrd r2, r3, [r4, 0xc8]");
    0x000239c0 cmp.w r3, -1                                      |         
    0x000239c4 it eq                                             |         
                                                                 |         if (r3 == -1) {
    0x000239c6 cmpeq r2, -1                                      |             __asm ("cmpeq r2, -1");
                                                                 |         }
                                                                 |         if (r3 == -1) {
    0x000239ca beq.w 0x24266                                     |             goto label_111;
                                                                 |         }
                                                                 | label_21:
    0x000239ce ldr.w r1, [pc, 0x6b8]                             |         
    0x000239d2 mov r0, r5                                        |         r0 = r5;
    0x000239d4 add r1, pc                                        |         r1 = 0x47a62;
    0x000239d6 bl 0x3ae40                                        |         zbx_json_adduint64 ();
    0x000239da ldrd r2, r3, [r4, 0xd0]                           |         __asm ("ldrd r2, r3, [r4, 0xd0]");
    0x000239de cmp.w r3, -1                                      |         
    0x000239e2 it eq                                             |         
                                                                 |         if (r3 == -1) {
    0x000239e4 cmpeq r2, -1                                      |             __asm ("cmpeq r2, -1");
                                                                 |         }
                                                                 |         if (r3 == -1) {
    0x000239e8 beq.w 0x2428a                                     |             goto label_112;
                                                                 |         }
                                                                 | label_22:
    0x000239ec ldr.w r1, [pc, 0x69c]                             |         r1 = *(0x0002408c);
    0x000239f0 mov r0, r5                                        |         r0 = r5;
    0x000239f2 add r1, pc                                        |         r1 += pc;
    0x000239f4 bl 0x3ae40                                        |         zbx_json_adduint64 ();
                                                                 | label_23:
    0x000239f8 ldr.w r1, [pc, 0x694]                             |         r1 = *(0x00024090);
    0x000239fc mov r0, r5                                        |         r0 = r5;
    0x000239fe vldr d0, [r4, 0x40]                               |         __asm ("vldr d0, [r4, 0x40]");
    0x00023a02 add r1, pc                                        |         r1 += pc;
    0x00023a04 bl 0x3af08                                        |         zbx_json_addfloat ();
    0x00023a08 ldr.w r1, [pc, 0x688]                             |         r1 = *(0x00024094);
    0x00023a0c mov r0, r5                                        |         r0 = r5;
    0x00023a0e vldr d0, [r4, 0x48]                               |         __asm ("vldr d0, [r4, 0x48]");
    0x00023a12 add r1, pc                                        |         r1 += pc;
    0x00023a14 bl 0x3af08                                        |         zbx_json_addfloat ();
    0x00023a18 ldrd r2, r3, [r4, 0x50]                           |         __asm ("ldrd r2, r3, [r4, 0x50]");
    0x00023a1c cmp.w r3, -1                                      |         
    0x00023a20 it eq                                             |         
                                                                 |         if (r3 == -1) {
    0x00023a22 cmpeq r2, -1                                      |             __asm ("cmpeq r2, -1");
                                                                 |         }
                                                                 |         if (r3 == -1) {
    0x00023a26 beq.w 0x242cc                                     |             goto label_113;
                                                                 |         }
    0x00023a2a ldr.w r1, [pc, 0x66c]                             |         
    0x00023a2e mov r0, r5                                        |         r0 = r5;
    0x00023a30 add r1, pc                                        |         r1 = 0x47ace;
    0x00023a32 bl 0x3ae40                                        |         zbx_json_adduint64 ();
                                                                 | label_26:
    0x00023a36 ldrd r2, r3, [r4, 0x58]                           |         __asm ("ldrd r2, r3, [r4, 0x58]");
    0x00023a3a cmp.w r3, -1                                      |         
    0x00023a3e it eq                                             |         
                                                                 |         if (r3 == -1) {
    0x00023a40 cmpeq r2, -1                                      |             __asm ("cmpeq r2, -1");
                                                                 |         }
                                                                 |         if (r3 == -1) {
    0x00023a44 beq.w 0x242b6                                     |             goto label_114;
                                                                 |         }
    0x00023a48 ldr.w r1, [pc, 0x650]                             |         r1 = *(0x0002409c);
    0x00023a4c mov r0, r5                                        |         r0 = r5;
    0x00023a4e add r1, pc                                        |         r1 += pc;
    0x00023a50 bl 0x3ae40                                        |         zbx_json_adduint64 ();
                                                                 | label_25:
    0x00023a54 ldrd r2, r3, [r4, 0x60]                           |         __asm ("ldrd r2, r3, [r4, 0x60]");
    0x00023a58 cmp.w r3, -1                                      |         
    0x00023a5c it eq                                             |         
                                                                 |         if (r3 == -1) {
    0x00023a5e cmpeq r2, -1                                      |             __asm ("cmpeq r2, -1");
                                                                 |         }
                                                                 |         if (r3 == -1) {
    0x00023a62 beq.w 0x23ec2                                     |             goto label_115;
                                                                 |         }
    0x00023a66 ldr.w r1, [pc, 0x638]                             |         
    0x00023a6a mov r0, r5                                        |         r0 = r5;
    0x00023a6c add r1, pc                                        |         r1 = 0x47b12;
    0x00023a6e bl 0x3ae40                                        |         zbx_json_adduint64 ();
                                                                 | label_13:
    0x00023a72 adds r7, 1                                        |         r7++;
    0x00023a74 mov r0, r5                                        |         r0 = r5;
    0x00023a76 bl 0x3af6c                                        |         zbx_json_close ();
    0x00023a7a cmp r7, sl                                        |         
                                                                 |         if (r7 == sl) {
    0x00023a7c beq.w 0x23d64                                     |             goto label_116;
                                                                 |         }
                                                                 | label_11:
    0x00023a80 movs r1, 0                                        |         r1 = 0;
    0x00023a82 mov r0, r5                                        |         r0 = r5;
    0x00023a84 ldr r4, [r8, 4]!                                  |         r4 = *((r8 += 4));
    0x00023a88 bl 0x3ac94                                        |         zbx_json_addobject ();
    0x00023a8c cmp r6, 0                                         |         
    0x00023a8e bne.w 0x23884                                     |         
                                                                 |     }
    0x00023a92 ldr.w r1, [pc, 0x610]                             |     
    0x00023a96 mov r3, r6                                        |     r3 = r6;
    0x00023a98 ldr r2, [r4]                                      |     r2 = *(r4);
    0x00023a9a mov r0, r5                                        |     r0 = r5;
    0x00023a9c add r1, pc                                        |     r1 = 0x47b46;
    0x00023a9e bl 0x3ae40                                        |     zbx_json_adduint64 ();
    0x00023aa2 ldrd r2, r3, [r4, 8]                              |     __asm ("ldrd r2, r3, [r4, 8]");
    0x00023aa4 movs r3, 2                                        |     r3 = 2;
    0x00023aa6 cmp.w r3, -1                                      |     
    0x00023aaa it eq                                             |     
                                                                 |     if (r3 == -1) {
    0x00023aac cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |     }
                                                                 |     if (r3 == -1) {
    0x00023ab0 beq.w 0x24442                                     |         goto label_117;
                                                                 |     }
    0x00023ab4 ldr.w r1, [pc, 0x5f0]                             |     r1 = *(0x000240a8);
    0x00023ab8 mov r0, r5                                        |     r0 = r5;
    0x00023aba add r1, pc                                        |     r1 += pc;
    0x00023abc bl 0x3ae40                                        |     zbx_json_adduint64 ();
                                                                 | label_44:
    0x00023ac0 ldr.w r1, [pc, 0x5e8]                             |     r1 = *(0x000240ac);
    0x00023ac4 movs r3, 1                                        |     r3 = 1;
    0x00023ac6 ldr r2, [r4, 0x10]                                |     r2 = *((r4 + 0x10));
    0x00023ac8 mov r0, r5                                        |     r0 = r5;
    0x00023aca add r1, pc                                        |     r1 += pc;
    0x00023acc bl 0x3ac9c                                        |     zbx_json_addstring ();
    0x00023ad0 ldr.w r1, [pc, 0x5dc]                             |     r1 = *(0x000240b0);
    0x00023ad4 movs r3, 1                                        |     r3 = 1;
    0x00023ad6 ldr r2, [r4, 0x18]                                |     r2 = *((r4 + 0x18));
    0x00023ad8 mov r0, r5                                        |     r0 = r5;
    0x00023ada add r1, pc                                        |     r1 += pc;
    0x00023adc bl 0x3ac9c                                        |     zbx_json_addstring ();
    0x00023ae0 ldr.w r1, [pc, 0x5d0]                             |     r1 = *(0x000240b4);
    0x00023ae4 movs r3, 1                                        |     r3 = 1;
    0x00023ae6 ldr r2, [r4, 0x28]                                |     r2 = *((r4 + 0x28));
    0x00023ae8 mov r0, r5                                        |     r0 = r5;
    0x00023aea add r1, pc                                        |     r1 += pc;
    0x00023aec bl 0x3ac9c                                        |     zbx_json_addstring ();
    0x00023af0 ldr.w r1, [pc, 0x5c4]                             |     r1 = *(0x000240b8);
    0x00023af4 movs r3, 1                                        |     r3 = 1;
    0x00023af6 ldr r2, [r4, 0x2c]                                |     r2 = *((r4 + 0x2c));
    0x00023af8 mov r0, r5                                        |     r0 = r5;
    0x00023afa add r1, pc                                        |     r1 += pc;
    0x00023afc bl 0x3ac9c                                        |     zbx_json_addstring ();
    0x00023b00 ldrd r2, r3, [r4, 0x30]                           |     __asm ("ldrd r2, r3, [r4, 0x30]");
    0x00023b04 cmp.w r3, -1                                      |     
    0x00023b08 it eq                                             |     
                                                                 |     if (r3 == -1) {
    0x00023b0a cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |     }
                                                                 |     if (r3 == -1) {
    0x00023b0e beq.w 0x2442c                                     |         goto label_118;
                                                                 |     }
    0x00023b12 ldr.w r1, [pc, 0x5a8]                             |     
    0x00023b16 mov r0, r5                                        |     r0 = r5;
    0x00023b18 add r1, pc                                        |     r1 = 0x47bda;
    0x00023b1a bl 0x3ae40                                        |     zbx_json_adduint64 ();
    0x00023b1c invalid                                           |     
                                                                 | label_43:
    0x00023b1e ldrd r2, r3, [r4, 0x38]                           |     __asm ("ldrd r2, r3, [r4, 0x38]");
    0x00023b22 cmp.w r3, -1                                      |     
    0x00023b26 it eq                                             |     
                                                                 |     if (r3 == -1) {
    0x00023b28 cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |     }
                                                                 |     if (r3 == -1) {
    0x00023b2c beq.w 0x24416                                     |         goto label_119;
                                                                 |     }
    0x00023b30 ldr.w r1, [pc, 0x58c]                             |     r1 = *(0x000240c0);
    0x00023b34 mov r0, r5                                        |     r0 = r5;
    0x00023b36 add r1, pc                                        |     r1 += pc;
    0x00023b38 bl 0x3ae40                                        |     zbx_json_adduint64 ();
                                                                 | label_42:
    0x00023b3c ldrd r2, r3, [r4, 0x68]                           |     __asm ("ldrd r2, r3, [r4, 0x68]");
    0x00023b40 cmp.w r3, -1                                      |     
    0x00023b44 it eq                                             |     
                                                                 |     if (r3 == -1) {
    0x00023b46 cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |     }
                                                                 |     if (r3 == -1) {
    0x00023b4a beq.w 0x24400                                     |         goto label_120;
                                                                 |     }
    0x00023b4e ldr.w r1, [pc, 0x574]                             |     
    0x00023b52 mov r0, r5                                        |     r0 = r5;
    0x00023b54 add r1, pc                                        |     r1 = 0x47c1e;
    0x00023b56 bl 0x3ae40                                        |     zbx_json_adduint64 ();
                                                                 | label_41:
    0x00023b5a ldr.w r1, [pc, 0x56c]                             |     
    0x00023b5e mov r0, r5                                        |     r0 = r5;
    0x00023b60 vldr d0, [r4, 0x70]                               |     __asm ("vldr d0, [r4, 0x70]");
    0x00023b64 add r1, pc                                        |     r1 = 0x47c32;
    0x00023b66 bl 0x3af08                                        |     zbx_json_addfloat ();
    0x00023b6a ldrd r2, r3, [r4, 0x78]                           |     __asm ("ldrd r2, r3, [r4, 0x78]");
    0x00023b6e cmp.w r3, -1                                      |     
    0x00023b72 it eq                                             |     
                                                                 |     if (r3 == -1) {
    0x00023b74 cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |     }
                                                                 |     if (r3 == -1) {
    0x00023b78 beq.w 0x243ea                                     |         goto label_121;
                                                                 |     }
    0x00023b7c ldr.w r1, [pc, 0x54c]                             |     r1 = *(0x000240cc);
    0x00023b80 mov r0, r5                                        |     r0 = r5;
    0x00023b82 add r1, pc                                        |     r1 += pc;
    0x00023b84 bl 0x3ae40                                        |     zbx_json_adduint64 ();
                                                                 | label_40:
    0x00023b88 ldrd r2, r3, [r4, 0x80]                           |     __asm ("ldrd r2, r3, [r4, 0x80]");
    0x00023b8c cmp.w r3, -1                                      |     
    0x00023b90 it eq                                             |     
                                                                 |     if (r3 == -1) {
    0x00023b92 cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |     }
                                                                 |     if (r3 == -1) {
    0x00023b96 beq.w 0x243d4                                     |         goto label_122;
                                                                 |     }
    0x00023b9a ldr.w r1, [pc, 0x534]                             |     
    0x00023b9e mov r0, r5                                        |     r0 = r5;
    0x00023ba0 add r1, pc                                        |     r1 = 0x47c76;
    0x00023ba2 bl 0x3ae40                                        |     zbx_json_adduint64 ();
                                                                 | label_39:
    0x00023ba6 ldrd r2, r3, [r4, 0x88]                           |     __asm ("ldrd r2, r3, [r4, 0x88]");
    0x00023baa cmp.w r3, -1                                      |     
    0x00023bae it eq                                             |     
                                                                 |     if (r3 == -1) {
    0x00023bb0 cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |     }
                                                                 |     if (r3 == -1) {
    0x00023bb4 beq.w 0x243be                                     |         goto label_123;
                                                                 |     }
    0x00023bb8 ldr.w r1, [pc, 0x518]                             |     r1 = *(0x000240d4);
    0x00023bbc mov r0, r5                                        |     r0 = r5;
    0x00023bbe add r1, pc                                        |     r1 += pc;
    0x00023bc0 bl 0x3ae40                                        |     zbx_json_adduint64 ();
                                                                 | label_38:
    0x00023bc4 ldrd r2, r3, [r4, 0x90]                           |     __asm ("ldrd r2, r3, [r4, 0x90]");
    0x00023bc8 cmp.w r3, -1                                      |     
    0x00023bcc it eq                                             |     
                                                                 |     if (r3 == -1) {
    0x00023bce cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |     }
                                                                 |     if (r3 == -1) {
    0x00023bd2 beq.w 0x243aa                                     |         goto label_124;
                                                                 |     }
    0x00023bd6 ldr.w r1, [pc, 0x500]                             |     
    0x00023bda mov r0, r5                                        |     r0 = r5;
    0x00023bdc add r1, pc                                        |     r1 = 0x47cba;
    0x00023bde bl 0x3ae40                                        |     zbx_json_adduint64 ();
                                                                 | label_37:
    0x00023be2 ldrd r2, r3, [r4, 0x98]                           |     __asm ("ldrd r2, r3, [r4, 0x98]");
    0x00023be6 cmp.w r3, -1                                      |     
    0x00023bea it eq                                             |     
                                                                 |     if (r3 == -1) {
    0x00023bec cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |     }
                                                                 |     if (r3 == -1) {
    0x00023bf0 beq.w 0x24396                                     |         goto label_125;
                                                                 |     }
    0x00023bf4 ldr.w r1, [pc, 0x4e4]                             |     r1 = *(0x000240dc);
    0x00023bf8 mov r0, r5                                        |     r0 = r5;
    0x00023bfa add r1, pc                                        |     r1 += pc;
    0x00023bfc bl 0x3ae40                                        |     zbx_json_adduint64 ();
                                                                 | label_36:
    0x00023c00 ldrd r2, r3, [r4, 0xa0]                           |     __asm ("ldrd r2, r3, [r4, 0xa0]");
    0x00023c04 cmp.w r3, -1                                      |     
    0x00023c08 it eq                                             |     
                                                                 |     if (r3 == -1) {
    0x00023c0a cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |     }
    0x00023c0c subs r7, 0xff                                     |     r7 -= 0xff;
                                                                 |     if (r7 == 0xff) {
    0x00023c0e beq.w 0x24382                                     |         goto label_126;
                                                                 |     }
    0x00023c12 ldr.w r1, [pc, 0x4cc]                             |     
    0x00023c16 mov r0, r5                                        |     r0 = r5;
    0x00023c18 add r1, pc                                        |     r1 = 0x47cfe;
    0x00023c1a bl 0x3ae40                                        |     zbx_json_adduint64 ();
                                                                 | label_35:
    0x00023c1e ldrd r2, r3, [r4, 0xa8]                           |     __asm ("ldrd r2, r3, [r4, 0xa8]");
    0x00023c22 cmp.w r3, -1                                      |     
    0x00023c26 it eq                                             |     
                                                                 |     if (r3 == -1) {
    0x00023c28 cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |     }
                                                                 |     if (r3 == -1) {
    0x00023c2c beq.w 0x2436e                                     |         goto label_127;
                                                                 |     }
    0x00023c30 ldr.w r1, [pc, 0x4b0]                             |     r1 = *(0x000240e4);
    0x00023c34 mov r0, r5                                        |     r0 = r5;
    0x00023c36 add r1, pc                                        |     r1 += pc;
    0x00023c38 bl 0x3ae40                                        |     zbx_json_adduint64 ();
                                                                 | label_34:
    0x00023c3c ldrd r2, r3, [r4, 0xb0]                           |     __asm ("ldrd r2, r3, [r4, 0xb0]");
    0x00023c40 cmp.w r3, -1                                      |     
    0x00023c44 it eq                                             |     
                                                                 |     if (r3 == -1) {
    0x00023c46 cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |     }
                                                                 |     if (r3 == -1) {
    0x00023c4a beq.w 0x2435a                                     |         goto label_128;
                                                                 |     }
    0x00023c4e ldr.w r1, [pc, 0x498]                             |     
    0x00023c52 mov r0, r5                                        |     r0 = r5;
    0x00023c54 add r1, pc                                        |     r1 = 0x47d42;
    0x00023c56 bl 0x3ae40                                        |     zbx_json_adduint64 ();
                                                                 | label_33:
    0x00023c5a ldrd r2, r3, [r4, 0xb8]                           |     __asm ("ldrd r2, r3, [r4, 0xb8]");
    0x00023c5e cmp.w r3, -1                                      |     
    0x00023c62 it eq                                             |     
                                                                 |     if (r3 == -1) {
    0x00023c64 cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |     }
                                                                 |     if (r3 == -1) {
    0x00023c68 beq.w 0x24346                                     |         goto label_129;
                                                                 |     }
    0x00023c6c ldr.w r1, [pc, 0x47c]                             |     r1 = *(0x000240ec);
    0x00023c70 mov r0, r5                                        |     r0 = r5;
    0x00023c72 add r1, pc                                        |     r1 += pc;
    0x00023c74 bl 0x3ae40                                        |     zbx_json_adduint64 ();
                                                                 | label_32:
    0x00023c78 ldrd r2, r3, [r4, 0xc0]                           |     __asm ("ldrd r2, r3, [r4, 0xc0]");
    0x00023c7c cmp.w r3, -1                                      |     
    0x00023c80 it eq                                             |     
                                                                 |     if (r3 == -1) {
    0x00023c82 cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |     }
                                                                 |     if (r3 == -1) {
    0x00023c86 beq.w 0x24332                                     |         goto label_130;
                                                                 |     }
    0x00023c8a ldr.w r1, [pc, 0x464]                             |     
    0x00023c8e mov r0, r5                                        |     r0 = r5;
    0x00023c90 add r1, pc                                        |     r1 = 0x47d86;
    0x00023c92 bl 0x3ae40                                        |     zbx_json_adduint64 ();
    0x00023c94 invalid                                           |     
                                                                 | label_31:
    0x00023c96 ldrd r2, r3, [r4, 0xc8]                           |     __asm ("ldrd r2, r3, [r4, 0xc8]");
    0x00023c9a cmp.w r3, -1                                      |     
    0x00023c9e it eq                                             |     
                                                                 |     if (r3 == -1) {
    0x00023ca0 cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |     }
                                                                 |     if (r3 == -1) {
    0x00023ca4 beq.w 0x2431e                                     |         goto label_131;
                                                                 |     }
    0x00023ca8 ldr.w r1, [pc, 0x448]                             |     r1 = *(0x000240f4);
    0x00023cac mov r0, r5                                        |     r0 = r5;
    0x00023cae add r1, pc                                        |     r1 += pc;
    0x00023cb0 bl 0x3ae40                                        |     zbx_json_adduint64 ();
                                                                 | label_30:
    0x00023cb4 ldrd r2, r3, [r4, 0xd0]                           |     __asm ("ldrd r2, r3, [r4, 0xd0]");
    0x00023cb8 cmp.w r3, -1                                      |     
    0x00023cbc it eq                                             |     
                                                                 |     if (r3 == -1) {
    0x00023cbe cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |     }
                                                                 |     if (r3 == -1) {
    0x00023cc2 beq.w 0x2430a                                     |         goto label_132;
                                                                 |     }
    0x00023cc6 ldr.w r1, [pc, 0x430]                             |     
    0x00023cca mov r0, r5                                        |     r0 = r5;
    0x00023ccc add r1, pc                                        |     r1 = 0x47dca;
    0x00023cce bl 0x3ae40                                        |     zbx_json_adduint64 ();
                                                                 | label_29:
    0x00023cd2 ldr.w r1, [pc, 0x428]                             |     
    0x00023cd6 mov r0, r5                                        |     r0 = r5;
    0x00023cd8 vldr d0, [r4, 0x40]                               |     __asm ("vldr d0, [r4, 0x40]");
    0x00023cdc add r1, pc                                        |     r1 = 0x47dde;
    0x00023cde bl 0x3af08                                        |     zbx_json_addfloat ();
    0x00023ce2 ldr.w r1, [pc, 0x41c]                             |     
    0x00023ce6 mov r0, r5                                        |     r0 = r5;
    0x00023ce8 vldr d0, [r4, 0x48]                               |     __asm ("vldr d0, [r4, 0x48]");
    0x00023cec add r1, pc                                        |     r1 = 0x47df2;
    0x00023cee bl 0x3af08                                        |     zbx_json_addfloat ();
    0x00023cf2 ldr.w r1, [pc, 0x410]                             |     
    0x00023cf6 movs r3, 1                                        |     r3 = 1;
    0x00023cf8 ldr r2, [r4, 0x1c]                                |     r2 = *((r4 + 0x1c));
    0x00023cfa mov r0, r5                                        |     r0 = r5;
    0x00023cfc add r1, pc                                        |     r1 = 0x47e06;
    0x00023cfe bl 0x3ac9c                                        |     zbx_json_addstring ();
    0x00023d02 ldrd r2, r3, [r4, 0x50]                           |     __asm ("ldrd r2, r3, [r4, 0x50]");
    0x00023d06 cmp.w r3, -1                                      |     
    0x00023d0a it eq                                             |     
                                                                 |     if (r3 == -1) {
    0x00023d0c cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |     }
                                                                 |     if (r3 == -1) {
    0x00023d10 beq.w 0x242f6                                     |         goto label_133;
                                                                 |     }
    0x00023d14 ldr r1, [pc, 0x3f0]                               |     
    0x00023d16 mov r0, r5                                        |     r0 = r5;
    0x00023d18 add r1, pc                                        |     r1 = zbx_trim_float;
    0x00023d1a bl 0x3ae40                                        |     zbx_json_adduint64 ();
    0x00023d1c invalid                                           |     
                                                                 | label_28:
    0x00023d1e ldrd r2, r3, [r4, 0x58]                           |     __asm ("ldrd r2, r3, [r4, 0x58]");
    0x00023d22 cmp.w r3, -1                                      |     
    0x00023d26 it eq                                             |     
                                                                 |     if (r3 == -1) {
    0x00023d28 cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |     }
                                                                 |     if (r3 == -1) {
    0x00023d2c beq.w 0x242e2                                     |         goto label_134;
                                                                 |     }
    0x00023d30 ldr r1, [pc, 0x3d8]                               |     
    0x00023d32 mov r0, r5                                        |     r0 = r5;
    0x00023d34 add r1, pc                                        |     r1 = 0x47e44;
    0x00023d36 bl 0x3ae40                                        |     zbx_json_adduint64 ();
                                                                 | label_27:
    0x00023d3a ldrd r2, r3, [r4, 0x60]                           |     __asm ("ldrd r2, r3, [r4, 0x60]");
    0x00023d3e cmp.w r3, -1                                      |     
    0x00023d42 it eq                                             |     
                                                                 |     if (r3 == -1) {
    0x00023d44 cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |     }
                                                                 |     if (r3 == -1) {
    0x00023d48 beq.w 0x23ec2                                     |         goto label_115;
                                                                 |     }
    0x00023d4c ldr r1, [pc, 0x3c0]                               |     
    0x00023d4e mov r0, r5                                        |     r0 = r5;
    0x00023d50 adds r7, 1                                        |     r7++;
    0x00023d52 add r1, pc                                        |     r1 = 0x47e66;
    0x00023d54 bl 0x3ae40                                        |     zbx_json_adduint64 ();
    0x00023d58 mov r0, r5                                        |     r0 = r5;
    0x00023d5a bl 0x3af6c                                        |     zbx_json_close ();
    0x00023d5e cmp r7, sl                                        |     
                                                                 |     if (r7 != sl) {
    0x00023d60 bne.w 0x23a80                                     |         goto label_11;
                                                                 |     }
                                                                 | label_116:
    0x00023d64 ldrd r6, sb, [sp, 0x14]                           |     __asm ("ldrd r6, sb, [var_18h]");
    0x00023d68 movs r4, 0                                        |     r4 = 0;
    0x00023d6a ldr.w fp, [sp, 0x1c]                              |     fp = var_1ch;
                                                                 |     do {
    0x00023d6e ldr r0, [sb, 4]!                                  |         r0 = *((sb += 4));
    0x00023d72 adds r4, 1                                        |         r4++;
    0x00023d74 bl 0x2087c                                        |         fcn_0002087c (r0);
    0x00023d78 cmp r4, sl                                        |         
    0x00023d7a bne 0x23d6e                                       |         
                                                                 |     } while (r4 != sl);
                                                                 |     if (r6 != 0) {
                                                                 | label_63:
    0x00023d7c cbz r6, 0x23d88                                   |         
    0x00023d7e subw r3, fp, 0x838                                |         __asm ("subw r3, fp, 0x838");
    0x00023d82 mov r0, r6                                        |         r0 = r6;
    0x00023d84 ldr r3, [r3, 0x14]                                |         r3 = *((r3 + 0x14));
    0x00023d86 blx r3                                            |         uint32_t (*r3)(uint32_t, uint32_t) (r0, r3);
                                                                 |     }
    0x00023d88 mov r0, r5                                        |     r0 = r5;
    0x00023d8a bl 0x3af6c                                        |     zbx_json_close ();
    0x00023d8e ldr r4, [sp, 0x38]                                |     r4 = var_38h;
    0x00023d90 subw r3, fp, 0x81c                                |     __asm ("subw r3, fp, 0x81c");
    0x00023d94 ldr r0, [pc, 0x37c]                               |     
    0x00023d96 movs r2, 0                                        |     r2 = 0;
    0x00023d98 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00023d9a ldr r1, [r4, 0x28]                                |     r1 = *((r4 + 0x28));
    0x00023d9c add r0, pc                                        |     r0 = 0x47eb4;
    0x00023d9e orr r1, r1, 4                                     |     r1 |= 4;
    0x00023da2 str r1, [r4, 0x28]                                |     *((r4 + 0x28)) = r1;
    0x00023da4 movw r1, 0x873                                    |     r1 = 0x873;
    0x00023da8 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x00023dac str r0, [r4, 0x18]                                |     *((r4 + 0x18)) = r0;
    0x00023dae mov r0, r5                                        |     r0 = r5;
    0x00023db0 bl 0x3ac14                                        |     zbx_json_free ();
    0x00023db4 movs r0, 0                                        |     r0 = 0;
    0x00023db6 ldr r2, [pc, 0x360]                               |     
    0x00023db8 add.w r1, sp, 0x2880                              |     r1 += arg_2880h;
    0x00023dbc ldr r3, [pc, 0x23c]                               |     r3 = *(0x23ffc);
    0x00023dbe adds r1, 0x24                                     |     r1 += 0x24;
    0x00023dc0 add r2, pc                                        |     r2 = 0x47ede;
    0x00023dc2 ldr r3, [r2, r3]                                  |     r3 = *(0x47ede);
    0x00023dc4 ldr r2, [r3]                                      |     r2 = *(0x47ede);
    0x00023dc6 ldr r3, [r1]                                      |     r3 = *(r1);
    0x00023dc8 eors r2, r3                                       |     r2 ^= r3;
    0x00023dca mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x00023dce bne.w 0x24b5a                                     |         goto label_135;
                                                                 |     }
    0x00023dd2 add.w sp, sp, 0x2880                              |     
    0x00023dd6 add sp, 0x2c                                      |     
    0x00023dd8 vpop {d8, d9, d10}                                |     __asm ("vpop {d8, d9, d10}");
    0x00023ddc pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_93:
    0x00023de0 ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x00023de2 cmp r3, 2                                         |     
                                                                 |     if (r3 == 2) {
    0x00023de4 beq 0x23e1a                                       |         goto label_94;
                                                                 |     }
                                                                 | label_64:
    0x00023de6 mov r0, sl                                        |     r0 = sl;
    0x00023de8 blx 0xdf9c                                        |     r0 = fcn_0000df9c ();
    0x00023dec cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00023dee beq.w 0x24a6c                                     |         goto label_136;
                                                                 |     }
    0x00023df2 ldr r3, [r0]                                      |     r3 = *(r0);
    0x00023df4 movs r2, 0                                        |     r2 = 0;
    0x00023df6 ldr r0, [pc, 0x324]                               |     
    0x00023df8 movw r1, 0x78b                                    |     r1 = 0x78b;
    0x00023dfc add r0, pc                                        |     r0 = 0x47f1e;
    0x00023dfe bl 0x40ed8                                        |     zbx_strdup2 ();
    0x00023e02 mov r2, sb                                        |     r2 = sb;
    0x00023e04 mov sl, r0                                        |     sl = r0;
    0x00023e06 movs r1, 1                                        |     r1 = 1;
    0x00023e08 mov r0, r4                                        |     r0 = r4;
    0x00023e0a bl 0x21040                                        |     r0 = fcn_00021040 (r0, r1, r2, r3);
    0x00023e0e mov r5, r0                                        |     r5 = r0;
    0x00023e10 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00023e12 bne.w 0x2364e                                     |         goto label_12;
                                                                 |     }
    0x00023e14 add r4, sp, 0x70                                  |     r4 = sp + 0x70;
    0x00023e16 b.w 0x24994                                       |     goto label_96;
                                                                 | label_94:
    0x00023e1a movs r5, 0                                        |     r5 = 0;
    0x00023e1c mov sl, r5                                        |     sl = r5;
                                                                 | label_97:
    0x00023e1e ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
                                                                 |     if (r3 != 0) {
    0x00023e20 cbz r3, 0x23e28                                   |         
    0x00023e22 mov r0, r3                                        |         r0 = r3;
    0x00023e24 blx 0xdc8c                                        |         fcn_0000dc8c ();
                                                                 |     }
    0x00023e28 mov r3, r6                                        |     r3 = r6;
    0x00023e2a ldr r2, [pc, 0x2f4]                               |     
    0x00023e2c ldr r6, [sp, 0x18]                                |     r6 = var_18h;
    0x00023e2e mov.w r1, 0x800                                   |     r1 = 0x800;
    0x00023e32 add r2, pc                                        |     r2 = 0x47f58;
    0x00023e34 mov r0, r6                                        |     r0 = r6;
    0x00023e36 bl 0x43f38                                        |     zbx_snprintf ();
    0x00023e3a ldr r1, [pc, 0x2e8]                               |     
    0x00023e3c mov r0, r6                                        |     r0 = r6;
    0x00023e3e add r1, pc                                        |     r1 = 0x47f68;
    0x00023e40 blx 0xdf90                                        |     r0 = fcn_0000df90 ();
    0x00023e44 mov r1, r0                                        |     r1 = r0;
    0x00023e46 str r0, [sp, 0x2c]                                |     var_2ch = r0;
    0x00023e48 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00023e4a beq.w 0x23490                                     |         goto label_7;
                                                                 |     }
    0x00023e4e ldr r7, [sp, 0x20]                                |     r7 = var_20h;
    0x00023e50 mov r0, r4                                        |     r0 = r4;
    0x00023e52 mov r2, r7                                        |     r2 = r7;
    0x00023e54 bl 0x21718                                        |     r0 = fcn_00021718 (r0, r1, r2, r3, r4, r5, r6);
    0x00023e58 mov r6, r0                                        |     r6 = r0;
    0x00023e5a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00023e5c beq.w 0x23490                                     |         goto label_7;
                                                                 |     }
    0x00023e60 cmp r7, 0                                         |     
                                                                 |     if (r7 != 0) {
    0x00023e62 bne.w 0x24a14                                     |         goto label_137;
                                                                 |     }
    0x00023e66 subw r3, fp, 0x854                                |     __asm ("subw r3, fp, 0x854");
    0x00023e6a ldr r3, [r3]                                      |     r3 = *(r3);
    0x00023e6c str r3, [r0]                                      |     *(r0) = r3;
    0x00023e6e ldrd r2, r3, [sb, -0x8]                           |     __asm ("ldrd r2, r3, [sb, -0x8]");
    0x00023e72 strd r2, r3, [r0, 0x30]                           |     __asm ("strd r2, r3, [r0, 0x30]");
    0x00023e76 ldrd r2, r3, [sb]                                 |     __asm ("ldrd r2, r3, [sb]");
    0x00023e7a strd r2, r3, [r0, 0x38]                           |     __asm ("strd r2, r3, [r0, 0x38]");
                                                                 | label_61:
    0x00023e7e ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x00023e80 subw r8, fp, 0x85c                                |     __asm ("subw r8, fp, 0x85c");
    0x00023e84 strd sl, r5, [r6, 0x28]                           |     __asm ("strd sl, r5, [r6, 0x28]");
    0x00023e88 mov r1, r6                                        |     r1 = r6;
    0x00023e8a movs r5, 0                                        |     r5 = 0;
    0x00023e8c str r3, [r6, 0x18]                                |     *((r6 + 0x18)) = r3;
    0x00023e8e mov sl, r5                                        |     sl = r5;
    0x00023e90 ldr.w r3, [r8]                                    |     r3 = *(r8);
    0x00023e94 str r3, [r6, 0x10]                                |     *((r6 + 0x10)) = r3;
    0x00023e96 ldr r3, [sp, 0x34]                                |     r3 = var_34h;
    0x00023e98 sub.w r0, r3, 0x38                                |     r0 = r3 - 0x38;
    0x00023e9c bl 0x21164                                        |     zbx_vector_proc_data_ptr_append ();
    0x00023ea0 subw r3, fp, 0x858                                |     __asm ("subw r3, fp, 0x858");
    0x00023ea4 str.w r5, [r8]                                    |     __asm ("str.w r5, [r8]");
    0x00023ea8 str r5, [r3]                                      |     *(r3) = r5;
    0x00023eaa b.w 0x23490                                       |     goto label_7;
    0x00023eac revsh r1, r6                                      |     __asm ("revsh r1, r6");
                                                                 | label_89:
    0x00023eae movs r5, 0                                        |     r5 = 0;
    0x00023eb0 mov sl, r5                                        |     sl = r5;
    0x00023eb2 b.w 0x23490                                       |     goto label_7;
                                                                 | label_86:
    0x00023eb6 movs r4, 0                                        |     r4 = 0;
    0x00023eb8 mov r5, r4                                        |     r5 = r4;
    0x00023eba mov sl, r4                                        |     sl = r4;
    0x00023ebc str r4, [sp, 0x10]                                |     var_10h = r4;
    0x00023ebe b.w 0x23490                                       |     goto label_7;
                                                                 |     do {
                                                                 | label_115:
    0x00023ec2 ldr r1, [pc, 0x264]                               |         
    0x00023ec4 mov r0, r5                                        |         r0 = r5;
    0x00023ec6 mov.w r2, -1                                      |         r2 = -1;
    0x00023eca mov.w r3, -1                                      |         r3 = -1;
    0x00023ece add r1, pc                                        |         r1 = 0x47ffc;
    0x00023ed0 bl 0x3aea4                                        |         zbx_json_addint64 ();
    0x00023ed4 b 0x23a72                                         |         goto label_13;
                                                                 | label_101:
    0x00023ed6 ldr r1, [pc, 0x254]                               |         
    0x00023ed8 movs r3, 0                                        |         r3 = 0;
    0x00023eda ldr r2, [r4]                                      |         r2 = *(r4);
    0x00023edc mov r0, r5                                        |         r0 = r5;
    0x00023ede add r1, pc                                        |         r1 = 0x48010;
    0x00023ee0 bl 0x3ae40                                        |         zbx_json_adduint64 ();
    0x00023ee4 ldrd r2, r3, [r4, 8]                              |         __asm ("ldrd r2, r3, [r4, 8]");
    0x00023ee8 cmp.w r3, -1                                      |         
    0x00023eec it eq                                             |         
                                                                 |         if (r3 == -1) {
    0x00023eee cmpeq r2, -1                                      |             __asm ("cmpeq r2, -1");
                                                                 |         }
                                                                 |         if (r3 == -1) {
    0x00023ef2 beq.w 0x24512                                     |             goto label_138;
                                                                 |         }
    0x00023ef6 ldr r1, [pc, 0x238]                               |         
    0x00023ef8 mov r0, r5                                        |         r0 = r5;
    0x00023efa add r1, pc                                        |         r1 = 0x48030;
    0x00023efc bl 0x3ae40                                        |         zbx_json_adduint64 ();
                                                                 | label_49:
    0x00023f00 ldr r1, [pc, 0x230]                               |         
    0x00023f02 movs r3, 1                                        |         r3 = 1;
    0x00023f04 ldr r2, [r4, 0x10]                                |         r2 = *((r4 + 0x10));
    0x00023f06 mov r0, r5                                        |         r0 = r5;
    0x00023f08 add r1, pc                                        |         r1 = 0x48040;
    0x00023f0a bl 0x3ac9c                                        |         zbx_json_addstring ();
    0x00023f0e ldr r1, [pc, 0x228]                               |         
    0x00023f10 movs r3, 1                                        |         r3 = 1;
    0x00023f12 ldr r2, [r4, 0x28]                                |         r2 = *((r4 + 0x28));
    0x00023f14 mov r0, r5                                        |         r0 = r5;
    0x00023f16 add r1, pc                                        |         r1 = 0x48054;
    0x00023f18 bl 0x3ac9c                                        |         zbx_json_addstring ();
    0x00023f1c ldr r1, [pc, 0x21c]                               |         
    0x00023f1e movs r3, 1                                        |         r3 = 1;
    0x00023f20 ldr r2, [r4, 0x2c]                                |         r2 = *((r4 + 0x2c));
    0x00023f22 mov r0, r5                                        |         r0 = r5;
    0x00023f24 add r1, pc                                        |         r1 = 0x48064;
    0x00023f26 bl 0x3ac9c                                        |         zbx_json_addstring ();
    0x00023f2a ldrd r2, r3, [r4, 0x30]                           |         __asm ("ldrd r2, r3, [r4, 0x30]");
    0x00023f2e cmp.w r3, -1                                      |         
    0x00023f32 it eq                                             |         
                                                                 |         if (r3 == -1) {
    0x00023f34 cmpeq r2, -1                                      |             __asm ("cmpeq r2, -1");
                                                                 |         }
                                                                 |         if (r3 == -1) {
    0x00023f38 beq.w 0x244fe                                     |             goto label_139;
                                                                 |         }
    0x00023f3c ldr r1, [pc, 0x200]                               |         
    0x00023f3e mov r0, r5                                        |         r0 = r5;
    0x00023f40 add r1, pc                                        |         r1 = 0x48084;
    0x00023f42 bl 0x3ae40                                        |         zbx_json_adduint64 ();
                                                                 | label_48:
    0x00023f46 ldrd r2, r3, [r4, 0x38]                           |         __asm ("ldrd r2, r3, [r4, 0x38]");
    0x00023f4a cmp.w r3, -1                                      |         
    0x00023f4e it eq                                             |         
                                                                 |         if (r3 == -1) {
    0x00023f50 cmpeq r2, -1                                      |             __asm ("cmpeq r2, -1");
                                                                 |         }
                                                                 |         if (r3 == -1) {
    0x00023f54 beq.w 0x244ea                                     |             goto label_140;
                                                                 |         }
    0x00023f58 ldr r1, [pc, 0x1e8]                               |         
    0x00023f5a mov r0, r5                                        |         r0 = r5;
    0x00023f5c add r1, pc                                        |         r1 = 0x480a4;
    0x00023f5e bl 0x3ae40                                        |         zbx_json_adduint64 ();
                                                                 | label_47:
    0x00023f62 ldr r1, [pc, 0x1e4]                               |         
    0x00023f64 movs r3, 0                                        |         r3 = 0;
    0x00023f66 ldr r2, [r4, 4]                                   |         r2 = *((r4 + 4));
    0x00023f68 mov r0, r5                                        |         r0 = r5;
    0x00023f6a add r1, pc                                        |         r1 = 0x480b8;
    0x00023f6c bl 0x3ae40                                        |         zbx_json_adduint64 ();
    0x00023f70 ldr r1, [pc, 0x1d8]                               |         
    0x00023f72 movs r3, 1                                        |         r3 = 1;
    0x00023f74 ldr r2, [r4, 0x14]                                |         r2 = *((r4 + 0x14));
    0x00023f76 mov r0, r5                                        |         r0 = r5;
    0x00023f78 add r1, pc                                        |         r1 = 0x480c8;
    0x00023f7a bl 0x3ac9c                                        |         zbx_json_addstring ();
    0x00023f7e ldr r1, [pc, 0x1d0]                               |         
    0x00023f80 mov r0, r5                                        |         r0 = r5;
    0x00023f82 vldr d0, [r4, 0x40]                               |         __asm ("vldr d0, [r4, 0x40]");
    0x00023f86 add r1, pc                                        |         r1 = 0x480dc;
    0x00023f88 bl 0x3af08                                        |         zbx_json_addfloat ();
    0x00023f8c ldr r1, [pc, 0x1c4]                               |         
    0x00023f8e mov r0, r5                                        |         r0 = r5;
    0x00023f90 vldr d0, [r4, 0x48]                               |         __asm ("vldr d0, [r4, 0x48]");
    0x00023f94 add r1, pc                                        |         r1 = 0x480ec;
    0x00023f96 bl 0x3af08                                        |         zbx_json_addfloat ();
    0x00023f9a ldr r1, [pc, 0x1bc]                               |         
    0x00023f9c movs r3, 1                                        |         r3 = 1;
    0x00023f9e ldr r2, [r4, 0x1c]                                |         r2 = *((r4 + 0x1c));
    0x00023fa0 mov r0, r5                                        |         r0 = r5;
    0x00023fa2 add r1, pc                                        |         r1 = 0x48100;
    0x00023fa4 bl 0x3ac9c                                        |         zbx_json_addstring ();
    0x00023fa8 ldrd r2, r3, [r4, 0x50]                           |         __asm ("ldrd r2, r3, [r4, 0x50]");
    0x00023fac cmp.w r3, -1                                      |         
    0x00023fb0 it eq                                             |         
                                                                 |         if (r3 == -1) {
    0x00023fb2 cmpeq r2, -1                                      |             __asm ("cmpeq r2, -1");
                                                                 |         }
                                                                 |         if (r3 == -1) {
    0x00023fb6 beq.w 0x244d6                                     |             goto label_141;
                                                                 |         }
    0x00023fba ldr r1, [pc, 0x1a0]                               |         
    0x00023fbc mov r0, r5                                        |         r0 = r5;
    0x00023fbe add r1, pc                                        |         r1 = 0x48120;
    0x00023fc0 bl 0x3ae40                                        |         zbx_json_adduint64 ();
                                                                 | label_46:
    0x00023fc4 ldrd r2, r3, [r4, 0x60]                           |         __asm ("ldrd r2, r3, [r4, 0x60]");
    0x00023fc8 cmp.w r3, -1                                      |         
    0x00023fcc it eq                                             |         
                                                                 |         if (r3 == -1) {
    0x00023fce cmpeq r2, -1                                      |             __asm ("cmpeq r2, -1");
                                                                 |         }
    0x00023fd2 beq.w 0x23ec2                                     |         
                                                                 |     } while (r3 == -1);
    0x00023fd6 ldr r1, [pc, 0x188]                               |     
    0x00023fd8 mov r0, r5                                        |     r0 = r5;
    0x00023fda add r1, pc                                        |     r1 = 0x48140;
    0x00023fdc bl 0x3ae40                                        |     zbx_json_adduint64 ();
    0x00023fe0 b 0x23a72                                         |     goto label_13;
                                                                 | label_102:
    0x00023fe2 ldr r1, [pc, 0x180]                               |     
    0x00023fe4 mov r0, r5                                        |     r0 = r5;
    0x00023fe6 mov.w r2, -1                                      |     r2 = -1;
    0x00023fea mov.w r3, -1                                      |     r3 = -1;
    0x00023fee add r1, pc                                        |     r1 = 0x48158;
    0x00023ff0 bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x00023ff4 b 0x238c0                                         |     goto label_14;
                                                                 | label_104:
    0x00024168 ldr.w r1, [pc, 0x414]                             |     r1 = *(0x00024580);
    0x0002416c mov.w r2, -1                                      |     r2 = -1;
    0x00024170 mov.w r3, -1                                      |     r3 = -1;
    0x00024174 mov r0, r5                                        |     r0 = r5;
    0x00024176 add r1, pc                                        |     r1 += pc;
    0x00024178 bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x0002417c ldrd r2, r3, [r4, 0x88]                           |     __asm ("ldrd r2, r3, [r4, 0x88]");
    0x00024180 cmp.w r3, -1                                      |     
    0x00024184 it eq                                             |     
                                                                 |     if (r3 != -1) {
    0x00024186 cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |         goto label_142;
                                                                 |     }
                                                                 |     if (r3 != -1) {
                                                                 | label_142:
    0x0002418a bne.w 0x2391a                                     |         goto label_15;
                                                                 |     }
    0x0002418c add r3, sp, 0x318                                 |     r3 = sp + 0x318;
                                                                 | label_105:
    0x0002418e ldr r1, [pc, 0x3f4]                               |     
    0x00024190 mov.w r2, -1                                      |     r2 = -1;
    0x00024194 mov.w r3, -1                                      |     r3 = -1;
    0x00024198 mov r0, r5                                        |     r0 = r5;
    0x0002419a add r1, pc                                        |     r1 = 0x48724;
    0x0002419c bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x000241a0 ldrd r2, r3, [r4, 0x98]                           |     __asm ("ldrd r2, r3, [r4, 0x98]");
    0x000241a4 cmp.w r3, -1                                      |     
    0x000241a8 it eq                                             |     
                                                                 |     if (r3 != -1) {
    0x000241aa cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |         goto label_143;
                                                                 |     }
                                                                 |     if (r3 != -1) {
                                                                 | label_143:
    0x000241ae bne.w 0x23938                                     |         goto label_16;
                                                                 |     }
                                                                 | label_106:
    0x000241b2 ldr r1, [pc, 0x3d4]                               |     
    0x000241b4 mov.w r2, -1                                      |     r2 = -1;
    0x000241b8 mov.w r3, -1                                      |     r3 = -1;
    0x000241bc mov r0, r5                                        |     r0 = r5;
    0x000241be add r1, pc                                        |     r1 = 0x4874c;
    0x000241c0 bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x000241c4 ldrd r2, r3, [r4, 0xa0]                           |     __asm ("ldrd r2, r3, [r4, 0xa0]");
    0x000241c8 cmp.w r3, -1                                      |     
    0x000241cc it eq                                             |     
                                                                 |     if (r3 != -1) {
    0x000241ce cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |         goto label_144;
                                                                 |     }
                                                                 |     if (r3 != -1) {
                                                                 | label_144:
    0x000241d2 bne.w 0x23956                                     |         goto label_17;
                                                                 |     }
                                                                 | label_107:
    0x000241d6 ldr r1, [pc, 0x3b4]                               |     
    0x000241d8 mov.w r2, -1                                      |     r2 = -1;
    0x000241dc mov.w r3, -1                                      |     r3 = -1;
    0x000241e0 mov r0, r5                                        |     r0 = r5;
    0x000241e2 add r1, pc                                        |     r1 = zbx_timespec_str;
    0x000241e4 bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x000241e8 ldrd r2, r3, [r4, 0xb0]                           |     __asm ("ldrd r2, r3, [r4, 0xb0]");
    0x000241ec cmp.w r3, -1                                      |     
    0x000241f0 it eq                                             |     
                                                                 |     if (r3 != -1) {
    0x000241f2 cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |         goto label_145;
                                                                 |     }
                                                                 |     if (r3 != -1) {
                                                                 | label_145:
    0x000241f6 bne.w 0x23974                                     |         goto label_18;
                                                                 |     }
                                                                 | label_108:
    0x000241fa ldr r1, [pc, 0x394]                               |     
    0x000241fc mov.w r2, -1                                      |     r2 = -1;
    0x00024200 mov.w r3, -1                                      |     r3 = -1;
    0x00024204 mov r0, r5                                        |     r0 = r5;
    0x00024206 add r1, pc                                        |     r1 = 0x4879c;
    0x00024208 bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x0002420c ldrd r2, r3, [r4, 0xb8]                           |     __asm ("ldrd r2, r3, [r4, 0xb8]");
    0x00024210 cmp.w r3, -1                                      |     
    0x00024214 it eq                                             |     
                                                                 |     if (r3 != -1) {
    0x00024216 cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |         goto label_146;
                                                                 |     }
                                                                 |     if (r3 != -1) {
                                                                 | label_146:
    0x0002421a bne.w 0x23992                                     |         goto label_19;
                                                                 |     }
                                                                 | label_109:
    0x0002421e ldr r1, [pc, 0x374]                               |     
    0x00024220 mov.w r2, -1                                      |     r2 = -1;
    0x00024224 mov.w r3, -1                                      |     r3 = -1;
    0x00024228 mov r0, r5                                        |     r0 = r5;
    0x0002422a add r1, pc                                        |     r1 = 0x487c4;
    0x0002422c bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x00024230 ldrd r2, r3, [r4, 0xc0]                           |     __asm ("ldrd r2, r3, [r4, 0xc0]");
    0x00024234 cmp.w r3, -1                                      |     
    0x00024238 it eq                                             |     
                                                                 |     if (r3 != -1) {
    0x0002423a cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |         goto label_147;
                                                                 |     }
                                                                 |     if (r3 != -1) {
                                                                 | label_147:
    0x0002423e bne.w 0x239b0                                     |         goto label_20;
                                                                 |     }
                                                                 | label_110:
    0x00024242 ldr r1, [pc, 0x354]                               |     
    0x00024244 mov.w r2, -1                                      |     r2 = -1;
    0x00024248 mov.w r3, -1                                      |     r3 = -1;
    0x0002424c mov r0, r5                                        |     r0 = r5;
    0x0002424e add r1, pc                                        |     r1 = 0x487ec;
    0x00024250 bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x00024254 ldrd r2, r3, [r4, 0xc8]                           |     __asm ("ldrd r2, r3, [r4, 0xc8]");
    0x00024258 cmp.w r3, -1                                      |     
    0x0002425c it eq                                             |     
                                                                 |     if (r3 != -1) {
    0x0002425e cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |         goto label_148;
                                                                 |     }
                                                                 |     if (r3 != -1) {
                                                                 | label_148:
    0x00024262 bne.w 0x239ce                                     |         goto label_21;
                                                                 |     }
                                                                 | label_111:
    0x00024266 ldr r1, [pc, 0x334]                               |     
    0x00024268 mov.w r2, -1                                      |     r2 = -1;
    0x0002426c mov.w r3, -1                                      |     r3 = -1;
    0x00024270 mov r0, r5                                        |     r0 = r5;
    0x00024272 add r1, pc                                        |     r1 = 0x48814;
    0x00024274 bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x00024278 ldrd r2, r3, [r4, 0xd0]                           |     __asm ("ldrd r2, r3, [r4, 0xd0]");
    0x0002427c cmp.w r3, -1                                      |     
    0x00024280 it eq                                             |     
                                                                 |     if (r3 != -1) {
    0x00024282 cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |         goto label_149;
                                                                 |     }
                                                                 |     if (r3 != -1) {
                                                                 | label_149:
    0x00024286 bne.w 0x239ec                                     |         goto label_22;
                                                                 |     }
    0x00024288 add r3, sp, 0x2c4                                 |     r3 = sp + 0x2c4;
                                                                 | label_112:
    0x0002428a ldr r1, [pc, 0x314]                               |     
    0x0002428c mov r0, r5                                        |     r0 = r5;
    0x0002428e mov.w r2, -1                                      |     r2 = -1;
    0x00024292 mov.w r3, -1                                      |     r3 = -1;
    0x00024296 add r1, pc                                        |     r1 = 0x4883c;
    0x00024298 bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x0002429c b.w 0x239f8                                       |     goto label_23;
                                                                 | label_103:
    0x000242a0 ldr r1, [pc, 0x300]                               |     
    0x000242a2 mov r0, r5                                        |     r0 = r5;
    0x000242a4 mov.w r2, -1                                      |     r2 = -1;
    0x000242a8 mov.w r3, -1                                      |     r3 = -1;
    0x000242ac add r1, pc                                        |     r1 = 0x48854;
    0x000242ae bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x000242b2 b.w 0x238ea                                       |     goto label_24;
                                                                 | label_114:
    0x000242b6 ldr r1, [pc, 0x2f0]                               |     
    0x000242b8 mov r0, r5                                        |     r0 = r5;
    0x000242ba mov.w r2, -1                                      |     r2 = -1;
    0x000242be mov.w r3, -1                                      |     r3 = -1;
    0x000242c2 add r1, pc                                        |     r1 = 0x48870;
    0x000242c4 bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x000242c8 b.w 0x23a54                                       |     goto label_25;
                                                                 | label_113:
    0x000242cc ldr r1, [pc, 0x2dc]                               |     
    0x000242ce mov r0, r5                                        |     r0 = r5;
    0x000242d0 mov.w r2, -1                                      |     r2 = -1;
    0x000242d4 mov.w r3, -1                                      |     r3 = -1;
    0x000242d8 add r1, pc                                        |     r1 = 0x48888;
    0x000242da bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x000242de b.w 0x23a36                                       |     goto label_26;
                                                                 | label_134:
    0x000242e2 ldr r1, [pc, 0x2cc]                               |     
    0x000242e4 mov r0, r5                                        |     r0 = r5;
    0x000242e6 mov.w r2, -1                                      |     r2 = -1;
    0x000242ea mov.w r3, -1                                      |     r3 = -1;
    0x000242ee add r1, pc                                        |     r1 = 0x488a4;
    0x000242f0 bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x000242f4 b 0x23d3a                                         |     goto label_27;
                                                                 | label_133:
    0x000242f6 ldr r1, [pc, 0x2bc]                               |     
    0x000242f8 mov r0, r5                                        |     r0 = r5;
    0x000242fa mov.w r2, -1                                      |     r2 = -1;
    0x000242fe mov.w r3, -1                                      |     r3 = -1;
    0x00024302 add r1, pc                                        |     r1 = zbx_tm_sub;
    0x00024304 bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x00024308 b 0x23d1e                                         |     goto label_28;
                                                                 | label_132:
    0x0002430a ldr r1, [pc, 0x2ac]                               |     
    0x0002430c mov r0, r5                                        |     r0 = r5;
    0x0002430e mov.w r2, -1                                      |     r2 = -1;
    0x00024312 mov.w r3, -1                                      |     r3 = -1;
    0x00024316 add r1, pc                                        |     r1 = 0x488d4;
    0x00024318 bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x0002431c b 0x23cd2                                         |     goto label_29;
                                                                 | label_131:
    0x0002431e ldr r1, [pc, 0x29c]                               |     
    0x00024320 mov r0, r5                                        |     r0 = r5;
    0x00024322 mov.w r2, -1                                      |     r2 = -1;
    0x00024326 mov.w r3, -1                                      |     r3 = -1;
    0x0002432a add r1, pc                                        |     r1 = 0x488ec;
    0x0002432c bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x00024330 b 0x23cb4                                         |     goto label_30;
                                                                 | label_130:
    0x00024332 ldr r1, [pc, 0x28c]                               |     
    0x00024334 mov r0, r5                                        |     r0 = r5;
    0x00024336 mov.w r2, -1                                      |     r2 = -1;
    0x0002433a mov.w r3, -1                                      |     r3 = -1;
    0x0002433e add r1, pc                                        |     r1 = 0x48904;
    0x00024340 bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x00024344 b 0x23c96                                         |     goto label_31;
                                                                 | label_129:
    0x00024346 ldr r1, [pc, 0x27c]                               |     
    0x00024348 mov r0, r5                                        |     r0 = r5;
    0x0002434a mov.w r2, -1                                      |     r2 = -1;
    0x0002434e mov.w r3, -1                                      |     r3 = -1;
    0x00024352 add r1, pc                                        |     r1 = 0x4891c;
    0x00024354 bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x00024358 b 0x23c78                                         |     goto label_32;
                                                                 | label_128:
    0x0002435a ldr r1, [pc, 0x26c]                               |     
    0x0002435c mov r0, r5                                        |     r0 = r5;
    0x0002435e mov.w r2, -1                                      |     r2 = -1;
    0x00024362 mov.w r3, -1                                      |     r3 = -1;
    0x00024366 add r1, pc                                        |     r1 = 0x48934;
    0x00024368 bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x0002436c b 0x23c5a                                         |     goto label_33;
                                                                 | label_127:
    0x0002436e ldr r1, [pc, 0x25c]                               |     
    0x00024370 mov r0, r5                                        |     r0 = r5;
    0x00024372 mov.w r2, -1                                      |     r2 = -1;
    0x00024376 mov.w r3, -1                                      |     r3 = -1;
    0x0002437a add r1, pc                                        |     r1 = 0x4894c;
    0x0002437c bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x00024380 b 0x23c3c                                         |     goto label_34;
                                                                 | label_126:
    0x00024382 ldr r1, [pc, 0x24c]                               |     
    0x00024384 mov r0, r5                                        |     r0 = r5;
    0x00024386 mov.w r2, -1                                      |     r2 = -1;
    0x0002438a mov.w r3, -1                                      |     r3 = -1;
    0x0002438e add r1, pc                                        |     r1 = 0x48964;
    0x00024390 bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x00024394 b 0x23c1e                                         |     goto label_35;
                                                                 | label_125:
    0x00024396 ldr r1, [pc, 0x23c]                               |     
    0x00024398 mov r0, r5                                        |     r0 = r5;
    0x0002439a mov.w r2, -1                                      |     r2 = -1;
    0x0002439e mov.w r3, -1                                      |     r3 = -1;
    0x000243a2 add r1, pc                                        |     r1 = 0x4897c;
    0x000243a4 bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x000243a8 b 0x23c00                                         |     goto label_36;
                                                                 | label_124:
    0x000243aa ldr r1, [pc, 0x22c]                               |     
    0x000243ac mov r0, r5                                        |     r0 = r5;
    0x000243ae mov.w r2, -1                                      |     r2 = -1;
    0x000243b2 mov.w r3, -1                                      |     r3 = -1;
    0x000243b6 add r1, pc                                        |     r1 = 0x48994;
    0x000243b8 bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x000243bc b 0x23be2                                         |     goto label_37;
                                                                 | label_123:
    0x000243be ldr r1, [pc, 0x21c]                               |     
    0x000243c0 mov r0, r5                                        |     r0 = r5;
    0x000243c2 mov.w r2, -1                                      |     r2 = -1;
    0x000243c6 mov.w r3, -1                                      |     r3 = -1;
    0x000243ca add r1, pc                                        |     r1 = 0x489ac;
    0x000243cc bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x000243d0 b.w 0x23bc4                                       |     goto label_38;
                                                                 | label_122:
    0x000243d4 ldr r1, [pc, 0x208]                               |     
    0x000243d6 mov r0, r5                                        |     r0 = r5;
    0x000243d8 mov.w r2, -1                                      |     r2 = -1;
    0x000243dc mov.w r3, -1                                      |     r3 = -1;
    0x000243e0 add r1, pc                                        |     r1 = 0x489c4;
    0x000243e2 bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x000243e6 b.w 0x23ba6                                       |     goto label_39;
                                                                 | label_121:
    0x000243ea ldr r1, [pc, 0x1f8]                               |     
    0x000243ec mov r0, r5                                        |     r0 = r5;
    0x000243ee mov.w r2, -1                                      |     r2 = -1;
    0x000243f2 mov.w r3, -1                                      |     r3 = -1;
    0x000243f6 add r1, pc                                        |     r1 = 0x489e0;
    0x000243f8 bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x000243fc b.w 0x23b88                                       |     goto label_40;
                                                                 | label_120:
    0x00024400 ldr r1, [pc, 0x1e4]                               |     
    0x00024402 mov r0, r5                                        |     r0 = r5;
    0x00024404 mov.w r2, -1                                      |     r2 = -1;
    0x00024408 mov.w r3, -1                                      |     r3 = -1;
    0x0002440c add r1, pc                                        |     r1 = 0x489f8;
    0x0002440e bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x00024412 b.w 0x23b5a                                       |     goto label_41;
                                                                 | label_119:
    0x00024416 ldr r1, [pc, 0x1d4]                               |     
    0x00024418 mov r0, r5                                        |     r0 = r5;
    0x0002441a mov.w r2, -1                                      |     r2 = -1;
    0x0002441e mov.w r3, -1                                      |     r3 = -1;
    0x00024420 adds r3, 0xff                                     |     r3 += 0xff;
    0x00024422 add r1, pc                                        |     r1 = 0x48a14;
    0x00024424 bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x00024428 b.w 0x23b3c                                       |     goto label_42;
                                                                 | label_118:
    0x0002442c ldr r1, [pc, 0x1c0]                               |     
    0x0002442e mov r0, r5                                        |     r0 = r5;
    0x00024430 mov.w r2, -1                                      |     r2 = -1;
    0x00024434 mov.w r3, -1                                      |     r3 = -1;
    0x00024438 add r1, pc                                        |     r1 = 0x48a2c;
    0x0002443a bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x0002443e b.w 0x23b1e                                       |     goto label_43;
                                                                 | label_117:
    0x00024442 ldr r1, [pc, 0x1b0]                               |     
    0x00024444 mov r0, r5                                        |     r0 = r5;
    0x00024446 mov.w r2, -1                                      |     r2 = -1;
    0x0002444a mov.w r3, -1                                      |     r3 = -1;
    0x0002444c adds r3, 0xff                                     |     r3 += 0xff;
    0x0002444e add r1, pc                                        |     r1 = 0x48a48;
    0x00024450 bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x00024454 b.w 0x23ac0                                       |     goto label_44;
                                                                 | label_90:
    0x00024458 ldr r1, [pc, 0x19c]                               |     
    0x0002445a ldr r0, [sp, 0x1c]                                |     r0 = var_1ch;
    0x0002445c add r1, pc                                        |     r1 = 0x48a58;
    0x0002445e blx 0xe388                                        |     r0 = fcn_0000e388 ();
    0x00024462 mov r5, r0                                        |     r5 = r0;
                                                                 |     if (r0 != 0) {
    0x00024464 cbz r0, 0x2446e                                   |         
    0x00024466 ldrb r3, [r0]                                     |         r3 = *(r0);
    0x00024468 strb.w r8, [r0]                                   |         *(r0) = r8;
    0x0002446c str r3, [sp, 0x24]                                |         var_24h = r3;
                                                                 |     }
    0x0002446e ldr r0, [sp, 0x1c]                                |     r0 = var_1ch;
    0x00024470 movs r1, 0x2f                                     |     r1 = 0x2f;
    0x00024472 blx 0xdda8                                        |     r0 = statvfs64 ();
    0x00024476 add.w sl, r0, 1                                   |     sl = r0 + 1;
    0x0002447a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002447c beq.w 0x24a0e                                     |         goto label_150;
                                                                 |     }
                                                                 | label_60:
    0x00024480 subw r3, fp, 0x85c                                |     __asm ("subw r3, fp, 0x85c");
    0x00024484 ldr.w r8, [r3]                                    |     r8 = *(r3);
    0x00024488 cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x0002448c beq.w 0x249c8                                     |         goto label_151;
                                                                 |     }
    0x00024490 mov r0, sl                                        |     r0 = sl;
    0x00024492 blx 0xdf68                                        |     fcn_0000df68 ();
    0x00024496 str r0, [sp, 0x44]                                |     var_44h = r0;
    0x00024498 mov r0, r8                                        |     r0 = r8;
    0x0002449a blx 0xdf68                                        |     fcn_0000df68 ();
    0x0002449e ldr r3, [sp, 0x44]                                |     r3 = var_44h;
    0x000244a0 cmp r3, r0                                        |     
                                                                 |     if (r3 > r0) {
    0x000244a2 bhi.w 0x249b8                                     |         goto label_152;
                                                                 |     }
                                                                 |     if (r5 != 0) {
                                                                 | label_56:
    0x000244a6 cbz r5, 0x244ac                                   |         
    0x000244a8 ldr r3, [sp, 0x24]                                |         r3 = var_24h;
    0x000244aa strb r3, [r5]                                     |         *(r5) = r3;
                                                                 |     }
    0x000244ac sub.w r2, fp, 0x850                               |     r2 = fp - 0x850;
    0x000244b0 ldr r1, [r2]                                      |     r1 = *(r2);
    0x000244b2 subs r3, r1, 2                                    |     r3 = r1 - 2;
    0x000244b4 str r3, [r2]                                      |     *(r2) = r3;
    0x000244b6 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x000244b8 beq.w 0x2359e                                     |         goto label_45;
                                                                 |     }
    0x000244bc ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x000244be subs r1, 3                                        |     r1 -= 3;
    0x000244c0 movs r0, 0x20                                     |     r0 = 0x20;
    0x000244c2 add r1, r3                                        |     r1 += r3;
    0x000244c4 subs r3, 1                                        |     r3--;
                                                                 |     do {
    0x000244c6 ldrb r2, [r3, 1]!                                 |         r2 = *((r3 += 1));
                                                                 |         if (r2 == 0) {
    0x000244ca cbnz r2, 0x244ce                                  |             
    0x000244cc strb r0, [r3]                                     |             *(r3) = r0;
                                                                 |         }
    0x000244ce cmp r1, r3                                        |         
    0x000244d0 bne 0x244c6                                       |         
                                                                 |     } while (r1 != r3);
    0x000244d2 b.w 0x2359e                                       |     goto label_45;
                                                                 | label_141:
    0x000244d6 ldr r1, [pc, 0x124]                               |     
    0x000244d8 mov r0, r5                                        |     r0 = r5;
    0x000244da mov.w r2, -1                                      |     r2 = -1;
    0x000244de mov.w r3, -1                                      |     r3 = -1;
    0x000244e2 add r1, pc                                        |     r1 = iprange_parse;
    0x000244e4 bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x000244e8 b 0x23fc4                                         |     goto label_46;
                                                                 | label_140:
    0x000244ea ldr r1, [pc, 0x114]                               |     
    0x000244ec mov r0, r5                                        |     r0 = r5;
    0x000244ee mov.w r2, -1                                      |     r2 = -1;
    0x000244f2 mov.w r3, -1                                      |     r3 = -1;
    0x000244f6 add r1, pc                                        |     r1 = 0x48afc;
    0x000244f8 bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x000244fc b 0x23f62                                         |     goto label_47;
                                                                 | label_139:
    0x000244fe ldr r1, [pc, 0x104]                               |     
    0x00024500 mov r0, r5                                        |     r0 = r5;
    0x00024502 mov.w r2, -1                                      |     r2 = -1;
    0x00024506 mov.w r3, -1                                      |     r3 = -1;
    0x0002450a add r1, pc                                        |     r1 = 0x48b14;
    0x0002450c bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x00024510 b 0x23f46                                         |     goto label_48;
                                                                 | label_138:
    0x00024512 ldr r1, [pc, 0xf4]                                |     
    0x00024514 mov r0, r5                                        |     r0 = r5;
    0x00024516 mov.w r2, -1                                      |     r2 = -1;
    0x0002451a mov.w r3, -1                                      |     r3 = -1;
    0x0002451e add r1, pc                                        |     r1 = 0x48b2c;
    0x00024520 bl 0x3aea4                                        |     zbx_json_addint64 ();
    0x00024524 b 0x23f00                                         |     goto label_49;
                                                                 | label_92:
    0x00024526 ldr r3, [sp, 0x3c]                                |     r3 = var_3ch;
    0x00024528 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0002452a beq.w 0x2360e                                     |         goto label_50;
                                                                 |     }
    0x0002452e ldr r3, [sp, 0x3c]                                |     r3 = var_3ch;
    0x00024530 ldrb r3, [r3]                                     |     r3 = *(r3);
    0x00024532 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00024534 beq.w 0x2360e                                     |         goto label_50;
                                                                 |     }
    0x00024538 b.w 0x235fe                                       |     goto label_51;
                                                                 | label_100:
    0x0002453c cmp.w sl, 0                                       |     
                                                                 |     if (sl <= 0) {
    0x00024540 ble.w 0x24a90                                     |         goto label_153;
                                                                 |     }
    0x00024544 mov.w sb, 0                                       |     sb = 0;
    0x00024548 mov r3, sl                                        |     r3 = sl;
    0x0002454a vldr d9, [pc, 0x2c]                               |     __asm ("vldr d9, [0x0002457c]");
    0x0002454e mov sl, sb                                        |     sl = sb;
    0x00024550 ldr.w sb, [sp, 0x34]                              |     sb = var_34h;
    0x00024554 vmov.i8 d8, 0xff                                  |     __asm ("vmov.i8 d8, 0xff");
    0x00024558 vmov.f64 d10, -1.000000e+00                       |     __asm ("vmov.f64 d10, -1");
                                                                 | label_53:
    0x0002455c ldr.w r4, [r6, sl, lsl 2]                         |     offset_0 = sl << 2;
                                                                 |     r4 = *((r6 + offset_0));
    0x00024560 add.w sl, sl, 1                                   |     sl++;
    0x00024564 cmp sl, r3                                        |     
    0x00024566 vstr d9, [r4, 0x20]                               |     __asm ("vstr d9, [r4, 0x20]");
                                                                 |     if (sl >= r3) {
    0x0002456a bge.w 0x24966                                     |         goto label_154;
                                                                 |     }
    0x0002456e mov r7, sl                                        |     r7 = sl;
    0x00024570 b 0x24618                                         |     
                                                                 |     while (r0 != 0) {
    0x0002460c ldr.w r3, [r8, 4]                                 |         r3 = *((r8 + 4));
    0x00024610 adds r7, 1                                        |         r7++;
    0x00024612 cmp r3, r7                                        |         
                                                                 |         if (r3 <= r7) {
    0x00024614 ble.w 0x24960                                     |             goto label_155;
                                                                 |         }
                                                                 | label_52:
    0x00024618 ldr.w r5, [r6, r7, lsl 2]                         |         offset_1 = r7 << 2;
                                                                 |         r5 = *((r6 + offset_1));
    0x0002461c ldr r0, [r4, 0x10]                                |         r0 = *((r4 + 0x10));
    0x0002461e ldr r1, [r5, 0x10]                                |         r1 = *((r5 + 0x10));
    0x00024620 blx 0xe3b0                                        |         r0 = fcn_0000e3b0 ();
    0x00024624 cmp r0, 0                                         |         
    0x00024626 bne 0x2460c                                       |         
                                                                 |     }
    0x00024628 ldr r3, [r4, 0x20]                                |     r3 = *((r4 + 0x20));
    0x0002462a adds r3, 1                                        |     r3++;
    0x0002462c str r3, [r4, 0x20]                                |     *((r4 + 0x20)) = r3;
    0x0002462e ldr r3, [r4, 0x24]                                |     r3 = *((r4 + 0x24));
    0x00024630 adc r3, r3, 0                                     |     __asm ("adc r3, r3, 0");
    0x00024634 str r3, [r4, 0x24]                                |     *((r4 + 0x24)) = r3;
    0x00024636 ldrd r3, r2, [r4, 0x68]                           |     __asm ("ldrd r3, r2, [r4, 0x68]");
    0x0002463a cmp.w r2, -1                                      |     
    0x0002463e it eq                                             |     
                                                                 |     if (r2 == -1) {
    0x00024640 cmpeq r3, -1                                      |         __asm ("cmpeq r3, -1");
                                                                 |     }
                                                                 |     if (r2 != -1) {
    0x00024644 beq 0x24666                                       |         
    0x00024646 ldrd r1, r0, [r5, 0x68]                           |         __asm ("ldrd r1, r0, [r5, 0x68]");
    0x0002464a cmp.w r0, -1                                      |         
    0x0002464e it eq                                             |         
                                                                 |         if (r0 == -1) {
    0x00024650 cmpeq r1, -1                                      |             __asm ("cmpeq r1, -1");
                                                                 |         }
    0x00024654 it eq                                             |         
                                                                 |         if (r0 == -1) {
    0x00024656 vstreq d8, [r4, 0x68]                             |             __asm ("vstreq d8, [r4, 0x68]");
                                                                 |         }
                                                                 |         if (r0 == -1) {
    0x0002465a beq 0x24666                                       |             goto label_156;
                                                                 |         }
    0x0002465c adds r3, r3, r1                                   |         r3 += r1;
    0x0002465e adc.w r2, r2, r0                                  |         __asm ("adc.w r2, r2, r0");
    0x00024662 strd r3, r2, [r4, 0x68]                           |         __asm ("strd r3, r2, [r4, 0x68]");
                                                                 |     }
                                                                 | label_156:
    0x00024666 ldrd r3, r2, [r4, 0x78]                           |     __asm ("ldrd r3, r2, [r4, 0x78]");
    0x0002466a cmp.w r2, -1                                      |     
    0x0002466e it eq                                             |     
                                                                 |     if (r2 == -1) {
    0x00024670 cmpeq r3, -1                                      |         __asm ("cmpeq r3, -1");
                                                                 |     }
                                                                 |     if (r2 != -1) {
    0x00024674 beq 0x24696                                       |         
    0x00024676 ldrd r1, r0, [r5, 0x78]                           |         __asm ("ldrd r1, r0, [r5, 0x78]");
    0x0002467a cmp.w r0, -1                                      |         
    0x0002467e it eq                                             |         
                                                                 |         if (r0 == -1) {
    0x00024680 cmpeq r1, -1                                      |             __asm ("cmpeq r1, -1");
                                                                 |         }
    0x00024684 it eq                                             |         
                                                                 |         if (r0 == -1) {
    0x00024686 vstreq d8, [r4, 0x78]                             |             __asm ("vstreq d8, [r4, 0x78]");
                                                                 |         }
                                                                 |         if (r0 == -1) {
    0x0002468a beq 0x24696                                       |             goto label_157;
                                                                 |         }
    0x0002468c adds r3, r3, r1                                   |         r3 += r1;
    0x0002468e adc.w r2, r2, r0                                  |         __asm ("adc.w r2, r2, r0");
    0x00024692 strd r3, r2, [r4, 0x78]                           |         __asm ("strd r3, r2, [r4, 0x78]");
                                                                 |     }
                                                                 | label_157:
    0x00024696 ldrd r3, r2, [r4, 0x80]                           |     __asm ("ldrd r3, r2, [r4, 0x80]");
    0x0002469a cmp.w r2, -1                                      |     
    0x0002469e it eq                                             |     
                                                                 |     if (r2 == -1) {
    0x000246a0 cmpeq r3, -1                                      |         __asm ("cmpeq r3, -1");
                                                                 |     }
                                                                 |     if (r2 != -1) {
    0x000246a4 beq 0x246c6                                       |         
    0x000246a6 ldrd r1, r0, [r5, 0x80]                           |         __asm ("ldrd r1, r0, [r5, 0x80]");
    0x000246aa cmp.w r0, -1                                      |         
    0x000246ae it eq                                             |         
                                                                 |         if (r0 == -1) {
    0x000246b0 cmpeq r1, -1                                      |             __asm ("cmpeq r1, -1");
                                                                 |         }
    0x000246b4 it eq                                             |         
                                                                 |         if (r0 == -1) {
    0x000246b6 vstreq d8, [r4, 0x80]                             |             __asm ("vstreq d8, [r4, 0x80]");
                                                                 |         }
    0x000246b8 ldrh r0, [r4, 0x18]                               |         r0 = *((r4 + 0x18));
                                                                 |         if (r0 == -1) {
    0x000246ba beq 0x246c6                                       |             goto label_158;
                                                                 |         }
    0x000246bc adds r3, r3, r1                                   |         r3 += r1;
    0x000246be adc.w r2, r2, r0                                  |         __asm ("adc.w r2, r2, r0");
    0x000246c2 strd r3, r2, [r4, 0x80]                           |         __asm ("strd r3, r2, [r4, 0x80]");
                                                                 |     }
                                                                 | label_158:
    0x000246c6 ldrd r3, r2, [r4, 0x88]                           |     __asm ("ldrd r3, r2, [r4, 0x88]");
    0x000246ca cmp.w r2, -1                                      |     
    0x000246ce it eq                                             |     
                                                                 |     if (r2 == -1) {
    0x000246d0 cmpeq r3, -1                                      |         __asm ("cmpeq r3, -1");
                                                                 |     }
                                                                 |     if (r2 != -1) {
    0x000246d4 beq 0x246f6                                       |         
    0x000246d6 ldrd r1, r0, [r5, 0x88]                           |         __asm ("ldrd r1, r0, [r5, 0x88]");
    0x000246da cmp.w r0, -1                                      |         
    0x000246de it eq                                             |         
                                                                 |         if (r0 == -1) {
    0x000246e0 cmpeq r1, -1                                      |             __asm ("cmpeq r1, -1");
                                                                 |         }
    0x000246e4 it eq                                             |         
                                                                 |         if (r0 == -1) {
    0x000246e6 vstreq d8, [r4, 0x88]                             |             __asm ("vstreq d8, [r4, 0x88]");
                                                                 |         }
                                                                 |         if (r0 == -1) {
    0x000246ea beq 0x246f6                                       |             goto label_159;
                                                                 |         }
    0x000246ec adds r3, r3, r1                                   |         r3 += r1;
    0x000246ee adc.w r2, r2, r0                                  |         __asm ("adc.w r2, r2, r0");
    0x000246f2 strd r3, r2, [r4, 0x88]                           |         __asm ("strd r3, r2, [r4, 0x88]");
                                                                 |     }
                                                                 | label_159:
    0x000246f6 ldrd r3, r2, [r4, 0x98]                           |     __asm ("ldrd r3, r2, [r4, 0x98]");
    0x000246fa cmp.w r2, -1                                      |     
    0x000246fe it eq                                             |     
                                                                 |     if (r2 == -1) {
    0x00024700 cmpeq r3, -1                                      |         __asm ("cmpeq r3, -1");
                                                                 |     }
                                                                 |     if (r2 != -1) {
    0x00024704 beq 0x24726                                       |         
    0x00024706 ldrd r1, r0, [r5, 0x98]                           |         __asm ("ldrd r1, r0, [r5, 0x98]");
    0x0002470a cmp.w r0, -1                                      |         
    0x0002470e it eq                                             |         
                                                                 |         if (r0 == -1) {
    0x00024710 cmpeq r1, -1                                      |             __asm ("cmpeq r1, -1");
                                                                 |         }
    0x00024714 it eq                                             |         
                                                                 |         if (r0 == -1) {
    0x00024716 vstreq d8, [r4, 0x98]                             |             __asm ("vstreq d8, [r4, 0x98]");
                                                                 |         }
                                                                 |         if (r0 == -1) {
    0x0002471a beq 0x24726                                       |             goto label_160;
                                                                 |         }
    0x0002471c adds r3, r3, r1                                   |         r3 += r1;
    0x0002471e adc.w r2, r2, r0                                  |         __asm ("adc.w r2, r2, r0");
    0x00024722 strd r3, r2, [r4, 0x98]                           |         __asm ("strd r3, r2, [r4, 0x98]");
                                                                 |     }
                                                                 | label_160:
    0x00024726 ldrd r3, r2, [r4, 0xa0]                           |     __asm ("ldrd r3, r2, [r4, 0xa0]");
    0x0002472a cmp.w r2, -1                                      |     
    0x0002472e it eq                                             |     
                                                                 |     if (r2 == -1) {
    0x00024730 cmpeq r3, -1                                      |         __asm ("cmpeq r3, -1");
                                                                 |     }
                                                                 |     if (r2 != -1) {
    0x00024734 beq 0x24756                                       |         
    0x00024736 ldrd r1, r0, [r5, 0xa0]                           |         __asm ("ldrd r1, r0, [r5, 0xa0]");
    0x0002473a cmp.w r0, -1                                      |         
    0x0002473e it eq                                             |         
                                                                 |         if (r0 == -1) {
    0x00024740 cmpeq r1, -1                                      |             __asm ("cmpeq r1, -1");
                                                                 |         }
    0x00024744 it eq                                             |         
                                                                 |         if (r0 == -1) {
    0x00024746 vstreq d8, [r4, 0xa0]                             |             __asm ("vstreq d8, [r4, 0xa0]");
                                                                 |         }
                                                                 |         if (r0 == -1) {
    0x0002474a beq 0x24756                                       |             goto label_161;
                                                                 |         }
    0x0002474c adds r3, r3, r1                                   |         r3 += r1;
    0x0002474e adc.w r2, r2, r0                                  |         __asm ("adc.w r2, r2, r0");
    0x00024752 strd r3, r2, [r4, 0xa0]                           |         __asm ("strd r3, r2, [r4, 0xa0]");
                                                                 |     }
                                                                 | label_161:
    0x00024756 ldrd r3, r2, [r4, 0xb0]                           |     __asm ("ldrd r3, r2, [r4, 0xb0]");
    0x0002475a cmp.w r2, -1                                      |     
    0x0002475e it eq                                             |     
                                                                 |     if (r2 == -1) {
    0x00024760 cmpeq r3, -1                                      |         __asm ("cmpeq r3, -1");
                                                                 |     }
                                                                 |     if (r2 != -1) {
    0x00024764 beq 0x24786                                       |         
    0x00024766 ldrd r1, r0, [r5, 0xb0]                           |         __asm ("ldrd r1, r0, [r5, 0xb0]");
    0x0002476a cmp.w r0, -1                                      |         
    0x0002476e it eq                                             |         
                                                                 |         if (r0 == -1) {
    0x00024770 cmpeq r1, -1                                      |             __asm ("cmpeq r1, -1");
                                                                 |         }
    0x00024774 it eq                                             |         
                                                                 |         if (r0 == -1) {
    0x00024776 vstreq d8, [r4, 0xb0]                             |             __asm ("vstreq d8, [r4, 0xb0]");
                                                                 |         }
                                                                 |         if (r0 == -1) {
    0x0002477a beq 0x24786                                       |             goto label_162;
                                                                 |         }
    0x0002477c adds r3, r3, r1                                   |         r3 += r1;
    0x0002477e adc.w r2, r2, r0                                  |         __asm ("adc.w r2, r2, r0");
    0x00024782 strd r3, r2, [r4, 0xb0]                           |         __asm ("strd r3, r2, [r4, 0xb0]");
                                                                 |     }
                                                                 | label_162:
    0x00024786 ldrd r3, r2, [r4, 0xb8]                           |     __asm ("ldrd r3, r2, [r4, 0xb8]");
    0x0002478a cmp.w r2, -1                                      |     
    0x0002478e it eq                                             |     
                                                                 |     if (r2 == -1) {
    0x00024790 cmpeq r3, -1                                      |         __asm ("cmpeq r3, -1");
                                                                 |     }
                                                                 |     if (r2 != -1) {
    0x00024794 beq 0x247b6                                       |         
    0x00024796 ldrd r1, r0, [r5, 0xb8]                           |         __asm ("ldrd r1, r0, [r5, 0xb8]");
    0x0002479a cmp.w r0, -1                                      |         
    0x0002479e it eq                                             |         
                                                                 |         if (r0 == -1) {
    0x000247a0 cmpeq r1, -1                                      |             __asm ("cmpeq r1, -1");
                                                                 |         }
    0x000247a4 it eq                                             |         
                                                                 |         if (r0 == -1) {
    0x000247a6 vstreq d8, [r4, 0xb8]                             |             __asm ("vstreq d8, [r4, 0xb8]");
                                                                 |         }
                                                                 |         if (r0 == -1) {
    0x000247aa beq 0x247b6                                       |             goto label_163;
                                                                 |         }
    0x000247ac adds r3, r3, r1                                   |         r3 += r1;
    0x000247ae adc.w r2, r2, r0                                  |         __asm ("adc.w r2, r2, r0");
    0x000247b2 strd r3, r2, [r4, 0xb8]                           |         __asm ("strd r3, r2, [r4, 0xb8]");
                                                                 |     }
                                                                 | label_163:
    0x000247b6 ldrd r3, r2, [r4, 0xc0]                           |     __asm ("ldrd r3, r2, [r4, 0xc0]");
    0x000247ba cmp.w r2, -1                                      |     
    0x000247be it eq                                             |     
                                                                 |     if (r2 == -1) {
    0x000247c0 cmpeq r3, -1                                      |         __asm ("cmpeq r3, -1");
                                                                 |     }
                                                                 |     if (r2 != -1) {
    0x000247c4 beq 0x247e6                                       |         
    0x000247c6 ldrd r1, r0, [r5, 0xc0]                           |         __asm ("ldrd r1, r0, [r5, 0xc0]");
    0x000247ca cmp.w r0, -1                                      |         
    0x000247ce it eq                                             |         
                                                                 |         if (r0 == -1) {
    0x000247d0 cmpeq r1, -1                                      |             __asm ("cmpeq r1, -1");
                                                                 |         }
    0x000247d4 it eq                                             |         
                                                                 |         if (r0 == -1) {
    0x000247d6 vstreq d8, [r4, 0xc0]                             |             __asm ("vstreq d8, [r4, 0xc0]");
                                                                 |         }
                                                                 |         if (r0 == -1) {
    0x000247da beq 0x247e6                                       |             goto label_164;
                                                                 |         }
    0x000247dc adds r3, r3, r1                                   |         r3 += r1;
    0x000247de adc.w r2, r2, r0                                  |         __asm ("adc.w r2, r2, r0");
    0x000247e2 strd r3, r2, [r4, 0xc0]                           |         __asm ("strd r3, r2, [r4, 0xc0]");
                                                                 |     }
                                                                 | label_164:
    0x000247e6 ldrd r3, r2, [r4, 0xc8]                           |     __asm ("ldrd r3, r2, [r4, 0xc8]");
    0x000247ea cmp.w r2, -1                                      |     
    0x000247ee it eq                                             |     
                                                                 |     if (r2 == -1) {
    0x000247f0 cmpeq r3, -1                                      |         __asm ("cmpeq r3, -1");
                                                                 |     }
                                                                 |     if (r2 != -1) {
    0x000247f4 beq 0x24816                                       |         
    0x000247f6 ldrd r1, r0, [r5, 0xc8]                           |         __asm ("ldrd r1, r0, [r5, 0xc8]");
    0x000247fa cmp.w r0, -1                                      |         
    0x000247fe it eq                                             |         
                                                                 |         if (r0 == -1) {
    0x00024800 cmpeq r1, -1                                      |             __asm ("cmpeq r1, -1");
                                                                 |         }
    0x00024804 it eq                                             |         
                                                                 |         if (r0 == -1) {
    0x00024806 vstreq d8, [r4, 0xc8]                             |             __asm ("vstreq d8, [r4, 0xc8]");
                                                                 |         }
                                                                 |         if (r0 == -1) {
    0x0002480a beq 0x24816                                       |             goto label_165;
                                                                 |         }
    0x0002480c adds r3, r3, r1                                   |         r3 += r1;
    0x0002480e adc.w r2, r2, r0                                  |         __asm ("adc.w r2, r2, r0");
    0x00024812 strd r3, r2, [r4, 0xc8]                           |         __asm ("strd r3, r2, [r4, 0xc8]");
                                                                 |     }
                                                                 | label_165:
    0x00024816 ldrd r3, r2, [r4, 0xd0]                           |     __asm ("ldrd r3, r2, [r4, 0xd0]");
    0x0002481a cmp.w r2, -1                                      |     
    0x0002481e it eq                                             |     
                                                                 |     if (r2 == -1) {
    0x00024820 cmpeq r3, -1                                      |         __asm ("cmpeq r3, -1");
                                                                 |     }
                                                                 |     if (r2 != -1) {
    0x00024824 beq 0x24846                                       |         
    0x00024826 ldrd r1, r0, [r5, 0xd0]                           |         __asm ("ldrd r1, r0, [r5, 0xd0]");
    0x0002482a cmp.w r0, -1                                      |         
    0x0002482e it eq                                             |         
                                                                 |         if (r0 == -1) {
    0x00024830 cmpeq r1, -1                                      |             __asm ("cmpeq r1, -1");
                                                                 |         }
    0x00024834 it eq                                             |         
                                                                 |         if (r0 == -1) {
    0x00024836 vstreq d8, [r4, 0xd0]                             |             __asm ("vstreq d8, [r4, 0xd0]");
                                                                 |         }
                                                                 |         if (r0 == -1) {
    0x0002483a beq 0x24846                                       |             goto label_166;
                                                                 |         }
    0x0002483c adds r3, r3, r1                                   |         r3 += r1;
    0x0002483e adc.w r2, r2, r0                                  |         __asm ("adc.w r2, r2, r0");
    0x00024842 strd r3, r2, [r4, 0xd0]                           |         __asm ("strd r3, r2, [r4, 0xd0]");
                                                                 |     }
                                                                 | label_166:
    0x00024846 ldrd r3, r2, [r4, 0x50]                           |     __asm ("ldrd r3, r2, [r4, 0x50]");
    0x0002484a cmp.w r2, -1                                      |     
    0x0002484e it eq                                             |     
                                                                 |     if (r2 == -1) {
    0x00024850 cmpeq r3, -1                                      |         __asm ("cmpeq r3, -1");
                                                                 |     }
                                                                 |     if (r2 != -1) {
    0x00024854 beq 0x24876                                       |         
    0x00024856 ldrd r1, r0, [r5, 0x50]                           |         __asm ("ldrd r1, r0, [r5, 0x50]");
    0x0002485a cmp.w r0, -1                                      |         
    0x0002485e it eq                                             |         
                                                                 |         if (r0 == -1) {
    0x00024860 cmpeq r1, -1                                      |             __asm ("cmpeq r1, -1");
                                                                 |         }
    0x00024864 it eq                                             |         
                                                                 |         if (r0 == -1) {
    0x00024866 vstreq d8, [r4, 0x50]                             |             __asm ("vstreq d8, [r4, 0x50]");
                                                                 |         }
    0x00024868 ldrh r4, [r2, 0x18]                               |         r4 = *((r2 + 0x18));
                                                                 |         if (r0 == -1) {
    0x0002486a beq 0x24876                                       |             goto label_167;
                                                                 |         }
    0x0002486c adds r3, r3, r1                                   |         r3 += r1;
    0x0002486e adc.w r2, r2, r0                                  |         __asm ("adc.w r2, r2, r0");
    0x00024872 strd r3, r2, [r4, 0x50]                           |         __asm ("strd r3, r2, [r4, 0x50]");
                                                                 |     }
                                                                 | label_167:
    0x00024876 ldrd r3, r2, [r4, 0x58]                           |     __asm ("ldrd r3, r2, [r4, 0x58]");
    0x0002487a cmp.w r2, -1                                      |     
    0x0002487e it eq                                             |     
                                                                 |     if (r2 == -1) {
    0x00024880 cmpeq r3, -1                                      |         __asm ("cmpeq r3, -1");
                                                                 |     }
                                                                 |     if (r2 != -1) {
    0x00024884 beq 0x248a6                                       |         
    0x00024886 ldrd r1, r0, [r5, 0x58]                           |         __asm ("ldrd r1, r0, [r5, 0x58]");
    0x0002488a cmp.w r0, -1                                      |         
    0x0002488e it eq                                             |         
                                                                 |         if (r0 == -1) {
    0x00024890 cmpeq r1, -1                                      |             __asm ("cmpeq r1, -1");
                                                                 |         }
    0x00024894 it eq                                             |         
                                                                 |         if (r0 == -1) {
    0x00024896 vstreq d8, [r4, 0x58]                             |             __asm ("vstreq d8, [r4, 0x58]");
                                                                 |         }
                                                                 |         if (r0 == -1) {
    0x0002489a beq 0x248a6                                       |             goto label_168;
                                                                 |         }
    0x0002489c adds r3, r3, r1                                   |         r3 += r1;
    0x0002489e adc.w r2, r2, r0                                  |         __asm ("adc.w r2, r2, r0");
    0x000248a0 lsls r0, r0, 8                                    |         r0 <<= 8;
    0x000248a2 strd r3, r2, [r4, 0x58]                           |         __asm ("strd r3, r2, [r4, 0x58]");
                                                                 |     }
                                                                 | label_168:
    0x000248a6 ldrd r3, r2, [r4, 0x60]                           |     __asm ("ldrd r3, r2, [r4, 0x60]");
    0x000248aa cmp.w r2, -1                                      |     
    0x000248ae it eq                                             |     
                                                                 |     if (r2 == -1) {
    0x000248b0 cmpeq r3, -1                                      |         __asm ("cmpeq r3, -1");
                                                                 |     }
                                                                 |     if (r2 != -1) {
    0x000248b4 beq 0x248d6                                       |         
    0x000248b6 ldrd r1, r0, [r5, 0x60]                           |         __asm ("ldrd r1, r0, [r5, 0x60]");
    0x000248ba cmp.w r0, -1                                      |         
    0x000248be it eq                                             |         
                                                                 |         if (r0 == -1) {
    0x000248c0 cmpeq r1, -1                                      |             __asm ("cmpeq r1, -1");
                                                                 |         }
    0x000248c4 it eq                                             |         
                                                                 |         if (r0 == -1) {
    0x000248c6 vstreq d8, [r4, 0x60]                             |             __asm ("vstreq d8, [r4, 0x60]");
                                                                 |         }
                                                                 |         if (r0 == -1) {
    0x000248ca beq 0x248d6                                       |             goto label_169;
                                                                 |         }
    0x000248cc adds r3, r3, r1                                   |         r3 += r1;
    0x000248ce adc.w r2, r2, r0                                  |         __asm ("adc.w r2, r2, r0");
    0x000248d2 strd r3, r2, [r4, 0x60]                           |         __asm ("strd r3, r2, [r4, 0x60]");
                                                                 |     }
                                                                 | label_169:
    0x000248d6 vldr d16, [r4, 0x70]                              |     __asm ("vldr d16, [r4, 0x70]");
    0x000248da vcmpe.f64 d16, 0                                  |     __asm ("vcmpe.f64 d16, 0");
    0x000248de vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |     if (r3 >= r3) {
    0x000248e2 blt 0x248fa                                       |         
    0x000248e4 vldr d17, [r5, 0x70]                              |         __asm ("vldr d17, [r5, 0x70]");
    0x000248e8 vcmpe.f64 d17, 0                                  |         __asm ("vcmpe.f64 d17, 0");
    0x000248ec vmrs apsr_nzcv, fpscr                             |         __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |         if (r3 < r3) {
    0x000248f0 blt 0x249ec                                       |             goto label_170;
                                                                 |         }
    0x000248f2 vadd.f64 d16, d16, d17                            |         __asm ("vadd.f64 d16, d16, d17");
    0x000248f6 vstr d16, [r4, 0x70]                              |         __asm ("vstr d16, [r4, 0x70]");
                                                                 |     }
                                                                 | label_57:
    0x000248fa vldr d16, [r4, 0x40]                              |     __asm ("vldr d16, [r4, 0x40]");
    0x000248fe vcmpe.f64 d16, 0                                  |     __asm ("vcmpe.f64 d16, 0");
    0x00024902 vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |     if (r3 >= r3) {
    0x00024906 blt 0x2491e                                       |         
    0x00024908 vldr d17, [r5, 0x40]                              |         __asm ("vldr d17, [r5, 0x40]");
    0x0002490c vcmpe.f64 d17, 0                                  |         __asm ("vcmpe.f64 d17, 0");
    0x00024910 vmrs apsr_nzcv, fpscr                             |         __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |         if (r3 < r3) {
    0x00024914 blt 0x249f2                                       |             goto label_171;
                                                                 |         }
    0x00024916 vadd.f64 d16, d16, d17                            |         __asm ("vadd.f64 d16, d16, d17");
    0x0002491a vstr d16, [r4, 0x40]                              |         __asm ("vstr d16, [r4, 0x40]");
                                                                 |     }
                                                                 | label_58:
    0x0002491e vldr d16, [r4, 0x48]                              |     __asm ("vldr d16, [r4, 0x48]");
    0x00024922 vcmpe.f64 d16, 0                                  |     __asm ("vcmpe.f64 d16, 0");
    0x00024926 vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |     if (r3 >= r3) {
    0x0002492a blt 0x24942                                       |         
    0x0002492c vldr d17, [r5, 0x48]                              |         __asm ("vldr d17, [r5, 0x48]");
    0x00024930 vcmpe.f64 d17, 0                                  |         __asm ("vcmpe.f64 d17, 0");
    0x00024934 vmrs apsr_nzcv, fpscr                             |         __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |         if (r3 < r3) {
    0x00024938 blt 0x249f8                                       |             goto label_172;
                                                                 |         }
    0x0002493a vadd.f64 d16, d16, d17                            |         __asm ("vadd.f64 d16, d16, d17");
    0x0002493e vstr d16, [r4, 0x48]                              |         __asm ("vstr d16, [r4, 0x48]");
                                                                 |     }
                                                                 | label_59:
    0x00024942 mov r0, r5                                        |     r0 = r5;
    0x00024944 bl 0x2087c                                        |     fcn_0002087c (r0);
    0x00024948 mov r1, r7                                        |     r1 = r7;
    0x0002494a sub.w r0, sb, 0x38                                |     r0 = sb - 0x38;
    0x0002494e bl 0x212b0                                        |     zbx_vector_proc_data_ptr_remove ();
    0x00024952 ldr.w r3, [r8, 4]                                 |     r3 = *((r8 + 4));
    0x00024956 ldr.w r6, [r8]                                    |     r6 = *(r8);
    0x00024958 str r0, [r0]                                      |     *(r0) = r0;
    0x0002495a cmp r3, r7                                        |     
                                                                 |     if (r3 > r7) {
    0x0002495c bgt.w 0x24618                                     |         goto label_52;
                                                                 |     }
                                                                 | label_155:
    0x00024960 cmp r3, sl                                        |     
                                                                 |     if (r3 > sl) {
    0x00024962 bgt.w 0x2455c                                     |         goto label_53;
                                                                 |     }
                                                                 | label_154:
    0x00024966 mov sl, r3                                        |     sl = r3;
    0x00024968 b.w 0x23842                                       |     goto label_54;
                                                                 | label_96:
    0x00024994 ldrd r8, r7, [sb]                                 |     __asm ("ldrd r8, r7, [sb]");
    0x00024998 mov r0, r8                                        |     r0 = r8;
    0x0002499a blx 0xe1b8                                        |     r0 = fcn_0000e1b8 ();
    0x0002499e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000249a0 beq 0x24a5a                                       |         goto label_173;
                                                                 |     }
    0x000249a2 ldr r3, [r0]                                      |     r3 = *(r0);
    0x000249a4 mov r2, r5                                        |     r2 = r5;
    0x000249a6 ldr r0, [pc, 0x1c0]                               |     
    0x000249a8 mov.w r1, 0x798                                   |     r1 = 0x798;
    0x000249ac add r0, pc                                        |     r0 = 0x4951a;
    0x000249ae bl 0x40ed8                                        |     r0 = zbx_strdup2 ();
    0x000249b2 mov r5, r0                                        |     r5 = r0;
    0x000249b4 b.w 0x2366e                                       |     goto label_55;
                                                                 | label_152:
    0x000249b8 mov r2, r0                                        |     r2 = r0;
    0x000249ba mov r1, r8                                        |     r1 = r8;
    0x000249bc mov r0, sl                                        |     r0 = sl;
    0x000249be blx 0xe2c8                                        |     r0 = fcn_0000e2c8 ();
    0x000249c2 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000249c4 bne.w 0x244a6                                     |         goto label_56;
                                                                 |     }
                                                                 | label_151:
    0x000249c8 ldr r0, [pc, 0x1a0]                               |     
    0x000249ca mov r3, sl                                        |     r3 = sl;
    0x000249cc mov r2, r8                                        |     r2 = r8;
    0x000249ce movw r1, 0x76c                                    |     r1 = 0x76c;
    0x000249d0 strb r4, [r5, 5]                                  |     *((r5 + 5)) = r4;
    0x000249d2 add r0, pc                                        |     r0 = 0x49542;
    0x000249d4 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x000249d8 subw r3, fp, 0x85c                                |     __asm ("subw r3, fp, 0x85c");
    0x000249dc str r0, [r3]                                      |     *(r3) = r0;
    0x000249de b 0x244a6                                         |     goto label_56;
                                                                 | label_170:
    0x000249ec vstr d10, [r4, 0x70]                              |     __asm ("vstr d10, [r4, 0x70]");
    0x000249f0 b 0x248fa                                         |     goto label_57;
                                                                 | label_171:
    0x000249f2 vstr d10, [r4, 0x40]                              |     __asm ("vstr d10, [r4, 0x40]");
    0x000249f6 b 0x2491e                                         |     goto label_58;
                                                                 | label_172:
    0x000249f8 vstr d10, [r4, 0x48]                              |     __asm ("vstr d10, [r4, 0x48]");
    0x000249fc b 0x24942                                         |     goto label_59;
                                                                 | label_150:
    0x00024a0e ldr.w sl, [sp, 0x1c]                              |     sl = var_1ch;
    0x00024a12 b 0x24480                                         |     goto label_60;
                                                                 | label_137:
    0x00024a14 ldr r0, [sp, 0x1c]                                |     r0 = var_1ch;
    0x00024a16 blx 0xde30                                        |     fcn_0000de30 ();
    0x00024a1a cmp.w sl, 0                                       |     
                                                                 |     if (sl != 0) {
    0x00024a1e beq 0x24a26                                       |         
    0x00024a20 mov r0, sl                                        |         r0 = sl;
    0x00024a22 blx 0xde30                                        |         fcn_0000de30 ();
                                                                 |     }
                                                                 |     if (r5 != 0) {
    0x00024a26 cbz r5, 0x24a2e                                   |         
    0x00024a28 mov r0, r5                                        |         r0 = r5;
    0x00024a2a blx 0xde30                                        |         fcn_0000de30 ();
                                                                 |     }
    0x00024a2e movs r3, 0                                        |     r3 = 0;
    0x00024a30 mov r5, r3                                        |     r5 = r3;
    0x00024a32 mov sl, r3                                        |     sl = r3;
    0x00024a34 str r3, [sp, 0x1c]                                |     var_1ch = r3;
    0x00024a36 b.w 0x23e7e                                       |     goto label_61;
                                                                 | label_173:
    0x00024a5a ldr r1, [pc, 0x114]                               |     
    0x00024a5c mov r2, r8                                        |     r2 = r8;
    0x00024a5e mov r3, r7                                        |     r3 = r7;
    0x00024a60 add r1, pc                                        |     r1 = 0x495d6;
    0x00024a62 bl 0x44820                                        |     r0 = zbx_dsprintf ()
    0x00024a66 mov r5, r0                                        |     r5 = r0;
    0x00024a68 b.w 0x2366e                                       |     goto label_55;
                                                                 | label_136:
    0x00024a6c ldr r1, [pc, 0x104]                               |     
    0x00024a6e mov r2, sl                                        |     r2 = sl;
    0x00024a70 mov r3, r8                                        |     r3 = r8;
    0x00024a72 add r1, pc                                        |     r1 = 0x495ea;
    0x00024a74 bl 0x44820                                        |     r0 = zbx_dsprintf ()
    0x00024a78 mov sl, r0                                        |     sl = r0;
    0x00024a7a b.w 0x2363c                                       |     goto label_62;
                                                                 | label_153:
    0x00024a90 ldr r3, [sp, 0x34]                                |     r3 = var_34h;
    0x00024a92 mov.w r1, 0x1000                                  |     r1 = 0x1000;
    0x00024a96 sub.w r5, r3, 0x1c                                |     r5 = r3 - 0x1c;
    0x00024a9a mov r0, r5                                        |     r0 = r5;
    0x00024a9c bl 0x3ab5c                                        |     zbx_json_initarray ();
    0x00024aa0 b.w 0x23d7c                                       |     goto label_63;
                                                                 | label_95:
    0x00024ad0 ldrd sl, r8, [sb, -0x8]                           |     __asm ("ldrd sl, r8, [sb, -0x8]");
    0x00024ad4 b.w 0x23de6                                       |     goto label_64;
                                                                 | label_87:
    0x00024b18 ldr.w sl, [sp, 0x10]                              |     sl = var_10h;
    0x00024b1c mov r4, sl                                        |     r4 = sl;
    0x00024b1e mov r5, sl                                        |     r5 = sl;
    0x00024b20 b.w 0x23490                                       |     goto label_7;
                                                                 | label_88:
    0x00024b24 mov r5, r0                                        |     r5 = r0;
    0x00024b26 mov sl, r0                                        |     sl = r0;
    0x00024b28 b.w 0x23490                                       |     goto label_7;
                                                                 | label_99:
    0x00024b50 mov r0, r4                                        |     r0 = r4;
    0x00024b52 blx 0xdc8c                                        |     fcn_0000dc8c ();
    0x00024b56 b.w 0x236a2                                       |     goto label_8;
    0x00024b58 pop {r2, r5, r7, pc}                              |     
                                                                 | label_135:
    0x00024b5a blx 0xe158                                        |     fcn_0000e158 ();
    0x00024b5e nop                                               |     
    0x00024b60 add r4, sp, 0x368                                 |     r4 += arg_368h;
    0x00024b62 movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 != r0) {
                                                                 | label_65:
    0x00024b64 bne 0x24c4c                                       |         void (*0x24c4c)() ();
                                                                 |     }
    0x00024b66 movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 != r0) {
    0x00024b68 bne 0x24bfc                                       |         void (*0x24bfc)() ();
                                                                 |     }
    0x00024b6a movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 != r0) {
    0x00024b6c bne 0x24bb4                                       |         goto label_174;
                                                                 |     }
    0x00024b6e movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 < r0) {
    0x00024b70 blt 0x24bb4                                       |         goto label_174;
                                                                 |     }
    0x00024b72 movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 < r0) {
    0x00024b74 blt 0x24b94                                       |         void (*0x24b94)() ();
                                                                 |     }
    0x00024b76 movs r2, r0                                       |     r2 = r0;
    0x00024b78 add r3, sp, 0x360                                 |     r3 += arg_360h;
    0x00024b7a movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 == r0) {
    0x00024b7c beq 0x24b8c                                       |         void (*0x24b8c)() ();
                                                                 |     }
    0x00024b7e movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 != r0) {
    0x00024b80 bne 0x24c50                                       |         void (*0x24c50)() ();
                                                                 |     }
    0x00024b82 movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 != r0) {
    0x00024b84 bne 0x24b64                                       |         goto label_65;
                                                                 |     }
    0x00024b86 movs r2, r0                                       |     r2 = r0;
                                                                 | label_174:
    0x00024bb4 str r0, [sp, 0x280]                               |     *(arg_280h) = r0;
    0x00024bb6 mov r6, r1                                        |     r6 = r1;
    0x00024bb8 add.w r8, sp, 0x8c                                |     r8 += arg_8ch;
    0x00024bbc add sl, pc                                        |     sl += pc;
    0x00024bbe add sb, pc                                        |     sb += pc;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x23344 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.PROC_GET ()                                      | void PROC_GET (int16_t arg_68h, int16_t arg_8ch, int16_t arg_a8h, int16_t arg_2880h, int16_t arg1, int16_t arg2) {
                                                                 |     int16_t var_85ch;
                                                                 |     int16_t var_858h;
                                                                 |     int16_t var_838h;
                                                                 |     int16_t var_834h;
                                                                 |     int16_t var_2880h;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     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;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00023344 ldr.w r2, [pc, 0xcb0]                             |     r2 = *(0x00023ff8);
    0x00023348 ldr.w r3, [pc, 0xcb0]                             |     
    0x0002334c push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00023350 mov r4, r0                                        |     r4 = r0;
    0x00023352 vpush {d8, d9, d10}                               |     __asm ("vpush {d8, d9, d10}");
    0x00023356 sub.w sp, sp, 0x2880                              |     
    0x0002335a sub sp, 0x2c                                      |     
    0x0002335c movs r0, 0                                        |     r0 = 0;
    0x0002335e add r2, pc                                        |     r2 += pc;
    0x00023360 str r0, [sp, 0x24]                                |     var_24h = r0;
    0x00023362 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00023364 add.w r6, sp, 0x2880                              |     r6 += arg_2880h;
    0x00023368 addw fp, sp, 0x8a8                                |     __asm ("addw fp, sp, 0x8a8");
    0x0002336c ldr.w r5, [pc, 0xc90]                             |     r5 = *(0x00024000);
    0x00023370 subw r2, fp, 0x85c                                |     __asm ("subw r2, fp, 0x85c");
    0x00023374 adds r6, 0x24                                     |     r6 += 0x24;
    0x00023376 ldr r3, [r3]                                      |     r3 = *(0x23ffc);
    0x00023378 str r3, [r6]                                      |     *(r6) = r3;
    0x0002337a mov.w r3, 0                                       |     r3 = 0;
    0x0002337e ldr r3, [r4, 4]                                   |     r3 = *((r4 + 4));
    0x00023380 str r0, [r2]                                      |     *(r2) = r0;
    0x00023382 subw r2, fp, 0x858                                |     __asm ("subw r2, fp, 0x858");
    0x00023384 lsls r0, r3, 9                                    |     r0 = r3 << 9;
    0x00023386 add r5, pc                                        |     r5 += pc;
    0x00023388 str r1, [sp, 0x38]                                |     var_38h = r1;
    0x0002338a cmp r3, 4                                         |     
    0x0002338c str r0, [r2]                                      |     *(r2) = r0;
                                                                 |     if (r3 > 4) {
    0x0002338e bgt.w 0x2496c                                     |         goto label_6;
                                                                 |     }
    0x00023392 cmp r3, 0                                         |     
                                                                 |     if (r3 > 0) {
    0x00023394 ble 0x23430                                       |         
    0x00023396 ldr r2, [r4, 8]                                   |         r2 = *((r4 + 8));
    0x00023398 cmp r3, 1                                         |         
    0x0002339a ldr r1, [r2]                                      |         r1 = *(r2);
    0x0002339c str r1, [sp, 0x30]                                |         var_30h = r1;
                                                                 |         if (r3 == 1) {
    0x0002339e beq.w 0x249e0                                     |             goto label_7;
                                                                 |         }
    0x000233a2 ldr r1, [r2, 4]                                   |         r1 = *((r2 + 4));
    0x000233a4 str r1, [sp, 0x28]                                |         var_28h = r1;
    0x000233a6 cmp r1, 0                                         |         
                                                                 |         if (r1 == 0) {
    0x000233a8 beq.w 0x249fe                                     |             goto label_8;
                                                                 |         }
    0x000233ac ldrb r1, [r1]                                     |         r1 = *(r1);
    0x000233ae cmp r1, 0                                         |         
                                                                 |         if (r1 != 0) {
    0x000233b0 bne.w 0x24a3a                                     |             goto label_9;
                                                                 |         }
    0x000233b4 cmp r3, 2                                         |         
                                                                 |         if (r3 == 2) {
    0x000233b6 beq.w 0x249e0                                     |             goto label_7;
                                                                 |         }
    0x000233ba ldr r1, [sp, 0x24]                                |         r1 = var_24h;
    0x000233bc str r1, [sp, 0x28]                                |         var_28h = r1;
                                                                 | label_0:
    0x000233be ldr r1, [r2, 8]                                   |         r1 = *((r2 + 8));
    0x000233c0 cmp r3, 3                                         |         
    0x000233c2 itt eq                                            |         
                                                                 |         if (r3 != 3) {
    0x000233c4 moveq r3, 0                                       |             r3 = 0;
                                                                 |         }
                                                                 |         if (r3 != 3) {
    0x000233c6 streq r3, [sp, 0x20]                              |             var_20h = r3;
                                                                 |         }
    0x000233c8 str r1, [sp, 0x3c]                                |         var_3ch = r1;
                                                                 |         if (r3 == 3) {
    0x000233ca beq 0x2343a                                       |             goto label_1;
                                                                 |         }
    0x000233cc ldr r6, [r2, 0xc]                                 |         r6 = *((r2 + 0xc));
    0x000233ce movs r4, 0                                        |         r4 = 0;
    0x000233d0 cmp r6, 0                                         |         
                                                                 |         if (r6 == 0) {
    0x000233d2 beq.w 0x24aa4                                     |             goto label_10;
                                                                 |         }
    0x000233d4 strh r7, [r4, 0x1a]                               |         *((r4 + 0x1a)) = r7;
                                                                 | label_4:
    0x000233d6 ldrb r3, [r6]                                     |         r3 = *(r6);
                                                                 |         if (r3 != 0) {
    0x000233d8 cbz r3, 0x2341c                                   |             
    0x000233da ldr.w r1, [pc, 0xc28]                             |             
    0x000233de mov r0, r6                                        |             r0 = r6;
    0x000233e0 add r1, pc                                        |             r1 = 0x473ea;
    0x000233e2 blx 0xe3b0                                        |             fcn_0000e3b0 ();
    0x000233e6 str r0, [sp, 0x20]                                |             var_20h = r0;
                                                                 |             if (r0 == 0) {
    0x000233e8 cbz r0, 0x2341e                                   |                 goto label_2;
                                                                 |             }
    0x000233ea ldr.w r1, [pc, 0xc1c]                             |             
    0x000233ee mov r0, r6                                        |             r0 = r6;
    0x000233f0 add r1, pc                                        |             r1 = 0x473fe;
    0x000233f2 blx 0xe3b0                                        |             r0 = fcn_0000e3b0 ();
    0x000233f6 cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x000233f8 beq.w 0x24a88                                     |                 goto label_11;
                                                                 |             }
    0x000233fc ldr.w r1, [pc, 0xc0c]                             |             r1 = *(0x0002400c);
    0x00023400 mov r0, r6                                        |             r0 = r6;
    0x00023402 add r1, pc                                        |             r1 += pc;
    0x00023404 blx 0xe3b0                                        |             r0 = fcn_0000e3b0 ();
    0x00023408 cmp r0, 0                                         |             
                                                                 |             if (r0 != 0) {
    0x0002340a bne.w 0x24ad8                                     |                 goto label_12;
                                                                 |             }
    0x0002340c strh r5, [r4, 0x1a]                               |             *((r4 + 0x1a)) = r5;
    0x0002340e ldr r3, [sp, 0x3c]                                |             r3 = var_3ch;
                                                                 |             if (r3 != 0) {
    0x00023410 cbz r3, 0x2341a                                   |                 
    0x00023412 ldrb r3, [r3]                                     |                 r3 = *(r3);
    0x00023414 cmp r3, 0                                         |                 
                                                                 |                 if (r3 != 0) {
    0x00023416 bne.w 0x24ad8                                     |                     goto label_12;
                                                                 |                 }
                                                                 |             }
    0x0002341a movs r3, 2                                        |             r3 = 2;
                                                                 |         }
    0x0002341c str r3, [sp, 0x20]                                |         var_20h = r3;
                                                                 |         if (r4 == 0) {
                                                                 | label_2:
    0x0002341e cbz r4, 0x2343a                                   |             goto label_1;
                                                                 |         }
                                                                 | label_3:
    0x00023420 add r5, sp, 0x8c                                  |         r5 += arg_8ch;
    0x00023422 mov.w r1, 0x1000                                  |         r1 = 0x1000;
    0x00023426 mov r0, r5                                        |         r0 = r5;
    0x00023428 bl 0x3ab5c                                        |         zbx_json_initarray ();
    0x0002342c b.w 0x23d88                                       |         void (*0x23d88)() ();
                                                                 |     }
    0x00023430 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x00023432 str r3, [sp, 0x3c]                                |     var_3ch = r3;
    0x00023434 str r3, [sp, 0x28]                                |     var_28h = r3;
    0x00023436 str r3, [sp, 0x20]                                |     var_20h = r3;
    0x00023438 str r3, [sp, 0x30]                                |     var_30h = r3;
                                                                 |     do {
                                                                 | label_1:
    0x0002343a ldr.w r0, [pc, 0xbd4]                             |         r0 = *(0x00024010);
    0x0002343e add r0, pc                                        |         r0 += pc;
    0x00023440 blx 0xdbdc                                        |         fcn_0000dbdc ();
    0x00023444 str r0, [sp, 0x14]                                |         var_14h = r0;
    0x00023446 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00023448 beq.w 0x24b2c                                     |             goto label_13;
                                                                 |         }
    0x0002344c vmov.i32 d16, 0                                   |         __asm ("vmov.i32 d16, 0");
    0x00023450 subw r3, fp, 0x834                                |         __asm ("subw r3, fp, 0x834");
    0x00023454 ldr.w r2, [pc, 0xbbc]                             |         r2 = *(0x24014);
    0x00023458 movs r1, 0                                        |         r1 = 0;
    0x0002345a add.w sb, sp, 0x68                                |         sb += arg_68h;
    0x0002345e mov r4, r1                                        |         r4 = r1;
    0x00023460 vst1.32 {d16}, [r3]                               |         __asm ("vst1.32 {d16}, [r3]");
    0x00023464 subw r3, fp, 0x838                                |         __asm ("subw r3, fp, 0x838");
    0x00023468 str r1, [r3]                                      |         *(r3) = r1;
    0x0002346a mov sl, r1                                        |         sl = r1;
    0x0002346c ldr r2, [r5, r2]                                  |         r2 = *((r5 + r2));
    0x0002346e str r1, [sp, 0x2c]                                |         var_2ch = r1;
    0x00023470 str r2, [r3, 0xc]                                 |         *((r3 + 0xc)) = r2;
    0x00023472 ldr.w r2, [pc, 0xba4]                             |         r2 = *(0x2401a);
    0x00023474 cmp r3, 0xa4                                      |         
    0x00023476 ldr r2, [r5, r2]                                  |         r2 = *((r5 + r2));
    0x00023478 str r2, [r3, 0x10]                                |         *((r3 + 0x10)) = r2;
    0x0002347a ldr.w r2, [pc, 0xba0]                             |         r2 = *(0x2401e);
    0x0002347e ldr r2, [r5, r2]                                  |         r2 = *((r5 + r2));
    0x00023480 mov r5, r1                                        |         r5 = r1;
    0x00023482 str r1, [sp, 0x10]                                |         var_10h = r1;
    0x00023484 str r2, [r3, 0x14]                                |         *((r3 + 0x14)) = r2;
    0x00023486 add r3, sp, 0xa8                                  |         r3 += arg_a8h;
    0x00023488 str r3, [sp, 0x34]                                |         var_34h = r3;
    0x0002348a sub.w r3, sb, 0xc                                 |         r3 = sb - 0xc;
    0x0002348e str r3, [sp, 0x40]                                |         var_40h = r3;
                                                                 | label_6:
    0x0002496c ldr r0, [r1, 0x28]                                |         r0 = *((r1 + 0x28));
    0x0002496e mov r4, r1                                        |         r4 = r1;
    0x00024970 ldr r3, [pc, 0x1ec]                               |         
    0x00024972 movs r2, 0                                        |         r2 = 0;
    0x00024974 movw r1, 0x6fc                                    |         r1 = 0x6fc;
    0x00024978 orr r0, r0, 0x20                                  |         r0 |= 0x20;
    0x0002497c str r0, [r4, 0x28]                                |         *((r4 + 0x28)) = r0;
    0x0002497e add r3, pc                                        |         r3 = 0x494e2;
    0x00024980 ldr r0, [pc, 0x1e0]                               |         
    0x00024982 add r0, pc                                        |         r0 = 0x494ea;
    0x00024984 bl 0x40ed8                                        |         r0 = zbx_strdup2 ();
    0x00024988 mov r3, r0                                        |         r3 = r0;
                                                                 | label_5:
    0x0002498a ldr r2, [sp, 0x38]                                |         r2 = var_38h;
    0x0002498c movs r0, 1                                        |         r0 = 1;
    0x0002498e str r3, [r2, 0x20]                                |         *((r2 + 0x20)) = r3;
    0x00024990 b.w 0x23db6                                       |         void (*0x23db6)() ();
                                                                 | label_7:
    0x000249e0 ldr r3, [sp, 0x24]                                |         r3 = var_24h;
    0x000249e2 str r3, [sp, 0x3c]                                |         var_3ch = r3;
    0x000249e4 str r3, [sp, 0x28]                                |         var_28h = r3;
    0x000249e6 str r3, [sp, 0x20]                                |         var_20h = r3;
    0x000249e8 b.w 0x2343a                                       |         
                                                                 |     } while (1);
                                                                 | label_8:
    0x000249fe cmp r3, 2                                         |     
                                                                 |     if (r3 != 2) {
    0x00024a00 bne.w 0x233be                                     |         goto label_0;
                                                                 |     }
    0x00024a04 ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x00024a06 str r3, [sp, 0x3c]                                |     var_3ch = r3;
    0x00024a08 str r3, [sp, 0x20]                                |     var_20h = r3;
    0x00024a0a b.w 0x2343a                                       |     goto label_1;
                                                                 | label_9:
    0x00024a3a blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x00024a3e mov r6, r0                                        |     r6 = r0;
    0x00024a40 ldrd r3, r0, [sp, 0x24]                           |     __asm ("ldrd r3, r0, [var_24h]");
    0x00024a44 str r3, [r6]                                      |     *(r6) = r3;
    0x00024a46 blx 0xe3f8                                        |     fcn_0000e3f8 ();
    0x00024a4a str r0, [sp, 0x28]                                |     var_28h = r0;
                                                                 |     if (r0 != 0) {
    0x00024a4c cbz r0, 0x24aaa                                   |         
    0x00024a4e ldr r3, [r4, 4]                                   |         r3 = *((r4 + 4));
    0x00024a50 cmp r3, 2                                         |         
                                                                 |         if (r3 > 2) {
    0x00024a52 ble 0x24a7e                                       |             
    0x00024a54 ldr r2, [r4, 8]                                   |             r2 = *((r4 + 8));
    0x00024a56 b.w 0x233be                                       |             goto label_0;
                                                                 |         }
    0x00024a7e ldr r3, [sp, 0x24]                                |         r3 = var_24h;
    0x00024a80 str r3, [sp, 0x3c]                                |         var_3ch = r3;
    0x00024a82 str r3, [sp, 0x20]                                |         var_20h = r3;
    0x00024a84 b.w 0x2343a                                       |         goto label_1;
                                                                 | label_11:
    0x00024a88 movs r3, 1                                        |         r3 = 1;
    0x00024a8a str r3, [sp, 0x20]                                |         var_20h = r3;
    0x00024a8c b.w 0x2341e                                       |         goto label_2;
                                                                 | label_10:
    0x00024aa4 str r6, [sp, 0x20]                                |         var_20h = r6;
    0x00024aa6 b.w 0x2343a                                       |         goto label_1;
                                                                 |     }
    0x00024aaa ldr r3, [r6]                                      |     r3 = *(r6);
                                                                 |     if (r3 != 0) {
    0x00024aac cbnz r3, 0x24af8                                  |         goto label_14;
                                                                 |     }
    0x00024aae ldr r2, [r4, 4]                                   |     r2 = *((r4 + 4));
    0x00024ab0 cmp r2, 2                                         |     
                                                                 |     if (r2 <= 2) {
    0x00024ab2 ble.w 0x23420                                     |         goto label_3;
                                                                 |     }
    0x00024ab6 ldr r3, [r4, 8]                                   |     r3 = *((r4 + 8));
    0x00024ab8 cmp r2, 3                                         |     
    0x00024aba ldr r1, [r3, 8]                                   |     r1 = *((r3 + 8));
    0x00024abc str r1, [sp, 0x3c]                                |     var_3ch = r1;
                                                                 |     if (r2 == 3) {
    0x00024abe beq.w 0x23420                                     |         goto label_3;
                                                                 |     }
    0x00024ac2 ldr r6, [r3, 0xc]                                 |     r6 = *((r3 + 0xc));
    0x00024ac4 movs r4, 1                                        |     r4 = 1;
    0x00024ac6 cmp r6, 0                                         |     
                                                                 |     if (r6 != 0) {
    0x00024ac8 bne.w 0x233d6                                     |         goto label_4;
                                                                 |     }
    0x00024acc b.w 0x23420                                       |     goto label_3;
                                                                 | label_12:
    0x00024ad8 ldr r4, [sp, 0x38]                                |     r4 = var_38h;
    0x00024ada movs r2, 0                                        |     r2 = 0;
    0x00024adc ldr r3, [pc, 0x98]                                |     
    0x00024ade movw r1, 0x727                                    |     r1 = 0x727;
    0x00024ae2 ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x00024ae4 add r3, pc                                        |     r3 = 0x49660;
    0x00024ae6 orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x00024aea str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x00024aec ldr r0, [pc, 0x8c]                                |     
    0x00024aee add r0, pc                                        |     r0 = 0x4966e;
    0x00024af0 bl 0x40ed8                                        |     r0 = zbx_strdup2 ();
    0x00024af4 mov r3, r0                                        |     r3 = r0;
    0x00024af6 b 0x2498a                                         |     goto label_5;
                                                                 | label_14:
    0x00024af8 ldr r2, [sp, 0x38]                                |     r2 = var_38h;
    0x00024afa ldr r3, [r2, 0x28]                                |     r3 = *((r2 + 0x28));
    0x00024afc orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x00024b00 str r3, [r2, 0x28]                                |     *((r2 + 0x28)) = r3;
    0x00024b02 ldr r0, [r6]                                      |     r0 = *(r6);
    0x00024b04 bl 0x30b74                                        |     zbx_strerror ();
    0x00024b08 ldr r1, [pc, 0x74]                                |     
    0x00024b0a mov r2, r0                                        |     r2 = r0;
    0x00024b0c ldr r0, [sp, 0x28]                                |     r0 = var_28h;
    0x00024b0e add r1, pc                                        |     r1 = 0x49692;
    0x00024b10 bl 0x44820                                        |     r0 = zbx_dsprintf ()
    0x00024b14 mov r3, r0                                        |     r3 = r0;
    0x00024b16 b 0x2498a                                         |     goto label_5;
                                                                 | label_13:
    0x00024b2c ldr r2, [sp, 0x38]                                |     r2 = var_38h;
    0x00024b2e ldr r3, [r2, 0x28]                                |     r3 = *((r2 + 0x28));
    0x00024b30 orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x00024b34 str r3, [r2, 0x28]                                |     *((r2 + 0x28)) = r3;
    0x00024b36 blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x00024b3a ldr r0, [r0]                                      |     r0 = *(r0);
    0x00024b3c bl 0x30b74                                        |     zbx_strerror ();
    0x00024b40 ldr r1, [pc, 0x40]                                |     
    0x00024b42 mov r2, r0                                        |     r2 = r0;
    0x00024b44 ldr r0, [sp, 0x14]                                |     r0 = var_14h;
    0x00024b46 add r1, pc                                        |     r1 = 0x496ce;
    0x00024b48 bl 0x44820                                        |     r0 = zbx_dsprintf ()
    0x00024b4c mov r3, r0                                        |     r3 = r0;
    0x00024b4e b 0x2498a                                         |     goto label_5;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x22850 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.PROC_NUM ()                                      | void PROC_NUM (int16_t arg1, int16_t arg2) {
                                                                 |     int16_t var_bp_10h;
                                                                 |     int16_t var_bp_ch;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_sp_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_824h;
                                                                 |     int16_t var_828h;
                                                                 |     int16_t var_82ah;
                                                                 |     int8_t var_7h;
                                                                 |     int16_t var_1020h;
                                                                 |     int32_t var_0h_2;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00022850 ldr r2, [pc, 0x3d8]                               |     
    0x00022852 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00022856 mov r4, r0                                        |     r4 = r0;
    0x00022858 ldr r3, [pc, 0x3d4]                               |     r3 = *(0x22c30);
    0x0002285a sub.w sp, sp, 0x1020                              |     
    0x0002285e add r2, pc                                        |     r2 = 0x4548e;
    0x00022860 sub sp, 0xc                                       |     
    0x00022862 ldr r5, [r4, 4]                                   |     r5 = *((r4 + 4));
    0x00022864 add.w r0, sp, 0x1020                              |     r0 += var_1020h;
    0x00022868 ldr r3, [r2, r3]                                  |     
    0x0002286a adds r0, 4                                        |     r0 += 4;
    0x0002286c mov sb, r1                                        |     sb = r1;
    0x0002286e cmp r5, 4                                         |     
    0x00022870 ldr r3, [r3]                                      |     r3 = *(0x4548e);
    0x00022872 str r3, [r0]                                      |     *(r0) = r3;
    0x00022874 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r5 > 4) {
    0x00022878 bgt.w 0x22b02                                     |         goto label_15;
                                                                 |     }
    0x0002287c cmp r5, 0                                         |     
                                                                 |     if (r5 > 0) {
    0x0002287e ble 0x22942                                       |         
    0x00022880 ldr r6, [r4, 8]                                   |         r6 = *((r4 + 8));
    0x00022882 cmp r5, 1                                         |         
    0x00022884 ldr r3, [r6]                                      |         r3 = *(r6);
    0x00022886 str r3, [sp]                                      |         *(sp) = r3;
                                                                 |         if (r5 == 1) {
    0x00022888 beq.w 0x22b28                                     |             goto label_16;
                                                                 |         }
    0x0002288c ldr.w sl, [r6, 4]                                 |         sl = *((r6 + 4));
    0x00022890 cmp.w sl, 0                                       |         
                                                                 |         if (sl == 0) {
    0x00022894 beq.w 0x22b80                                     |             goto label_17;
                                                                 |         }
    0x00022898 ldrb.w r7, [sl]                                   |         r7 = *(sl);
    0x0002289c cmp r7, 0                                         |         
                                                                 |         if (r7 != 0) {
    0x0002289e bne.w 0x22b62                                     |             goto label_18;
                                                                 |         }
    0x000228a2 cmp r5, 2                                         |         
                                                                 |         if (r5 == 2) {
    0x000228a4 beq.w 0x22b28                                     |             goto label_16;
                                                                 |         }
    0x000228a8 mov sl, r7                                        |         sl = r7;
                                                                 | label_10:
    0x000228aa ldr r4, [r6, 8]                                   |         r4 = *((r6 + 8));
    0x000228ac cmp r4, 0                                         |         
                                                                 |         if (r4 == 0) {
    0x000228ae beq.w 0x22b5e                                     |             goto label_19;
                                                                 |         }
    0x000228b2 ldrb r3, [r4]                                     |         r3 = *(r4);
    0x000228b4 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x000228b6 beq.w 0x22b32                                     |             goto label_20;
                                                                 |         }
    0x000228ba ldr r1, [pc, 0x378]                               |         
    0x000228bc mov r0, r4                                        |         r0 = r4;
    0x000228be add r1, pc                                        |         r1 = 0x454f8;
    0x000228c0 blx 0xe3b0                                        |         r0 = fcn_0000e3b0 ();
    0x000228c4 mov r3, r0                                        |         r3 = r0;
    0x000228c6 str r0, [sp, 0x10]                                |         var_10h = r0;
    0x000228c8 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x000228ca beq.w 0x22b34                                     |             goto label_9;
                                                                 |         }
    0x000228ce ldr r1, [pc, 0x368]                               |         
    0x000228d0 mov r0, r4                                        |         r0 = r4;
    0x000228d2 add r1, pc                                        |         r1 = 0x45510;
    0x000228d4 blx 0xe3b0                                        |         r0 = fcn_0000e3b0 ();
    0x000228d8 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x000228da beq.w 0x22b9a                                     |             goto label_21;
                                                                 |         }
    0x000228de ldr r1, [pc, 0x35c]                               |         
    0x000228e0 mov r0, r4                                        |         r0 = r4;
    0x000228e2 add r1, pc                                        |         r1 = 0x45524;
    0x000228e4 blx 0xe3b0                                        |         r0 = fcn_0000e3b0 ();
    0x000228e8 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x000228ea beq.w 0x22bc2                                     |             goto label_22;
                                                                 |         }
    0x000228ee ldr r1, [pc, 0x350]                               |         
    0x000228f0 mov r0, r4                                        |         r0 = r4;
    0x000228f2 add r1, pc                                        |         r1 = 0x45538;
    0x000228f4 blx 0xe3b0                                        |         r0 = fcn_0000e3b0 ();
    0x000228f8 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x000228fa beq.w 0x22bc8                                     |             goto label_23;
                                                                 |         }
    0x000228fe ldr r1, [pc, 0x344]                               |         
    0x00022900 mov r0, r4                                        |         r0 = r4;
    0x00022902 add r1, pc                                        |         r1 = 0x4554c;
    0x00022904 blx 0xe3b0                                        |         r0 = fcn_0000e3b0 ();
    0x00022908 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0002290a beq.w 0x22bf0                                     |             goto label_24;
                                                                 |         }
    0x0002290e ldr r1, [pc, 0x338]                               |         
    0x00022910 mov r0, r4                                        |         r0 = r4;
    0x00022912 add r1, pc                                        |         r1 = 0x45560;
    0x00022914 blx 0xe3b0                                        |         fcn_0000e3b0 ();
    0x00022918 movs r3, 5                                        |         r3 = 5;
    0x0002291a cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0002291c beq.w 0x22b32                                     |             goto label_20;
                                                                 |         }
    0x00022920 ldr.w r0, [sb, 0x28]                              |         r0 = *((sb + 0x28));
    0x00022924 movs r2, 0                                        |         r2 = 0;
    0x00022926 ldr r3, [pc, 0x324]                               |         
    0x00022928 movw r1, 0x3a5                                    |         r1 = 0x3a5;
    0x0002292c orr r0, r0, 0x20                                  |         r0 |= 0x20;
    0x00022930 str.w r0, [sb, 0x28]                              |         __asm ("str.w r0, [sb, 0x28]");
    0x00022934 add r3, pc                                        |         r3 = 0x45586;
    0x00022936 ldr r0, [pc, 0x318]                               |         
    0x00022938 add r0, pc                                        |         r0 = 0x4558e;
    0x0002293a bl 0x40ed8                                        |         r0 = zbx_strdup2 ();
    0x0002293e mov r3, r0                                        |         r3 = r0;
    0x00022940 b 0x22b20                                         |         goto label_14;
                                                                 |     }
    0x00022942 movs r3, 0                                        |     r3 = 0;
    0x00022944 mov sl, r3                                        |     sl = r3;
    0x00022946 str r3, [sp]                                      |     *(sp) = r3;
    0x00022948 str r3, [sp, 0x10]                                |     var_10h = r3;
    0x0002294a str r3, [sp, 8]                                   |     var_8h = r3;
                                                                 | label_5:
    0x0002294c ldr r0, [pc, 0x304]                               |     
    0x0002294e add r0, pc                                        |     r0 = 0x455a6;
    0x00022950 blx 0xdbdc                                        |     r0 = fcn_0000dbdc ();
    0x00022954 mov r8, r0                                        |     r8 = r0;
    0x00022956 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00022958 beq.w 0x22bfe                                     |         goto label_25;
                                                                 |     }
    0x0002295c ldr r3, [pc, 0x2f8]                               |     
    0x0002295e add.w fp, sp, 0x28                                |     
    0x00022962 sub.w r7, fp, 4                                   |     r7 -= var_4h;
    0x00022966 add r3, pc                                        |     r3 = 0x455c2;
    0x00022968 str r3, [sp, 4]                                   |     var_sp_4h = r3;
    0x0002296a movs r3, 0                                        |     r3 = 0;
    0x0002296c mov r6, r3                                        |     r6 = r3;
    0x0002296e mov r5, r3                                        |     r5 = r3;
    0x00022970 str r3, [sp, 0xc]                                 |     var_ch = r3;
                                                                 | label_0:
    0x00022972 mov r0, r8                                        |     r0 = r8;
    0x00022974 blx 0xe28c                                        |     r0 = fcn_0000e28c ();
    0x00022978 mov r4, r0                                        |     r4 = r0;
    0x0002297a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002297c beq.w 0x22aec                                     |         goto label_8;
                                                                 |     }
                                                                 |     if (r6 != 0) {
                                                                 | label_2:
    0x00022980 cbz r6, 0x22988                                   |         
                                                                 | label_7:
    0x00022982 mov r0, r6                                        |         r0 = r6;
    0x00022984 blx 0xdc8c                                        |         fcn_0000dc8c ();
                                                                 |     }
                                                                 |     if (r5 == 0) {
    0x00022988 cbz r5, 0x22990                                   |         goto label_26;
                                                                 |     }
    0x0002298a mov r0, r5                                        |     r0 = r5;
    0x0002298c blx 0xdc8c                                        |     fcn_0000dc8c ();
                                                                 |     do {
                                                                 | label_26:
    0x00022990 adds r4, 0x13                                     |         r4 += 0x13;
    0x00022992 movs r2, 0xa                                      |         r2 = 0xa;
    0x00022994 movs r1, 0                                        |         r1 = 0;
    0x00022996 mov r0, r4                                        |         r0 = r4;
    0x00022998 blx 0xdfe8                                        |         r0 = waitpid ();
                                                                 |         if (r0 != 0) {
    0x0002299c cbnz r0, 0x229ec                                  |             goto label_27;
                                                                 |         }
    0x0002299e mov r0, r8                                        |         r0 = r8;
    0x000229a0 blx 0xe28c                                        |         r0 = fcn_0000e28c ();
    0x000229a4 mov r4, r0                                        |         r4 = r0;
    0x000229a6 cmp r0, 0                                         |         
    0x000229a8 bne 0x22990                                       |         
                                                                 |     } while (r0 != 0);
                                                                 | label_3:
    0x000229aa mov r0, r8                                        |     r0 = r8;
    0x000229ac blx 0xe0d0                                        |     fcn_0000e0d0 ();
    0x000229b0 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x000229b2 asrs r1, r3, 0x1f                                 |     r1 = r3 >> 0x1f;
                                                                 | label_6:
    0x000229b4 ldr.w r2, [sb, 0x28]                              |     r2 = *((sb + 0x28));
    0x000229b8 movs r0, 0                                        |     r0 = 0;
    0x000229ba strd r3, r1, [sb, 8]                              |     __asm ("strd r3, r1, [sb, 8]");
    0x000229be orr r2, r2, 1                                     |     r2 |= 1;
    0x000229c2 str.w r2, [sb, 0x28]                              |     __asm ("str.w r2, [sb, 0x28]");
                                                                 | label_4:
    0x000229c6 ldr r2, [pc, 0x294]                               |     
    0x000229c8 add.w r1, sp, 0x1020                              |     r1 += var_1020h;
    0x000229cc ldr r3, [pc, 0x260]                               |     r3 = *(0x22c30);
    0x000229ce adds r1, 4                                        |     r1 += 4;
    0x000229d0 add r2, pc                                        |     r2 = 0x45632;
    0x000229d2 ldr r3, [r2, r3]                                  |     r3 = *(0x45632);
    0x000229d4 ldr r2, [r3]                                      |     r2 = *(0x45632);
    0x000229d6 ldr r3, [r1]                                      |     r3 = *(r1);
    0x000229d8 eors r2, r3                                       |     r2 ^= r3;
    0x000229da mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x000229de bne.w 0x22bfa                                     |         goto label_28;
                                                                 |     }
    0x000229e2 add.w sp, sp, 0x1020                              |     
    0x000229e6 add sp, 0xc                                       |     
    0x000229e8 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_27:
    0x000229ec ldr r5, [pc, 0x270]                               |     
    0x000229ee mov r3, r4                                        |     r3 = r4;
    0x000229f0 ldr r2, [sp, 4]                                   |     r2 = var_sp_4h;
    0x000229f2 mov.w r1, 0x800                                   |     r1 = 0x800;
    0x000229f6 mov r0, r7                                        |     r0 = r7;
    0x000229f8 add r5, pc                                        |     r5 = 0x4565c;
    0x000229fa bl 0x43f38                                        |     zbx_snprintf ();
    0x000229fe mov r1, r5                                        |     r1 = r5;
    0x00022a00 mov r0, r7                                        |     r0 = r7;
    0x00022a02 blx 0xdf90                                        |     r0 = fcn_0000df90 ();
    0x00022a06 mov r6, r0                                        |     r6 = r0;
    0x00022a08 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00022a0a beq.w 0x22bf6                                     |         goto label_29;
                                                                 |     }
    0x00022a0e ldr r2, [pc, 0x254]                               |     
    0x00022a10 mov r3, r4                                        |     r3 = r4;
    0x00022a12 mov.w r1, 0x800                                   |     r1 = 0x800;
    0x00022a16 mov r0, r7                                        |     r0 = r7;
    0x00022a18 add r2, pc                                        |     r2 = 0x45682;
    0x00022a1a bl 0x43f38                                        |     zbx_snprintf ();
    0x00022a1e mov r1, r5                                        |     r1 = r5;
    0x00022a20 mov r0, r7                                        |     r0 = r7;
    0x00022a22 blx 0xdf90                                        |     r0 = fcn_0000df90 ();
    0x00022a26 mov r5, r0                                        |     r5 = r0;
    0x00022a28 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00022a2a beq 0x22972                                       |         goto label_0;
                                                                 |     }
    0x00022a2c mov r1, r0                                        |     r1 = r0;
    0x00022a2e ldr r2, [sp]                                      |     r2 = *(sp);
    0x00022a30 mov r0, r6                                        |     r0 = r6;
    0x00022a32 bl 0x20980                                        |     fcn_00020980 (r0, r1, r2);
    0x00022a36 adds r0, 1                                        |     r0++;
                                                                 |     if (r0 == 1) {
    0x00022a38 beq.w 0x22b4e                                     |         goto label_12;
                                                                 |     }
    0x00022a3c cmp.w sl, 0                                       |     
                                                                 |     if (sl != 0) {
    0x00022a40 beq 0x22a68                                       |         
    0x00022a42 sub.w r4, fp, 0x10                                |         r4 -= var_bp_10h;
    0x00022a46 movs r1, 0                                        |         r1 = 0;
    0x00022a48 mov r2, r4                                        |         r2 = r4;
    0x00022a4a mov r0, r5                                        |         r0 = r5;
    0x00022a4c bl 0x21040                                        |         r0 = fcn_00021040 (r0, r1, r2, r3);
    0x00022a50 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00022a52 bne 0x22b4e                                       |             goto label_12;
                                                                 |         }
    0x00022a54 ldr r3, [fp, -0xc]                                |         r3 = var_bp_ch;
    0x00022a58 ldr.w r1, [sl, 8]                                 |         r1 = *((sl + 8));
    0x00022a5c ldr r2, [fp, -0x10]                               |         r2 = var_bp_10h;
    0x00022a60 cmp r0, r3                                        |         
    0x00022a62 it eq                                             |         
                                                                 |         if (r0 == r3) {
    0x00022a64 cmpeq r1, r2                                      |             __asm ("cmpeq r1, r2");
                                                                 |         }
                                                                 |         if (r0 != r3) {
    0x00022a66 bne 0x22b4e                                       |             goto label_12;
                                                                 |         }
                                                                 |     }
    0x00022a68 ldr r1, [sp, 8]                                   |     r1 = var_8h;
    0x00022a6a mov r0, r6                                        |     r0 = r6;
    0x00022a6c bl 0x20a18                                        |     fcn_00020a18 (r0, r1);
    0x00022a70 adds r0, 1                                        |     r0++;
                                                                 |     if (r0 == 1) {
    0x00022a72 beq.w 0x22972                                     |         goto label_0;
                                                                 |     }
    0x00022a76 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
                                                                 |     if (r3 == 0) {
    0x00022a78 cbz r3, 0x22ad8                                   |         goto label_11;
                                                                 |     }
    0x00022a7a mov r0, r5                                        |     r0 = r5;
    0x00022a7c addw r4, sp, 0x824                                |     __asm ("addw r4, var_824h");
    0x00022a80 blx 0xdc5c                                        |     fcn_0000dc5c ();
    0x00022a84 movw r3, 0x7453                                   |     
    0x00022a88 str r6, [sp, 0x14]                                |     var_14h = r6;
    0x00022a8a movt r3, 0x7461                                   |     r3 = 0x74617453;
    0x00022a8e mov r6, r5                                        |     r6 = r5;
    0x00022a90 mov r5, r3                                        |     r5 = r3;
                                                                 |     do {
                                                                 | label_1:
    0x00022a92 mov r2, r6                                        |         r2 = r6;
    0x00022a94 mov.w r1, 0x800                                   |         r1 = 0x800;
    0x00022a98 mov r0, r4                                        |         r0 = r4;
    0x00022a9a blx 0xdc98                                        |         r0 = fcn_0000dc98 ();
    0x00022a9e cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00022aa0 beq 0x22b4a                                       |             goto label_30;
                                                                 |         }
    0x00022aa2 ldr r3, [r4]                                      |         r3 = *(r4);
    0x00022aa4 cmp r3, r5                                        |         
    0x00022aa6 bne 0x22a92                                       |         
                                                                 |     } while (r3 != r5);
    0x00022aa8 ldrh.w r1, [sp, 0x828]                            |     r1 = var_828h;
    0x00022aac movw r3, 0x3a65                                   |     r3 = 0x3a65;
    0x00022ab0 cmp r1, r3                                        |     
                                                                 |     if (r1 != r3) {
    0x00022ab2 bne 0x22a92                                       |         goto label_1;
                                                                 |     }
    0x00022ab4 ldrb.w r3, [sp, 0x82a]                            |     r3 = var_82ah;
    0x00022ab8 cmp r3, 9                                         |     
                                                                 |     if (r3 != 9) {
    0x00022aba bne 0x22a92                                       |         goto label_1;
                                                                 |     }
    0x00022abc ldr r2, [sp, 0x10]                                |     r2 = var_10h;
    0x00022abe mov r5, r6                                        |     r5 = r6;
    0x00022ac0 ldrb r3, [r4, 7]                                  |     r3 = var_7h;
    0x00022ac2 ldr r6, [sp, 0x14]                                |     r6 = var_14h;
    0x00022ac4 subs r2, 2                                        |     r2 -= 2;
    0x00022ac6 cmp r2, 3                                         |     
                                                                 |     if (r2 > 3) {
    0x00022ac8 bhi.w 0x22c24                                     |         goto label_31;
                                                                 |     }
                                                                 |     /* switch table (4 cases) at 0x22ad0 */
    0x00022acc tbb [pc, r2]                                      |     __asm ("tbb [0x00022ad4]");
    0x00022ad4 cmp r3, 0x54                                      |     
                                                                 |     if (r3 != 0x54) {
    0x00022ad6 bne 0x22b4e                                       |         goto label_12;
                                                                 |     }
                                                                 | label_11:
    0x00022ad8 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x00022ada mov r0, r8                                        |     r0 = r8;
    0x00022adc adds r3, 1                                        |     r3++;
    0x00022ade str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x00022ae0 blx 0xe28c                                        |     r0 = fcn_0000e28c ();
    0x00022ae4 mov r4, r0                                        |     r4 = r0;
    0x00022ae6 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00022ae8 bne.w 0x22980                                     |         goto label_2;
                                                                 |     }
                                                                 |     if (r6 != 0) {
                                                                 | label_8:
    0x00022aec cbz r6, 0x22af4                                   |         
    0x00022aee mov r0, r6                                        |         r0 = r6;
    0x00022af0 blx 0xdc8c                                        |         fcn_0000dc8c ();
                                                                 |     }
    0x00022af4 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00022af6 beq.w 0x229aa                                     |         goto label_3;
                                                                 |     }
    0x00022afa mov r0, r5                                        |     r0 = r5;
    0x00022afc blx 0xdc8c                                        |     fcn_0000dc8c ();
    0x00022b00 b 0x229aa                                         |     goto label_3;
                                                                 | label_15:
    0x00022b02 ldr r0, [r1, 0x28]                                |     r0 = *((r1 + 0x28));
    0x00022b04 movs r2, 0                                        |     r2 = 0;
    0x00022b06 ldr r3, [pc, 0x160]                               |     
    0x00022b08 movw r1, 0x37b                                    |     r1 = 0x37b;
    0x00022b0c orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x00022b10 str.w r0, [sb, 0x28]                              |     __asm ("str.w r0, [sb, 0x28]");
    0x00022b14 add r3, pc                                        |     r3 = 0x45782;
    0x00022b16 ldr r0, [pc, 0x154]                               |     
    0x00022b18 add r0, pc                                        |     r0 = 0x4578a;
    0x00022b1a bl 0x40ed8                                        |     r0 = zbx_strdup2 ();
    0x00022b1e mov r3, r0                                        |     r3 = r0;
                                                                 | label_14:
    0x00022b20 movs r0, 1                                        |     r0 = 1;
    0x00022b22 str.w r3, [sb, 0x20]                              |     __asm ("str.w r3, [sb, 0x20]");
    0x00022b24 adds r0, 0x20                                     |     r0 += 0x20;
    0x00022b26 b 0x229c6                                         |     goto label_4;
                                                                 | label_16:
    0x00022b28 movs r3, 0                                        |     r3 = 0;
    0x00022b2a mov sl, r3                                        |     sl = r3;
    0x00022b2c str r3, [sp, 0x10]                                |     var_10h = r3;
    0x00022b2e str r3, [sp, 8]                                   |     var_8h = r3;
    0x00022b30 b 0x2294c                                         |     goto label_5;
                                                                 | label_20:
    0x00022b32 str r3, [sp, 0x10]                                |     var_10h = r3;
                                                                 | label_9:
    0x00022b34 cmp r5, 3                                         |     
    0x00022b36 ite ne                                            |     
                                                                 |     if (r5 == 3) {
    0x00022b38 ldrne r3, [r6, 0xc]                               |         r3 = *((r6 + 0xc));
                                                                 |     }
                                                                 |     if (r5 != 3) {
    0x00022b3a moveq r3, 0                                       |         r3 = 0;
                                                                 |     }
    0x00022b3c str r3, [sp, 8]                                   |     var_8h = r3;
    0x00022b3e cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x00022b40 beq.w 0x2294c                                     |         goto label_5;
                                                                 |     }
                                                                 | label_13:
    0x00022b44 movs r3, 0                                        |     r3 = 0;
    0x00022b46 mov r1, r3                                        |     r1 = r3;
    0x00022b48 b 0x229b4                                         |     goto label_6;
                                                                 | label_30:
    0x00022b4a mov r5, r6                                        |     r5 = r6;
    0x00022b4c ldr r6, [sp, 0x14]                                |     r6 = var_14h;
                                                                 | label_12:
    0x00022b4e mov r0, r8                                        |     r0 = r8;
    0x00022b50 blx 0xe28c                                        |     r0 = fcn_0000e28c ();
    0x00022b54 mov r4, r0                                        |     r4 = r0;
    0x00022b56 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00022b58 bne.w 0x22982                                     |         goto label_7;
                                                                 |     }
    0x00022b5c b 0x22aec                                         |     goto label_8;
                                                                 | label_19:
    0x00022b5e str r4, [sp, 0x10]                                |     var_10h = r4;
    0x00022b60 b 0x22b34                                         |     goto label_9;
                                                                 | label_18:
    0x00022b62 blx 0xe3d4                                        |     fcn_0000e3d4 ();
    0x00022b66 movs r7, 0                                        |     r7 = 0;
    0x00022b68 mov r5, r0                                        |     r5 = r0;
    0x00022b6a str r7, [r5]                                      |     *(r5) = r7;
    0x00022b6c mov r0, sl                                        |     r0 = sl;
    0x00022b6e blx 0xe3f8                                        |     r0 = fcn_0000e3f8 ();
    0x00022b72 mov sl, r0                                        |     sl = r0;
                                                                 |     if (r0 == 0) {
    0x00022b74 cbz r0, 0x22bb2                                   |         goto label_32;
                                                                 |     }
    0x00022b76 ldr r5, [r4, 4]                                   |     r5 = *((r4 + 4));
    0x00022b78 cmp r5, 2                                         |     
                                                                 |     if (r5 <= 2) {
    0x00022b7a ble 0x22b94                                       |         goto label_33;
                                                                 |     }
    0x00022b7c ldr r6, [r4, 8]                                   |     r6 = *((r4 + 8));
    0x00022b7e b 0x228aa                                         |     goto label_10;
                                                                 | label_17:
    0x00022b80 cmp r5, 2                                         |     
    0x00022b82 it ne                                             |     
                                                                 |     if (r5 != 2) {
    0x00022b84 movne r7, sl                                      |         r7 = sl;
                                                                 |         goto label_34;
                                                                 |     }
                                                                 |     if (r5 != 2) {
                                                                 | label_34:
    0x00022b86 bne.w 0x228aa                                     |         goto label_10;
                                                                 |     }
    0x00022b8a str.w sl, [sp, 8]                                 |     __asm ("str.w sl, [var_8h]");
    0x00022b8e str.w sl, [sp, 0x10]                              |     __asm ("str.w sl, [var_10h]");
    0x00022b92 b 0x2294c                                         |     goto label_5;
                                                                 | label_33:
    0x00022b94 str r7, [sp, 0x10]                                |     var_10h = r7;
    0x00022b96 str r7, [sp, 8]                                   |     var_8h = r7;
    0x00022b98 b 0x2294c                                         |     goto label_5;
                                                                 | label_21:
    0x00022b9a movs r3, 1                                        |     r3 = 1;
    0x00022b9c str r3, [sp, 0x10]                                |     var_10h = r3;
    0x00022b9e b 0x22b34                                         |     goto label_9;
    0x00022ba0 cmp r3, 0x44                                      |     
                                                                 |     if (r3 == 0x44) {
    0x00022ba2 beq 0x22ad8                                       |         goto label_11;
                                                                 |     }
    0x00022ba4 b 0x22b4e                                         |     goto label_12;
    0x00022ba6 cmp r3, 0x5a                                      |     
                                                                 |     if (r3 == 0x5a) {
    0x00022ba8 beq 0x22ad8                                       |         goto label_11;
                                                                 |     }
    0x00022baa b 0x22b4e                                         |     goto label_12;
    0x00022bac cmp r3, 0x53                                      |     
                                                                 |     if (r3 == 0x53) {
    0x00022bae beq 0x22ad8                                       |         goto label_11;
                                                                 |     }
    0x00022bb0 b 0x22b4e                                         |     goto label_12;
                                                                 | label_32:
    0x00022bb2 ldr r3, [r5]                                      |     r3 = *(r5);
                                                                 |     if (r3 != 0) {
    0x00022bb4 cbnz r3, 0x22bce                                  |         goto label_35;
                                                                 |     }
    0x00022bb6 ldr r5, [r4, 4]                                   |     r5 = *((r4 + 4));
    0x00022bb8 cmp r5, 2                                         |     
                                                                 |     if (r5 <= 2) {
    0x00022bba ble 0x22b44                                       |         goto label_13;
                                                                 |     }
    0x00022bbc ldr r6, [r4, 8]                                   |     r6 = *((r4 + 8));
    0x00022bbe movs r7, 1                                        |     r7 = 1;
    0x00022bc0 b 0x228aa                                         |     goto label_10;
                                                                 | label_22:
    0x00022bc2 movs r3, 2                                        |     r3 = 2;
    0x00022bc4 str r3, [sp, 0x10]                                |     var_10h = r3;
    0x00022bc6 b 0x22b34                                         |     goto label_9;
                                                                 | label_23:
    0x00022bc8 movs r3, 3                                        |     r3 = 3;
    0x00022bca str r3, [sp, 0x10]                                |     var_10h = r3;
    0x00022bcc b 0x22b34                                         |     goto label_9;
                                                                 | label_35:
    0x00022bce ldr.w r3, [sb, 0x28]                              |     r3 = *((sb + 0x28));
    0x00022bd2 orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x00022bd6 str.w r3, [sb, 0x28]                              |     __asm ("str.w r3, [sb, 0x28]");
    0x00022bda ldr r0, [r5]                                      |     r0 = *(r5);
    0x00022bdc bl 0x30b74                                        |     zbx_strerror ();
    0x00022be0 ldr r1, [pc, 0x8c]                                |     
    0x00022be2 mov r2, r0                                        |     r2 = r0;
    0x00022be4 mov r0, sl                                        |     r0 = sl;
    0x00022be6 add r1, pc                                        |     r1 = 0x4585a;
    0x00022be8 bl 0x44820                                        |     r0 = zbx_dsprintf ()
    0x00022bec mov r3, r0                                        |     r3 = r0;
    0x00022bee b 0x22b20                                         |     goto label_14;
                                                                 | label_24:
    0x00022bf0 movs r3, 4                                        |     r3 = 4;
    0x00022bf2 str r3, [sp, 0x10]                                |     var_10h = r3;
    0x00022bf4 b 0x22b34                                         |     goto label_9;
                                                                 | label_29:
    0x00022bf6 mov r5, r0                                        |     r5 = r0;
    0x00022bf8 b 0x22972                                         |     goto label_0;
                                                                 | label_28:
    0x00022bfa blx 0xe158                                        |     fcn_0000e158 ();
                                                                 | label_25:
    0x00022bfe ldr.w r3, [sb, 0x28]                              |     r3 = *((sb + 0x28));
    0x00022c02 orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x00022c06 str.w r3, [sb, 0x28]                              |     __asm ("str.w r3, [sb, 0x28]");
    0x00022c0a blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x00022c0e ldr r0, [r0]                                      |     r0 = *(r0);
    0x00022c10 bl 0x30b74                                        |     zbx_strerror ();
    0x00022c14 ldr r1, [pc, 0x5c]                                |     
    0x00022c16 mov r2, r0                                        |     r2 = r0;
    0x00022c18 mov r0, r8                                        |     r0 = r8;
    0x00022c1a add r1, pc                                        |     r1 = 0x45892;
    0x00022c1c bl 0x44820                                        |     r0 = zbx_dsprintf ()
    0x00022c20 mov r3, r0                                        |     r3 = r0;
    0x00022c22 b 0x22b20                                         |     goto label_14;
                                                                 | label_31:
    0x00022c24 cmp r3, 0x52                                      |     
                                                                 |     if (r3 == 0x52) {
    0x00022c26 beq.w 0x22ad8                                     |         goto label_11;
                                                                 |     }
    0x00022c2a b 0x22b4e                                         |     goto label_12;
                                                                 | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x268d0 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.SYSTEM_BOOTTIME ()                       | void SYSTEM_BOOTTIME (int16_t arg_a0h, int16_t arg_804h, int16_t arg2) {
                                                         |     int32_t var_804h;
                                                         |     int16_t var_80ch;
                                                         |     int16_t var_4h;
                                                         |     r1 = arg2;
    0x000268d0 ldr r2, [pc, 0xec]                        |     
    0x000268d2 ldr r3, [pc, 0xf0]                        |     r3 = *(0x269c6);
    0x000268d4 push.w {r4, r5, r6, r7, r8, sb, lr}       |     
    0x000268d8 mov sb, r1                                |     sb = r1;
    0x000268da add r2, pc                                |     r2 = 0x4d29e;
    0x000268dc ldr r0, [pc, 0xe8]                        |     
    0x000268de subw sp, sp, 0x80c                        |     __asm ("subw sp, sp, 0x80c");
    0x000268e0 lsrs r4, r1, 0x14                         |     r4 = r1 >> 0x14;
    0x000268e2 ldr r1, [pc, 0xe8]                        |     
    0x000268e4 ldr r3, [r2, r3]                          |     
    0x000268e6 add r0, pc                                |     r0 = 0x4d2b2;
    0x000268e8 add r1, pc                                |     r1 = 0x4d2ba;
    0x000268ea ldr r3, [r3]                              |     r3 = *(0x4d29e);
    0x000268ec str.w r3, [sp, 0x804]                     |     __asm ("str.w r3, [arg_804h]");
    0x000268f0 mov.w r3, 0                               |     r3 = 0;
    0x000268f4 blx 0xdf90                                |     r0 = fcn_0000df90 ();
    0x000268f8 mov r6, r0                                |     r6 = r0;
    0x000268fa cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x000268fc beq 0x26994                               |         goto label_1;
                                                         |     }
    0x000268fe ldr.w r8, [pc, 0xd0]                      |     r8 = *(0x000269d0);
    0x00026902 add r5, sp, 4                             |     r5 += var_4h;
    0x00026904 mov r7, sp                                |     r7 = sp;
    0x00026906 add r8, pc                                |     r8 += pc;
    0x00026908 b 0x26918                                 |     
                                                         |     while (r0 != 0) {
    0x0002690a mov r2, r7                                |         r2 = r7;
    0x0002690c mov r1, r8                                |         r1 = r8;
    0x0002690e mov r0, r5                                |         r0 = r5;
    0x00026910 blx 0xdc68                                |         r0 = fcn_0000dc68 ();
    0x00026914 cmp r0, 1                                 |         
                                                         |         if (r0 == 1) {
    0x00026916 beq 0x26972                               |             goto label_2;
                                                         |         }
    0x00026918 mov r2, r6                                |         r2 = r6;
    0x0002691a mov.w r1, 0x800                           |         r1 = 0x800;
    0x0002691e mov r0, r5                                |         r0 = r5;
    0x00026920 blx 0xdc98                                |         r0 = fcn_0000dc98 ();
    0x00026924 mov r4, r0                                |         r4 = r0;
    0x00026926 cmp r0, 0                                 |         
    0x00026928 bne 0x2690a                               |         
                                                         |     }
    0x0002692a mov r0, r6                                |     r0 = r6;
    0x0002692c blx 0xdc8c                                |     fcn_0000dc8c ();
    0x00026930 ldr.w r0, [sb, 0x28]                      |     r0 = *((sb + 0x28));
    0x00026934 mov r2, r4                                |     r2 = r4;
    0x00026936 ldr r3, [pc, 0x9c]                        |     
    0x00026938 movs r1, 0x36                             |     r1 = 0x36;
    0x0002693a orr r0, r0, 0x20                          |     r0 |= 0x20;
    0x0002693e str.w r0, [sb, 0x28]                      |     __asm ("str.w r0, [sb, 0x28]");
    0x00026942 add r3, pc                                |     r3 = 0x4d31c;
    0x00026944 ldr r0, [pc, 0x90]                        |     
    0x00026946 add r0, pc                                |     r0 = 0x4d322;
    0x00026948 bl 0x40ed8                                |     r0 = zbx_strdup2 ();
    0x0002694c mov r3, r0                                |     r3 = r0;
                                                         | label_0:
    0x0002694e movs r0, 1                                |     r0 = 1;
    0x00026950 str.w r3, [sb, 0x20]                      |     __asm ("str.w r3, [sb, 0x20]");
                                                         |     do {
    0x00026954 ldr r2, [pc, 0x84]                        |         
    0x00026956 ldr r3, [pc, 0x6c]                        |         r3 = *(0x269c6);
    0x00026958 add r2, pc                                |         r2 = 0x4d338;
    0x0002695a ldr r3, [r2, r3]                          |         r3 = *(0x4d338);
    0x0002695c ldr r2, [r3]                              |         r2 = *(0x4d338);
    0x0002695e ldr.w r3, [sp, 0x804]                     |         r3 = *(arg_804h);
    0x00026962 eors r2, r3                               |         r2 ^= r3;
    0x00026964 mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x00026968 bne 0x269ba                               |             goto label_3;
                                                         |         }
    0x0002696a addw sp, sp, 0x80c                        |         __asm ("addw sp, var_80ch");
    0x0002696e pop.w {r4, r5, r6, r7, r8, sb, pc}        |         
                                                         | label_2:
    0x00026972 ldr.w r3, [sb, 0x28]                      |         r3 = *((sb + 0x28));
    0x00026976 movs r4, 0                                |         r4 = 0;
    0x00026978 ldr r2, [r7]                              |         r2 = *(r7);
    0x0002697a mov r0, r6                                |         r0 = r6;
    0x0002697c str.w r4, [sb, 0xc]                       |         __asm ("str.w r4, [sb, 0xc]");
    0x00026980 orr r3, r3, 1                             |         r3 |= 1;
    0x00026984 str.w r2, [sb, 8]                         |         __asm ("str.w r2, [sb, 8]");
    0x00026988 str.w r3, [sb, 0x28]                      |         __asm ("str.w r3, [sb, 0x28]");
    0x0002698c blx 0xdc8c                                |         fcn_0000dc8c ();
    0x00026990 mov r0, r4                                |         r0 = r4;
    0x00026992 b 0x26954                                 |         
                                                         |     } while (1);
                                                         | label_1:
    0x00026994 ldr.w r3, [sb, 0x28]                      |     r3 = *((sb + 0x28));
    0x00026998 orr r3, r3, 0x20                          |     r3 |= 0x20;
    0x0002699c str.w r3, [sb, 0x28]                      |     __asm ("str.w r3, [sb, 0x28]");
    0x000269a0 blx 0xe3d4                                |     r0 = fcn_0000e3d4 ();
    0x000269a4 ldr r0, [r0]                              |     r0 = *(r0);
    0x000269a6 bl 0x30b74                                |     zbx_strerror ();
    0x000269aa ldr r1, [pc, 0x34]                        |     
    0x000269ac mov r2, r0                                |     r2 = r0;
    0x000269ae mov r0, r6                                |     r0 = r6;
    0x000269b0 add r1, pc                                |     r1 = 0x4d396;
    0x000269b2 bl 0x44820                                |     r0 = zbx_dsprintf ()
    0x000269b6 mov r3, r0                                |     r3 = r0;
    0x000269b8 b 0x2694e                                 |     goto label_0;
                                                         | label_3:
    0x000269ba blx 0xe158                                |     fcn_0000e158 ();
    0x000269be nop                                       |     
    0x000269c0 strh r6, [r7, r3]                         |     *((r7 + r3)) = r6;
    0x000269c2 movs r3, r0                               |     r3 = r0;
    0x000269c4 lsls r4, r2, 0xe                          |     r4 = r2 << 0xe;
    0x000269c6 movs r0, r0                               |     
    0x000269c8 strh r6, [r1, 0x1e]                       |     *((r1 + 0x1e)) = r6;
    0x000269ca movs r2, r0                               |     r2 = r0;
    0x000269cc add r2, sp, 0xa0                          |     r2 += arg_a0h;
    0x000269ce movs r2, r0                               |     r2 = r0;
                                                         |     if (r6 != 0) {
    0x000269d0 cbnz r6, 0x26a36                          |         void (*0x26a36)() ();
                                                         |     }
    0x000269d2 movs r2, r0                               |     r2 = r0;
                                                         |     if (r6 != 0) {
    0x000269d4 cbnz r6, 0x26a2e                          |         goto label_4;
                                                         |     }
    0x000269d6 movs r2, r0                               |     r2 = r0;
                                                         |     if (r2 != 0) {
    0x000269d8 cbnz r2, 0x26a3e                          |         void (*0x26a3e)() ();
                                                         |     }
    0x000269da movs r2, r0                               |     r2 = r0;
    0x000269dc strh r0, [r0, r2]                         |     *((r0 + r2)) = r0;
    0x000269de movs r3, r0                               |     r3 = r0;
    0x000269e0 revsh r0, r1                              |     __asm ("revsh r0, r1");
    0x000269e2 movs r2, r0                               |     r2 = r0;
                                                         | label_4:
    0x00026a2e invalid                                   |     
                                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x27040 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.SYSTEM_CPU_INTR ()                               | void SYSTEM_CPU_INTR (int16_t arg_8c8h, int16_t arg_10c0h, int16_t arg_18c0h, int16_t arg2) {
                                                                 |     int16_t var_bp_0h;
                                                                 |     int16_t var_bp_18h;
                                                                 |     int16_t var_bp_10h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_10h_2;
                                                                 |     int16_t var_1ch_3;
                                                                 |     int16_t var_0h_4;
                                                                 |     int16_t var_4h_4;
                                                                 |     int16_t var_14h_3;
                                                                 |     int16_t var_18h_2;
                                                                 |     int16_t var_20h_2;
                                                                 |     int32_t var_20h_5;
                                                                 |     int16_t var_28h_2;
                                                                 |     int16_t var_20h_3;
                                                                 |     int16_t var_30h_2;
                                                                 |     int16_t var_18c0h;
                                                                 |     int16_t var_38h_2;
                                                                 |     int32_t var_38h_3;
                                                                 |     int16_t var_44h;
                                                                 |     int16_t var_0h_3;
                                                                 |     int16_t var_4h_3;
                                                                 |     int16_t var_0h_2;
                                                                 |     int16_t var_4h_2;
                                                                 |     int16_t var_sp_8h;
                                                                 |     int16_t var_ch_2;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h_2;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch_2;
                                                                 |     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_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_48h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_0h_5;
                                                                 |     int16_t var_ch_3;
                                                                 |     int16_t var_88h;
                                                                 |     int16_t var_94h;
                                                                 |     int16_t var_6ch;
                                                                 |     int16_t var_f0h;
                                                                 |     int16_t var_18c0h_2;
                                                                 |     int32_t var_0h_10;
                                                                 |     int16_t var_150h;
                                                                 |     int32_t var_0h_6;
                                                                 |     int32_t var_4h_5;
                                                                 |     int32_t var_4h_6;
                                                                 |     int32_t var_ch_5;
                                                                 |     int32_t var_10h_3;
                                                                 |     int32_t var_14h_4;
                                                                 |     int32_t var_18h_3;
                                                                 |     int32_t var_1ch_4;
                                                                 |     int32_t var_20h_4;
                                                                 |     int32_t var_24h_2;
                                                                 |     int32_t var_28h_3;
                                                                 |     int32_t var_2ch_2;
                                                                 |     int32_t var_30h_3;
                                                                 |     int32_t var_34h_2;
                                                                 |     int16_t var_ch_4;
                                                                 |     int16_t var_48h_2;
                                                                 |     int32_t var_0h_7;
                                                                 |     int16_t var_18h_4;
                                                                 |     int16_t var_10h_5;
                                                                 |     int32_t var_10h_7;
                                                                 |     int16_t var_68h;
                                                                 |     int32_t var_0h_8;
                                                                 |     int16_t var_18h_5;
                                                                 |     int16_t var_10h_4;
                                                                 |     int32_t var_10h_6;
                                                                 |     int16_t var_88h_2;
                                                                 |     int32_t var_0h_9;
                                                                 |     int16_t var_94h_2;
                                                                 |     int16_t var_ach;
                                                                 |     int16_t var_2a8h;
                                                                 |     int16_t var_80ch;
                                                                 |     int16_t var_810h;
                                                                 |     r1 = arg2;
    0x00027040 ldr r2, [pc, 0xe8]                                |     
    0x00027042 ldr r3, [pc, 0xec]                                |     r3 = *(0x27132);
    0x00027044 push.w {r4, r5, r6, r7, r8, sb, sl, lr}           |     
    0x00027048 mov r7, r1                                        |     r7 = r1;
    0x0002704a add r2, pc                                        |     r2 = 0x4e17a;
    0x0002704c ldr r0, [pc, 0xe4]                                |     
    0x0002704e sub.w sp, sp, 0x810                               |     
    0x00027052 ldr r1, [pc, 0xe4]                                |     
    0x00027054 mov sb, sp                                        |     sb = sp;
    0x00027056 ldr r3, [r2, r3]                                  |     
    0x00027058 add r0, pc                                        |     r0 = 0x4e190;
    0x0002705a vmov.i32 d16, 0                                   |     __asm ("vmov.i32 d16, 0");
    0x0002705e add r1, pc                                        |     r1 = 0x4e19c;
    0x00027060 ldr r3, [r3]                                      |     r3 = *(0x4e17a);
    0x00027062 str.w r3, [sp, 0x80c]                             |     __asm ("str.w r3, [var_80ch]");
    0x00027066 mov.w r3, 0                                       |     r3 = 0;
    0x0002706a vstr d16, [sb]                                    |     __asm ("vstr d16, [sb]");
    0x0002706e blx 0xdf90                                        |     r0 = fcn_0000df90 ();
    0x00027072 mov r6, r0                                        |     r6 = r0;
    0x00027074 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00027076 beq 0x27108                                       |         goto label_12;
                                                                 |     }
    0x00027078 ldr.w sl, [pc, 0xc0]                              |     sl = case.0x2af36.11;
    0x0002707c movw r8, 0x6e69                                   |     
    0x00027080 add r5, sp, 0xc                                   |     r5 += var_ch_3;
    0x00027082 movt r8, 0x7274                                   |     r8 = 0x72746e69;
    0x00027086 add sl, pc                                        |     sl += pc;
                                                                 |     do {
                                                                 | label_0:
    0x00027088 mov r2, r6                                        |         r2 = r6;
    0x0002708a mov.w r1, 0x800                                   |         r1 = 0x800;
    0x0002708e mov r0, r5                                        |         r0 = r5;
    0x00027090 blx 0xdc98                                        |         r0 = fcn_0000dc98 ();
    0x00027094 mov r4, r0                                        |         r4 = r0;
                                                                 |         if (r0 == 0) {
    0x00027096 cbz r0, 0x270e4                                   |             goto label_13;
                                                                 |         }
    0x00027098 ldr r3, [r5]                                      |         r3 = *(r5);
    0x0002709a cmp r3, r8                                        |         
    0x0002709c bne 0x27088                                       |         
                                                                 |     } while (r3 != r8);
    0x0002709e mov r2, sb                                        |     r2 = sb;
    0x000270a0 mov r1, sl                                        |     r1 = sl;
    0x000270a2 mov r0, r5                                        |     r0 = r5;
    0x000270a4 movs r4, 0                                        |     r4 = 0;
    0x000270a6 blx 0xdc68                                        |     r0 = fcn_0000dc68 ();
    0x000270aa cmp r0, 1                                         |     
                                                                 |     if (r0 != 1) {
    0x000270ac bne 0x27088                                       |         goto label_0;
                                                                 |     }
    0x000270ae ldr r3, [r7, 0x28]                                |     r3 = *((r7 + 0x28));
    0x000270b0 mov r0, r6                                        |     r0 = r6;
    0x000270b2 orr r3, r3, 1                                     |     r3 |= 1;
    0x000270b6 str r3, [r7, 0x28]                                |     *((r7 + 0x28)) = r3;
    0x000270b8 ldrd r2, r3, [sb]                                 |     __asm ("ldrd r2, r3, [sb]");
    0x000270bc strd r2, r3, [r7, 8]                              |     __asm ("strd r2, r3, [r7, 8]");
    0x000270c0 blx 0xdc8c                                        |     fcn_0000dc8c ();
                                                                 |     do {
    0x000270c4 ldr r2, [pc, 0x78]                                |         
    0x000270c6 ldr r3, [pc, 0x68]                                |         r3 = *(0x27132);
    0x000270c8 add r2, pc                                        |         r2 = ".count[";
    0x000270ca ldr r3, [r2, r3]                                  |         r3 = ".count[";
    0x000270cc ldr r2, [r3]                                      |         r2 = ".count[";
    0x000270ce ldr.w r3, [sp, 0x80c]                             |         r3 = var_80ch;
    0x000270d2 eors r2, r3                                       |         r2 ^= r3;
    0x000270d4 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x000270d8 bne 0x27128                                       |             goto label_14;
                                                                 |         }
    0x000270da mov r0, r4                                        |         r0 = r4;
    0x000270dc add.w sp, sp, 0x810                               |         
    0x000270e0 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |         
                                                                 | label_13:
    0x000270e4 mov r0, r6                                        |         r0 = r6;
    0x000270e6 blx 0xdc8c                                        |         fcn_0000dc8c ();
    0x000270ea ldr r0, [r7, 0x28]                                |         r0 = *((r7 + 0x28));
    0x000270ec mov r2, r4                                        |         r2 = r4;
    0x000270ee ldr r3, [pc, 0x54]                                |         
    0x000270f0 movs r1, 0xff                                     |         r1 = 0xff;
    0x000270f2 orr r0, r0, 0x20                                  |         r0 |= 0x20;
    0x000270f6 str r0, [r7, 0x28]                                |         *((r7 + 0x28)) = r0;
    0x000270f8 add r3, pc                                        |         r3 = 0x4e242;
    0x000270fa ldr r0, [pc, 0x4c]                                |         
    0x000270fc add r0, pc                                        |         r0 = 0x4e24a;
    0x000270fe bl 0x40ed8                                        |         zbx_strdup2 ();
                                                                 | label_1:
    0x00027102 movs r4, 1                                        |         r4 = 1;
    0x00027104 str r0, [r7, 0x20]                                |         *((r7 + 0x20)) = r0;
    0x00027106 b 0x270c4                                         |         
                                                                 |     } while (1);
                                                                 | label_12:
    0x00027108 ldr r3, [r7, 0x28]                                |     r3 = *((r7 + 0x28));
    0x0002710a orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x0002710e str r3, [r7, 0x28]                                |     *((r7 + 0x28)) = r3;
    0x00027110 blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x00027114 ldr r0, [r0]                                      |     r0 = *(r0);
    0x00027116 bl 0x30b74                                        |     zbx_strerror ();
    0x0002711a ldr r1, [pc, 0x30]                                |     
    0x0002711c mov r2, r0                                        |     r2 = r0;
    0x0002711e mov r0, r6                                        |     r0 = r6;
    0x00027120 add r1, pc                                        |     r1 = 0x4e272;
    0x00027122 bl 0x44820                                        |     zbx_dsprintf ()
    0x00027126 b 0x27102                                         |     goto label_1;
                                                                 | label_14:
    0x00027128 blx 0xe158                                        |     fcn_0000e158 ();
    0x0002712c ldr r3, [pc, 0x238]                               |     r3 = *(0x27368);
    0x0002712e movs r3, r0                                       |     r3 = r0;
    0x00027130 lsls r4, r2, 0xe                                  |     r4 = r2 << 0xe;
    0x00027132 movs r0, r0                                       |     
    0x00027134 ldrb r4, [r3, 0x11]                               |     r4 = *((r3 + 0x11));
    0x00027136 movs r2, r0                                       |     r2 = r0;
    0x00027138 adr r2, 0x2c8                                     |     r2 = 0x2c8;
    0x0002713a movs r2, r0                                       |     r2 = r0;
    0x0002713c push {r1, r2, r4, r5, r6, r7}                     |     
    0x0002713e movs r2, r0                                       |     r2 = r0;
    0x00027140 ldr r3, [pc, 0x40]                                |     r3 = *(0x27184);
    0x00027142 movs r3, r0                                       |     r3 = r0;
    0x00027144 push {r3, r6, r7}                                 |     
    0x00027146 movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r0 != 0) {
    0x00027148 cbz r0, 0x271c4                                   |         
    0x0002714a movs r2, r0                                       |         r2 = r0;
                                                                 |         if (r0 != 0) {
    0x0002714c cbz r0, 0x271a6                                   |             
    0x0002714e movs r2, r0                                       |             r2 = r0;
    0x00027150 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |             
    0x00027154 mov r4, r2                                        |             r4 = r2;
    0x00027156 ldr r2, [pc, 0x160]                               |             
    0x00027158 mov sl, r3                                        |             sl = r3;
    0x0002715a ldr r3, [pc, 0x160]                               |             r3 = *(0x272be);
    0x0002715c add r2, pc                                        |             r2 = 0x4e41a;
    0x0002715e vpush {d8, d9}                                    |             __asm ("vpush {d8, d9}");
    0x00027162 ldr r6, [pc, 0x15c]                               |             
    0x00027164 sub sp, 0x74                                      |             
    0x00027166 ldr r3, [r2, r3]                                  |             
    0x00027168 ldrd sb, r8, [sp, 0xa8]                           |             __asm ("ldrd sb, r8, [var_bp_18h]");
    0x0002716c add r6, pc                                        |             r6 = 0x4e432;
    0x0002716e ldr r7, [sp, 0xb0]                                |             r7 = var_bp_10h;
    0x00027170 ldr r3, [r3]                                      |             r3 = *(0x4e41a);
    0x00027172 str r3, [sp, 0x6c]                                |             var_14h_2 = r3;
    0x00027174 mov.w r3, 0                                       |             r3 = 0;
                                                                 |             if (r0 != 0) {
    0x00027178 cbz r0, 0x2717e                                   |                 
    0x0002717a ldrb r3, [r0]                                     |                 r3 = *(r0);
                                                                 |                 if (r3 != 0) {
    0x0002717c cbnz r3, 0x271b0                                  |                     goto label_15;
                                                                 |                 }
                                                                 |             }
    0x0002717e ldr r3, [pc, 0x144]                               |             
    0x00027180 movs r2, 0                                        |             r2 = 0;
    0x00027182 ldr r0, [pc, 0x144]                               |             
    0x00027184 movs r1, 0x29                                     |             r1 = 0x29;
    0x00027186 add r3, pc                                        |             r3 = 0x4e450;
    0x00027188 add r0, pc                                        |             r0 = 0x4e456;
    0x0002718a bl 0x40ed8                                        |             zbx_strdup2 ();
    0x0002718e ldr r2, [pc, 0x13c]                               |             
    0x00027190 str r0, [r7]                                      |             *(r7) = r0;
    0x00027192 ldr r2, [r6, r2]                                  |             r2 = *((r6 + r2));
    0x00027194 ldr r2, [r2]                                      |             r2 = *(0x272ce);
    0x00027196 cmp r2, 3                                         |             
                                                                 |             if (r2 <= 3) {
    0x00027198 ble 0x271aa                                       |                 goto label_2;
                                                                 |             }
    0x0002719a ldr r2, [pc, 0x134]                               |             
    0x0002719c mov r3, r0                                        |             r3 = r0;
    0x0002719e ldr r1, [pc, 0x134]                               |             
    0x000271a0 movs r0, 4                                        |             r0 = 4;
    0x000271a2 add r2, pc                                        |             r2 = 0x4e478;
    0x000271a4 add r1, pc                                        |             r1 = 0x4e47e;
                                                                 |         }
    0x000271a6 bl 0x30d1c                                        |         zbx_zabbix_log ();
                                                                 | label_2:
    0x000271aa mov.w fp, 1                                       |         
    0x000271ae b 0x2722a                                         |         goto label_16;
                                                                 | label_15:
    0x000271b0 mov r5, r1                                        |         r5 = r1;
    0x000271b2 add r1, sp, 8                                     |         r1 += var_14h_3;
    0x000271b4 blx 0xddc0                                        |         r0 = wait ();
    0x000271b8 mov fp, r0                                        |         
    0x000271ba cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x000271bc bne 0x27274                                       |             goto label_17;
                                                                 |         }
    0x000271be ldrd r0, r1, [sp, 0x20]                           |         __asm ("ldrd r0, r1, [var_30h_2]");
    0x000271c2 cmp r1, 0                                         |         
                                                                 |     }
                                                                 |     if (r1 < 0) {
    0x000271c4 bge 0x271d2                                       |         
    0x000271c6 vmov.i32 d16, 0                                   |         __asm ("vmov.i32 d16, 0");
    0x000271ca mov r0, fp                                        |         r0 = fp;
    0x000271cc mov r1, fp                                        |         r1 = fp;
    0x000271ce vstr d16, [sp, 0x20]                              |         __asm ("vstr d16, [sp, 0x20]");
                                                                 |     }
    0x000271d2 ldrd r7, r3, [sp, 0xc]                            |     __asm ("ldrd r7, r3, [var_bp_18h]");
    0x000271d6 ldrd r2, r6, [sp, 0x14]                           |     __asm ("ldrd r2, r6, [var_bp_10h]");
    0x000271da subs r6, r3, r6                                   |     r6 = r3 - r6;
    0x000271dc umull r3, ip, r3, r7                              |     r3:ip = r3 * r7;
    0x000271e0 str r3, [r5]                                      |     *(r5) = r3;
    0x000271e2 mla r3, r7, r2, ip                                |     __asm ("mla r3, r7, r2, ip");
    0x000271e6 umull lr, ip, r7, r0                              |     lr:ip = r7 * r0;
    0x000271ea str r3, [r5, 4]                                   |     *((r5 + 4)) = r3;
    0x000271ec ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x000271ee mla ip, r7, r1, ip                                |     __asm ("mla ip, r7, r1, ip");
    0x000271f2 str.w lr, [r4]                                    |     __asm ("str.w lr, [r4]");
    0x000271f6 sbc.w r5, r2, r3                                  |     __asm ("sbc.w r5, r2, r3");
    0x000271fa adds r2, r6, r0                                   |     r2 = r6 + r0;
    0x000271fc adc.w r3, r1, r5                                  |     __asm ("adc.w r3, r1, r5");
    0x00027200 str.w ip, [r4, 4]                                 |     __asm ("str.w ip, [r4, 4]");
    0x00027204 orrs.w r4, r2, r3                                 |     r4 = r2 | r3;
    0x00027208 strd r2, r3, [sp]                                 |     __asm ("strd r2, r3, [sp]");
                                                                 |     if (r4 != r2) {
    0x0002720c bne 0x2724a                                       |         goto label_18;
                                                                 |     }
    0x0002720e vmov.i64 d16, 0                                   |     __asm ("vmov.i64 d16, 0");
    0x00027212 vmov.f64 d8, d16                                  |     __asm ("vmov.f64 d8, d16");
                                                                 |     do {
    0x00027216 umull r6, r3, r7, r6                              |         r6:r3 = r7 * r6;
    0x0002721a mla r3, r7, r5, r3                                |         __asm ("mla r3, r7, r5, r3");
    0x0002721e strd r6, r3, [sl]                                 |         __asm ("strd r6, r3, [sl]");
    0x00027222 vstr d16, [sb]                                    |         __asm ("vstr d16, [sb]");
    0x00027226 vstr d8, [r8]                                     |         __asm ("vstr d8, [r8]");
                                                                 | label_16:
    0x0002722a ldr r2, [pc, 0xac]                                |         
    0x0002722c ldr r3, [pc, 0x8c]                                |         r3 = *(0x272bc);
    0x0002722e add r2, pc                                        |         r2 = 0x4e50c;
    0x00027230 ldr r3, [r2, r3]                                  |         r3 = *(0x4e50c);
    0x00027232 ldr r2, [r3]                                      |         r2 = *(0x4e50c);
    0x00027234 ldr r3, [sp, 0x6c]                                |         r3 = var_6ch;
    0x00027236 eors r2, r3                                       |         r2 ^= r3;
    0x00027238 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0002723c bne 0x272a8                                       |             goto label_19;
                                                                 |         }
    0x0002723e mov r0, fp                                        |         r0 = fp;
    0x00027240 add sp, 0x74                                      |         
    0x00027242 vpop {d8, d9}                                     |         __asm ("vpop {d8, d9}");
    0x00027246 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
    0x00027248 ldrh r0, [r6, 0x3e]                               |         r0 = *((r6 + 0x3e));
                                                                 | label_18:
    0x0002724a vldr d8, [pc, 0x64]                               |         __asm ("vldr d8, [0x000272b4]");
    0x0002724e bl 0x4c6f4                                        |         r0 = fcn_0004c6f4 (r0, r1, r2);
    0x00027252 vmov d9, r0, r1                                   |         __asm ("vmov d9, r0, r1");
    0x00027256 ldr r2, [sp]                                      |         r2 = *(sp);
    0x00027258 ldr r3, [sp, 4]                                   |         r3 = var_4h;
    0x0002725a vmul.f64 d9, d9, d8                               |         __asm ("vmul.f64 d9, d9, d8");
    0x0002725e mov r0, r2                                        |         r0 = r2;
    0x00027260 mov r1, r3                                        |         r1 = r3;
    0x00027262 bl 0x4c6f4                                        |         r0 = fcn_0004c6f4 (r0, r1, r2);
    0x00027266 vmov d17, r0, r1                                  |         __asm ("vmov d17, r0, r1");
    0x0002726a vdiv.f64 d16, d9, d17                             |         __asm ("vdiv.f64 d16, d9, d17");
    0x0002726e vsub.f64 d8, d8, d16                              |         __asm ("vsub.f64 d8, d8, d16");
    0x00027270 ldrh r0, [r4, 0x1a]                               |         r0 = *((r4 + 0x1a));
    0x00027272 b 0x27216                                         |         
                                                                 |     } while (1);
                                                                 | label_17:
    0x00027274 blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x00027278 ldr r0, [r0]                                      |     r0 = *(r0);
    0x0002727a bl 0x30b74                                        |     zbx_strerror ();
    0x0002727e ldr r1, [pc, 0x5c]                                |     
    0x00027280 mov r2, r0                                        |     r2 = r0;
    0x00027282 movs r0, 0                                        |     r0 = 0;
    0x00027284 add r1, pc                                        |     r1 = 0x4e566;
    0x00027286 bl 0x44820                                        |     zbx_dsprintf ()
    0x00027288 invalid                                           |     
    0x0002728c str r0, [r7]                                      |     *(r7) = r0;
    0x0002728e ldr r2, [r6, r2]                                  |     r2 = *((r6 + r2));
    0x00027290 ldr r2, [r2]                                      |     r2 = *(r2);
    0x00027292 cmp r2, 3                                         |     
                                                                 |     if (r2 <= 3) {
    0x00027294 ble 0x271aa                                       |         goto label_2;
                                                                 |     }
    0x00027296 ldr r2, [pc, 0x48]                                |     
    0x00027298 mov r3, r0                                        |     r3 = r0;
    0x0002729a ldr r1, [pc, 0x48]                                |     
    0x0002729c movs r0, 4                                        |     r0 = 4;
    0x0002729e add r2, pc                                        |     r2 = "init_active_metrics";
    0x000272a0 add r1, pc                                        |     r1 = 0x4e58a;
    0x000272a2 bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x000272a6 b 0x271aa                                         |     goto label_2;
                                                                 | label_19:
    0x000272a8 blx 0xe158                                        |     fcn_0000e158 ();
    0x000272ac nop.w                                             |     
    0x000272b0 movs r0, r0                                       |     
    0x000272b2 movs r0, r0                                       |     
    0x000272b4 movs r0, r0                                       |     
    0x000272b6 eors r1, r3                                       |     r1 ^= r3;
    0x000272b8 ldr r2, [pc, 0x1f0]                               |     r2 = *(0x274ac);
    0x000272ba movs r3, r0                                       |     r3 = r0;
    0x000272bc lsls r4, r2, 0xe                                  |     r4 = r2 << 0xe;
    0x000272be movs r0, r0                                       |     
    0x000272c0 ldr r2, [pc, 0x1b0]                               |     r2 = *(0x27474);
    0x000272c2 movs r3, r0                                       |     r3 = r0;
    0x000272c4 push {r1, r3, r5, r6}                             |     
    0x000272c6 movs r2, r0                                       |     r2 = r0;
    0x000272c8 push {r2, r3, r7}                                 |     
    0x000272ca movs r2, r0                                       |     r2 = r0;
    0x000272cc lsls r4, r7, 0xe                                  |     r4 = r7 << 0xe;
    0x000272ce movs r0, r0                                       |     
    0x000272d0 push {r1, r2, r5, lr}                             |     
    0x000272d2 movs r2, r0                                       |     r2 = r0;
    0x000272d4 push {r2, r3, r4, r5, r6}                         |     
    0x000272d6 movs r2, r0                                       |     r2 = r0;
    0x000272d8 ldr r1, [pc, 0x2a8]                               |     r1 = *(0x27584);
    0x000272da movs r3, r0                                       |     r3 = r0;
                                                                 |     if (r0 != 0) {
    0x000272dc cbz r0, 0x2734e                                   |         
    0x000272de movs r2, r0                                       |         r2 = r0;
    0x000272e0 push {r1, r3, r5}                                 |         
    0x000272e2 movs r2, r0                                       |         r2 = r0;
                                                                 |         if (r0 != 0) {
    0x000272e4 cbz r0, 0x27348                                   |             
    0x000272e6 movs r2, r0                                       |             r2 = r0;
    0x000272e8 ldr r2, [pc, 0x158]                               |             
    0x000272ea ldr r3, [pc, 0x15c]                               |             r3 = *(0x2744a);
    0x000272ec push {r4, r5, r6, lr}                             |             
    0x000272ee sub sp, 0x48                                      |             
    0x000272f0 add r2, pc                                        |             r2 = 0x4e738;
    0x000272f2 mov r4, r1                                        |             r4 = r1;
    0x000272f4 ldr r3, [r2, r3]                                  |             
    0x000272f6 ldr r3, [r3]                                      |             r3 = *(0x4e738);
    0x000272f8 str r3, [sp, 0x44]                                |             var_44h = r3;
    0x000272fa mov.w r3, 0                                       |             r3 = 0;
    0x000272fe ldr r3, [r0, 4]                                   |             r3 = *((r0 + 4));
    0x00027300 cmp r3, 2                                         |             
                                                                 |             if (r3 > 2) {
    0x00027302 bgt 0x27388                                       |                 goto label_20;
                                                                 |             }
    0x00027304 cmp r3, 0                                         |             
                                                                 |             if (r3 > 0) {
    0x00027306 ble 0x27346                                       |                 
    0x00027308 ldr r2, [r0, 8]                                   |                 r2 = *((r0 + 8));
    0x0002730a cmp r3, 2                                         |                 
    0x0002730c ldr r0, [r2]                                      |                 r0 = *(r2);
                                                                 |                 if (r3 != 2) {
    0x0002730e bne 0x27348                                       |                     goto label_21;
                                                                 |                 }
    0x00027310 add r3, sp, 0x14                                  |                 r3 += var_14h_3;
    0x00027312 ldr r6, [r2, 4]                                   |                 r6 = *((r2 + 4));
    0x00027314 add r2, sp, 0x30                                  |                 r2 += var_30h_2;
    0x00027316 str r3, [sp, 8]                                   |                 *((sp + 8)) = r3;
    0x00027318 add r3, sp, 0x38                                  |                 r3 += var_38h_2;
    0x0002731a str r2, [sp]                                      |                 *(sp) = r2;
    0x0002731c str r3, [sp, 4]                                   |                 var_4h_4 = r3;
    0x0002731e add r2, sp, 0x20                                  |                 r2 += var_20h_2;
    0x00027320 add r3, sp, 0x28                                  |                 r3 += var_28h_2;
    0x00027322 add r1, sp, 0x18                                  |                 r1 += var_18h_2;
    0x00027324 bl 0x27150                                        |                 r0 = void (*0x27150)() ();
                                                                 |                 if (r0 != 0) {
    0x00027328 cbnz r0, 0x27362                                  |                     goto label_22;
                                                                 |                 }
    0x0002732a ldr r5, [r4, 0x28]                                |                 r5 = *((r4 + 0x28));
                                                                 |                 if (r6 != 0) {
    0x0002732c cbz r6, 0x27334                                   |                     
    0x0002732e ldrb r3, [r6]                                     |                     r3 = *(r6);
    0x00027330 cmp r3, 0                                         |                     
                                                                 |                     if (r3 != 0) {
    0x00027332 bne 0x273a4                                       |                         goto label_23;
                                                                 |                     }
                                                                 |                 }
                                                                 | label_3:
    0x00027334 ldrd r2, r3, [sp, 0x18]                           |                 __asm ("ldrd r2, r3, [var_18h]");
    0x00027338 orr r5, r5, 1                                     |                 r5 |= 1;
    0x0002733c str r5, [r4, 0x28]                                |                 *((r4 + 0x28)) = r5;
    0x0002733e strd r2, r3, [r4, 8]                              |                 __asm ("strd r2, r3, [r4, 8]");
                                                                 | label_4:
    0x00027342 movs r0, 0                                        |                 r0 = 0;
    0x00027344 b 0x27370                                         |                 goto label_24;
                                                                 |             }
    0x00027346 movs r0, 0                                        |             r0 = 0;
                                                                 |         }
                                                                 | label_21:
    0x00027348 add r3, sp, 0x14                                  |         r3 += var_sp_8h;
    0x0002734a add r1, sp, 0x30                                  |         r1 += var_24h;
    0x0002734c str r3, [sp, 8]                                   |         *((sp + 8)) = r3;
                                                                 |     }
    0x0002734e add r3, sp, 0x38                                  |     r3 += var_38h;
    0x00027350 str r3, [sp, 4]                                   |     var_4h_2 = r3;
    0x00027352 add r2, sp, 0x20                                  |     r2 += var_20h;
    0x00027354 str r1, [sp]                                      |     *(sp) = r1;
    0x00027356 add r3, sp, 0x28                                  |     r3 += var_28h;
    0x00027358 add r1, sp, 0x18                                  |     r1 += var_18h;
    0x0002735a bl 0x27150                                        |     r0 = void (*0x27150)() ();
    0x0002735e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00027360 beq 0x273da                                       |         goto label_25;
                                                                 |     }
                                                                 | label_22:
    0x00027362 ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x00027364 ldr r2, [sp, 0x14]                                |     r2 = var_14h_2;
    0x00027366 orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x0002736a str r3, [r4, 0x28]                                |     *((r4 + 0x28)) = r3;
                                                                 |     do {
                                                                 | label_5:
    0x0002736c movs r0, 1                                        |         r0 = 1;
    0x0002736e str r2, [r4, 0x20]                                |         *((r4 + 0x20)) = r2;
                                                                 | label_24:
    0x00027370 ldr r2, [pc, 0xd8]                                |         
    0x00027372 ldr r3, [pc, 0xd4]                                |         r3 = *(0x2744a);
    0x00027374 add r2, pc                                        |         r2 = 0x4e7c4;
    0x00027376 ldr r3, [r2, r3]                                  |         r3 = *(0x4e7c4);
    0x00027378 ldr r2, [r3]                                      |         r2 = *(0x4e7c4);
    0x0002737a ldr r3, [sp, 0x44]                                |         r3 = var_4h;
    0x0002737c eors r2, r3                                       |         r2 ^= r3;
    0x0002737e mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00027382 bne 0x27440                                       |             goto label_26;
                                                                 |         }
    0x00027384 add sp, 0x48                                      |         
    0x00027386 pop {r4, r5, r6, pc}                              |         
                                                                 | label_20:
    0x00027388 ldr r0, [r1, 0x28]                                |         r0 = *((r1 + 0x28));
    0x0002738a movs r2, 0                                        |         r2 = 0;
    0x0002738c ldr r3, [pc, 0xc0]                                |         
    0x0002738e movs r1, 0x5d                                     |         r1 = 0x5d;
    0x00027390 orr r0, r0, 0x20                                  |         r0 |= 0x20;
    0x00027394 str r0, [r4, 0x28]                                |         *((r4 + 0x28)) = r0;
    0x00027396 add r3, pc                                        |         r3 = 0x4e7ea;
    0x00027398 ldr r0, [pc, 0xb8]                                |         
    0x0002739a add r0, pc                                        |         r0 = 0x4e7f2;
    0x0002739c bl 0x40ed8                                        |         r0 = zbx_strdup2 ();
    0x000273a0 mov r2, r0                                        |         r2 = r0;
    0x000273a2 b 0x2736c                                         |         
                                                                 |     } while (1);
                                                                 | label_23:
    0x000273a4 ldr r1, [pc, 0xb0]                                |     
    0x000273a6 mov r0, r6                                        |     r0 = r6;
    0x000273a8 add r1, pc                                        |     r1 = 0x4e804;
    0x000273aa blx 0xe3b0                                        |     r0 = fcn_0000e3b0 ();
    0x000273ae cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000273b0 beq 0x27334                                       |         goto label_3;
                                                                 |     }
    0x000273b2 ldr r1, [pc, 0xa8]                                |     
    0x000273b4 mov r0, r6                                        |     r0 = r6;
    0x000273b6 add r1, pc                                        |     r1 = 0x4e818;
    0x000273b8 blx 0xe3b0                                        |     r0 = fcn_0000e3b0 ();
                                                                 |     if (r0 != 0) {
    0x000273bc cbz r0, 0x273de                                   |         
    0x000273be ldr r1, [pc, 0xa0]                                |         
    0x000273c0 mov r0, r6                                        |         r0 = r6;
    0x000273c2 add r1, pc                                        |         r1 = 0x4e828;
    0x000273c4 blx 0xe3b0                                        |         r0 = fcn_0000e3b0 ();
                                                                 |         if (r0 != 0) {
    0x000273c8 cbnz r0, 0x273ee                                  |             goto label_27;
                                                                 |         }
    0x000273ca ldrd r2, r3, [sp, 0x28]                           |         __asm ("ldrd r2, r3, [var_28h_2]");
    0x000273ce orr r5, r5, 1                                     |         r5 |= 1;
    0x000273d2 str r5, [r4, 0x28]                                |         *((r4 + 0x28)) = r5;
    0x000273d4 strd r2, r3, [r4, 8]                              |         __asm ("strd r2, r3, [r4, 8]");
    0x000273d8 b 0x27342                                         |         goto label_4;
                                                                 | label_25:
    0x000273da ldr r5, [r4, 0x28]                                |         r5 = *((r4 + 0x28));
    0x000273dc b 0x27334                                         |         goto label_3;
                                                                 |     }
    0x000273de ldrd r2, r3, [sp, 0x20]                           |     __asm ("ldrd r2, r3, [var_20h_2]");
    0x000273e2 orr r5, r5, 1                                     |     r5 |= 1;
    0x000273e6 str r5, [r4, 0x28]                                |     *((r4 + 0x28)) = r5;
    0x000273e8 strd r2, r3, [r4, 8]                              |     __asm ("strd r2, r3, [r4, 8]");
    0x000273ec b 0x27342                                         |     goto label_4;
                                                                 | label_27:
    0x000273ee ldr r1, [pc, 0x74]                                |     
    0x000273f0 mov r0, r6                                        |     r0 = r6;
    0x000273f2 add r1, pc                                        |     r1 = 0x4e85c;
    0x000273f4 blx 0xe3b0                                        |     r0 = fcn_0000e3b0 ();
                                                                 |     if (r0 == 0) {
    0x000273f8 cbnz r0, 0x2740a                                  |         
    0x000273fa ldrd r2, r3, [sp, 0x30]                           |         __asm ("ldrd r2, r3, [var_18c0h]");
    0x000273fe orr r5, r5, 2                                     |         r5 |= 2;
    0x00027402 str r5, [r4, 0x28]                                |         *((r4 + 0x28)) = r5;
    0x00027404 strd r2, r3, [r4, 0x10]                           |         __asm ("strd r2, r3, [r4, 0x10]");
    0x00027408 b 0x27342                                         |         goto label_4;
                                                                 |     }
    0x0002740a ldr r1, [pc, 0x5c]                                |     
    0x0002740c mov r0, r6                                        |     r0 = r6;
    0x0002740e add r1, pc                                        |     r1 = 0x4e87c;
    0x00027410 blx 0xe3b0                                        |     r0 = fcn_0000e3b0 ();
                                                                 |     if (r0 == 0) {
    0x00027414 cbnz r0, 0x27426                                  |         
    0x00027416 ldrd r2, r3, [sp, 0x38]                           |         __asm ("ldrd r2, r3, [var_38h_2]");
    0x0002741a orr r5, r5, 2                                     |         r5 |= 2;
    0x0002741e str r5, [r4, 0x28]                                |         *((r4 + 0x28)) = r5;
    0x00027420 strd r2, r3, [r4, 0x10]                           |         __asm ("strd r2, r3, [r4, 0x10]");
    0x00027424 b 0x27342                                         |         goto label_4;
                                                                 |     }
    0x00027426 ldr r3, [pc, 0x44]                                |     
    0x00027428 orr r5, r5, 0x20                                  |     r5 |= 0x20;
    0x0002742c ldr r0, [pc, 0x40]                                |     
    0x0002742e movs r2, 0                                        |     r2 = 0;
    0x00027430 movs r1, 0x76                                     |     r1 = 0x76;
    0x00027432 str r5, [r4, 0x28]                                |     *((r4 + 0x28)) = r5;
    0x00027434 add r3, pc                                        |     r3 = 0x4e8a6;
    0x00027436 add r0, pc                                        |     r0 = 0x4e8aa;
    0x00027438 bl 0x40ed8                                        |     r0 = zbx_strdup2 ();
    0x0002743c mov r2, r0                                        |     r2 = r0;
    0x0002743e b 0x2736c                                         |     goto label_5;
                                                                 | label_26:
    0x00027440 blx 0xe158                                        |     fcn_0000e158 ();
    0x00027444 ldr r0, [pc, 0x3a0]                               |     r0 = *(0x277e8);
    0x00027446 movs r3, r0                                       |     r3 = r0;
    0x00027448 lsls r4, r2, 0xe                                  |     r4 = r2 << 0xe;
    0x0002744a movs r0, r0                                       |     
    0x0002744c ldr r0, [pc, 0x190]                               |     r0 = *(0x275e0);
    0x0002744e movs r3, r0                                       |     r3 = r0;
    0x00027450 strh r2, [r0, 0x16]                               |     *((r0 + 0x16)) = r2;
    0x00027452 movs r2, r0                                       |     r2 = r0;
    0x00027454 sxtb r2, r7                                       |     r2 = (int32_t) r7;
    0x00027456 movs r2, r0                                       |     r2 = r0;
    0x00027458 ldr r6, [sp, 0xf0]                                |     r6 = var_f0h;
    0x0002745a movs r2, r0                                       |     r2 = r0;
    0x0002745c ldr r7, [sp, 0x2a8]                               |     r7 = var_2a8h;
    0x0002745e movs r2, r0                                       |     r2 = r0;
    0x00027460 ldrsb r2, [r0, r2]                                |     r2 = *((r0 + r2));
    0x00027462 movs r2, r0                                       |     r2 = r0;
    0x00027464 add sp, 0x158                                     |     
    0x00027466 movs r2, r0                                       |     r2 = r0;
    0x00027468 adr r0, 0x368                                     |     r0 = 0x368;
    0x0002746a movs r2, r0                                       |     r2 = r0;
    0x0002746c ldr r1, [sp, 0x150]                               |     r1 = var_2a8h;
    0x0002746e movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r6 != 0) {
    0x00027470 cbz r6, 0x274aa                                   |         
    0x00027472 movs r2, r0                                       |         r2 = r0;
    0x00027474 ldr.w r2, [pc, 0x420]                             |         r2 = *(0x00027898);
    0x00027478 ldr.w r3, [pc, 0x420]                             |         
    0x0002747c push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |         
    0x00027480 mov r6, r1                                        |         r6 = r1;
    0x00027482 add r2, pc                                        |         r2 += pc;
    0x00027484 ldr.w r0, [pc, 0x418]                             |         r0 = case.0x2af36.0;
    0x00027488 sub.w sp, sp, 0x18c0                              |         
    0x0002748c ldr.w r1, [pc, 0x414]                             |         
    0x00027490 sub sp, 0xc                                       |         
    0x00027492 ldr r3, [r2, r3]                                  |         r3 = *((r2 + r3));
    0x00027494 add.w r4, sp, 0x18c0                              |         r4 += var_18c0h;
    0x00027498 add r0, pc                                        |         r0 += pc;
    0x0002749a adds r4, 4                                        |         r4 += 4;
    0x0002749c add r1, pc                                        |         r1 = 0x4ed44;
    0x0002749e ldr r3, [r3]                                      |         r3 = *(0x2789c);
    0x000274a0 str r3, [r4]                                      |         *(r4) = r3;
    0x000274a2 mov.w r3, 0                                       |         r3 = 0;
    0x000274a6 blx 0xdf90                                        |         fcn_0000df90 ();
                                                                 |     }
    0x000274aa ldr r3, [pc, 0x3fc]                               |     
    0x000274ac str r0, [sp, 0x10]                                |     var_10h = r0;
    0x000274ae add r3, pc                                        |     r3 = 0x4ed5c;
    0x000274b0 str r3, [sp, 0x1c]                                |     var_1ch_2 = r3;
    0x000274b2 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000274b4 beq.w 0x2784c                                     |         goto label_28;
                                                                 |     }
    0x000274b8 add r3, sp, 0x94                                  |     r3 += var_94h;
    0x000274ba add.w sl, sp, 0x10c0                              |     sl += arg_10c0h;
    0x000274be mov r0, r3                                        |     r0 = r3;
    0x000274c0 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x000274c2 bl 0x32e10                                        |     zbx_vector_ptr_create ();
    0x000274c6 ldr r3, [pc, 0x3e4]                               |     
    0x000274c8 add.w fp, sp, 0x68                                |     
    0x000274cc add.w sl, sl, 4                                   |     sl += 4;
    0x000274d0 str r6, [sp, 0x2c]                                |     var_2ch = r6;
    0x000274d2 add r3, pc                                        |     r3 = "update_cpustats";
    0x000274d4 str r3, [sp, 0x28]                                |     var_28h = r3;
    0x000274d6 sub.w r3, fp, 0x18                                |     r3 -= var_18h_4;
    0x000274da str r3, [sp, 0x14]                                |     var_14h_2 = r3;
                                                                 |     do {
                                                                 | label_6:
    0x000274dc ldr r2, [sp, 0x10]                                |         r2 = var_10h;
    0x000274de mov.w r1, 0x800                                   |         r1 = 0x800;
    0x000274e2 mov r0, sl                                        |         r0 = sl;
    0x000274e4 blx 0xdc98                                        |         r0 = fcn_0000dc98 ();
    0x000274e8 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x000274ea beq 0x2756e                                       |             goto label_29;
                                                                 |         }
                                                                 | label_7:
    0x000274ec movs r1, 0x20                                     |         r1 = 0x20;
    0x000274ee mov r0, sl                                        |         r0 = sl;
    0x000274f0 blx 0xdcd4                                        |         r0 = fcn_0000dcd4 ();
    0x000274f4 cmp r0, 0                                         |         
    0x000274f6 beq 0x274dc                                       |         
                                                                 |     } while (r0 == 0);
    0x000274f8 adds r4, r0, 1                                    |     r4 = r0 + 1;
    0x000274fa movs r1, 0x20                                     |     r1 = 0x20;
    0x000274fc mov r0, r4                                        |     r0 = r4;
    0x000274fe blx 0xdcd4                                        |     r0 = fcn_0000dcd4 ();
    0x00027502 mov r5, r0                                        |     r5 = r0;
    0x00027504 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00027506 beq 0x274dc                                       |         goto label_6;
                                                                 |     }
    0x00027508 mov.w r8, 0                                       |     r8 = 0;
    0x0002750c movs r1, 0x20                                     |     r1 = 0x20;
    0x0002750e strb r8, [r5], 1                                  |     *(r5) = r8;
                                                                 |     r5++;
    0x00027512 mov r0, r5                                        |     r0 = r5;
    0x00027514 blx 0xdcd4                                        |     r0 = fcn_0000dcd4 ();
    0x00027518 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002751a beq 0x274dc                                       |         goto label_6;
                                                                 |     }
    0x0002751c add.w sb, sp, 0x88                                |     sb += var_88h;
    0x00027520 add r6, sp, 0x48                                  |     r6 += var_48h;
    0x00027522 sub.w r3, sb, 0x10                                |     r3 -= var_10h_4;
    0x00027526 strb.w r8, [r0]                                   |     *(r0) = r8;
    0x0002752a str r3, [sp, 0x20]                                |     var_20h = r3;
    0x0002752c sub.w r7, r6, 0xc                                 |     r7 -= var_ch_4;
    0x00027530 str r3, [sp, 4]                                   |     var_4h_2 = r3;
    0x00027532 sub.w r3, sb, 0x18                                |     r3 -= var_18h_5;
    0x00027536 str r3, [sp]                                      |     *(sp) = r3;
    0x00027538 mov r2, r6                                        |     r2 = r6;
    0x0002753a ldr r3, [sp, 0x14]                                |     r3 = var_14h_2;
    0x0002753c sub.w r1, r6, 8                                   |     r1 = r6 - 8;
    0x00027540 mov r0, r4                                        |     r0 = r4;
    0x00027542 str r7, [sp, 8]                                   |     var_sp_8h = r7;
    0x00027544 bl 0x27150                                        |     void (*0x27150)() ();
    0x00027548 str r0, [sp, 0x24]                                |     var_24h = r0;
    0x0002754a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002754c beq.w 0x2777c                                     |         goto label_30;
                                                                 |     }
    0x00027550 ldr r0, [r7]                                      |     r0 = *(r7);
    0x00027552 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00027554 beq 0x274dc                                       |         goto label_6;
                                                                 |     }
    0x00027556 blx 0xde30                                        |     fcn_0000de30 ();
    0x0002755a ldr r2, [sp, 0x10]                                |     r2 = var_10h;
    0x0002755c mov.w r1, 0x800                                   |     r1 = 0x800;
    0x00027560 mov r0, sl                                        |     r0 = sl;
    0x00027562 str.w r8, [r7]                                    |     __asm ("str.w r8, [r7]");
    0x00027566 blx 0xdc98                                        |     r0 = fcn_0000dc98 ();
    0x0002756a cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0002756c bne 0x274ec                                       |         goto label_7;
                                                                 |     }
                                                                 | label_29:
    0x0002756e ldr r0, [sp, 0x10]                                |     r0 = var_10h;
    0x00027570 ldr r6, [sp, 0x2c]                                |     r6 = var_2ch;
    0x00027572 blx 0xdc8c                                        |     fcn_0000dc8c ();
    0x00027576 ldr r1, [pc, 0x338]                               |     
    0x00027578 ldr r0, [pc, 0x338]                               |     
    0x0002757a add r1, pc                                        |     r1 = 0x4ee30;
    0x0002757c add r0, pc                                        |     r0 = 0x4ee34;
    0x0002757e blx 0xdf90                                        |     fcn_0000df90 ();
    0x00027582 str r0, [sp, 0x10]                                |     var_10h = r0;
    0x00027584 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00027586 beq.w 0x27874                                     |         goto label_31;
                                                                 |     }
    0x0002758a add r5, sp, 0xac                                  |     r5 += var_6ch;
    0x0002758c mov.w r1, 0x1000                                  |     r1 = 0x1000;
    0x00027590 mov r0, r5                                        |     r0 = r5;
    0x00027592 bl 0x3ab5c                                        |     zbx_json_initarray ();
    0x00027596 ldr r3, [pc, 0x320]                               |     
    0x00027598 add r3, pc                                        |     r3 = 0x4ee56;
    0x0002759a str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x0002759c ldr r3, [pc, 0x31c]                               |     
    0x0002759e add r3, pc                                        |     r3 = 0x4ee5e;
    0x000275a0 str r3, [sp, 0x30]                                |     var_30h = r3;
    0x000275a2 ldr r3, [pc, 0x31c]                               |     
    0x000275a4 add r3, pc                                        |     r3 = 0x4ee6a;
    0x000275a6 str r3, [sp, 0x34]                                |     var_34h = r3;
    0x000275a8 addw r3, sp, 0x8c8                                |     __asm ("addw r3, arg_8c8h");
    0x000275ac str r3, [sp, 0x28]                                |     var_28h = r3;
                                                                 |     do {
                                                                 | label_8:
    0x000275ae ldr r2, [sp, 0x10]                                |         r2 = var_10h;
    0x000275b0 mov.w r1, 0x800                                   |         r1 = 0x800;
    0x000275b4 mov r0, sl                                        |         r0 = sl;
    0x000275b6 blx 0xdc98                                        |         r0 = fcn_0000dc98 ();
    0x000275ba cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x000275bc beq.w 0x2770a                                     |             goto label_32;
                                                                 |         }
                                                                 | label_9:
    0x000275c0 movs r1, 0x20                                     |         r1 = 0x20;
    0x000275c2 mov r0, sl                                        |         r0 = sl;
    0x000275c4 blx 0xdcd4                                        |         r0 = fcn_0000dcd4 ();
    0x000275c8 cmp r0, 0                                         |         
    0x000275ca beq 0x275ae                                       |         
                                                                 |     } while (r0 == 0);
    0x000275cc adds r4, r0, 1                                    |     r4 = r0 + 1;
    0x000275ce movs r1, 0x20                                     |     r1 = 0x20;
    0x000275d0 mov r0, r4                                        |     r0 = r4;
    0x000275d2 blx 0xdcd4                                        |     r0 = fcn_0000dcd4 ();
    0x000275d6 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000275d8 beq 0x275ae                                       |         goto label_8;
                                                                 |     }
    0x000275da ldr r2, [sp, 0x1c]                                |     r2 = var_1ch_2;
    0x000275dc mov r1, r4                                        |     r1 = r4;
    0x000275de ldr r3, [pc, 0x2e4]                               |     r3 = *(0x278c6);
    0x000275e0 movs r4, 0                                        |     r4 = 0;
    0x000275e2 strb r4, [r0]                                     |     *(r0) = r4;
    0x000275e4 ldr r0, [sp, 0x18]                                |     r0 = var_18h;
    0x000275e6 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x000275e8 mov r2, r3                                        |     r2 = r3;
    0x000275ea str r3, [sp, 0x14]                                |     var_14h_2 = r3;
    0x000275ec bl 0x33174                                        |     r0 = zbx_vector_ptr_search ();
    0x000275f0 adds r3, r0, 1                                    |     r3 = r0 + 1;
                                                                 |     if (r3 == r0) {
    0x000275f2 beq 0x275ae                                       |         goto label_8;
                                                                 |     }
    0x000275f4 ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x000275f6 mov r1, r4                                        |     r1 = r4;
    0x000275f8 ldr.w r8, [pc, 0x2cc]                             |     
    0x000275fc ldr r7, [pc, 0x2cc]                               |     
    0x000275fe subw r3, r3, 0x834                                |     __asm ("subw r3, r3, 0x834");
    0x00027602 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00027604 add r8, pc                                        |     
    0x00027606 add r7, pc                                        |     r7 = 0x4eed6;
    0x00027608 ldr.w r4, [r3, r0, lsl 2]                         |     offset_0 = r0 << 2;
                                                                 |     r4 = *((r3 + offset_0));
    0x0002760c mov r0, r5                                        |     r0 = r5;
    0x0002760e bl 0x3ac94                                        |     zbx_json_addobject ();
    0x00027612 ldr r1, [sp, 0x2c]                                |     r1 = var_2ch;
    0x00027614 movs r3, 1                                        |     r3 = 1;
    0x00027616 mov r2, r4                                        |     r2 = r4;
    0x00027618 mov r0, r5                                        |     r0 = r5;
    0x0002761a bl 0x3ac9c                                        |     zbx_json_addstring ();
    0x0002761e add.w r2, r4, 0x800                               |     r2 = r4 + 0x800;
    0x00027622 movs r3, 1                                        |     r3 = 1;
    0x00027624 ldr r1, [sp, 0x30]                                |     r1 = var_30h;
    0x00027626 mov r0, r5                                        |     r0 = r5;
    0x00027628 add.w sb, r4, 0x1000                              |     sb = r4 + 0x1000;
    0x0002762c bl 0x3ac9c                                        |     zbx_json_addstring ();
    0x00027630 ldr r1, [sp, 0x34]                                |     r1 = var_34h;
    0x00027632 mov r0, r5                                        |     r0 = r5;
    0x00027634 bl 0x3ac94                                        |     zbx_json_addobject ();
    0x00027638 ldrd r2, r3, [sb]                                 |     __asm ("ldrd r2, r3, [sb]");
    0x0002763c mov r1, r8                                        |     r1 = r8;
    0x0002763e mov r0, r5                                        |     r0 = r5;
    0x00027640 str.w r8, [sp, 0x20]                              |     __asm ("str.w r8, [var_20h]");
    0x00027644 bl 0x3ae40                                        |     zbx_json_adduint64 ();
    0x00027648 add.w r3, r4, 0x1040                              |     r3 = r4 + 0x1040;
    0x0002764c mov r1, r7                                        |     r1 = r7;
    0x0002764e mov r0, r5                                        |     r0 = r5;
    0x00027650 str r3, [sp, 0x14]                                |     var_14h_2 = r3;
    0x00027652 ldrd r2, r3, [sb, 8]                              |     __asm ("ldrd r2, r3, [sb, 8]");
    0x00027656 str r7, [sp, 0x24]                                |     var_24h = r7;
    0x00027658 add.w r7, r4, 0x1020                              |     r7 = r4 + 0x1020;
    0x0002765c bl 0x3ae40                                        |     zbx_json_adduint64 ();
    0x00027660 ldrd r2, r3, [sb, 0x10]                           |     __asm ("ldrd r2, r3, [sb, 0x10]");
    0x00027664 mov r0, r5                                        |     r0 = r5;
    0x00027666 ldr.w sb, [pc, 0x268]                             |     sb = *(0x000278d0);
    0x0002766a add.w fp, r7, 0x10                                |     
    0x0002766e ldr.w r8, [pc, 0x264]                             |     r8 = *(0x000278d4);
    0x00027672 add.w r4, r4, 0x1040                              |     r4 += 0x1040;
    0x00027676 add sb, pc                                        |     sb += pc;
    0x00027678 mov r1, sb                                        |     r1 = sb;
    0x0002767a add r8, pc                                        |     r8 = 0x7654e;
    0x0002767c bl 0x3ae40                                        |     zbx_json_adduint64 ();
    0x00027680 vldr d0, [r7, -8]                                 |     __asm ("vldr d0, [r7, -8]");
    0x00027684 mov r1, r8                                        |     r1 = r8;
    0x00027686 mov r0, r5                                        |     r0 = r5;
    0x00027688 bl 0x3af08                                        |     zbx_json_addfloat ();
    0x0002768c mov r0, r5                                        |     r0 = r5;
    0x0002768e vldr d0, [r7]                                     |     __asm ("vldr d0, [r7]");
    0x00027692 ldr r7, [pc, 0x244]                               |     
    0x00027694 add r7, pc                                        |     r7 = 0x4ef72;
    0x00027696 mov r1, r7                                        |     r1 = r7;
    0x00027698 bl 0x3af08                                        |     zbx_json_addfloat ();
    0x0002769c mov r0, r5                                        |     r0 = r5;
    0x0002769e bl 0x3af6c                                        |     zbx_json_close ();
    0x000276a2 ldr r1, [pc, 0x238]                               |     
    0x000276a4 mov r0, r5                                        |     r0 = r5;
    0x000276a6 add r1, pc                                        |     r1 = 0x4ef88;
    0x000276a8 bl 0x3ac94                                        |     zbx_json_addobject ();
    0x000276ac ldr r1, [sp, 0x20]                                |     r1 = var_20h;
    0x000276ae mov r0, r5                                        |     r0 = r5;
    0x000276b0 ldrd r2, r3, [fp, -0x8]                           |     __asm ("ldrd r2, r3, [fp, -0x8]");
    0x000276b4 bl 0x3ae40                                        |     zbx_json_adduint64 ();
    0x000276b8 ldrd r2, r3, [fp]                                 |     __asm ("ldrd r2, r3, [fp]");
    0x000276bc mov r0, r5                                        |     r0 = r5;
    0x000276be ldr r1, [sp, 0x24]                                |     r1 = var_24h;
    0x000276c0 bl 0x3ae40                                        |     zbx_json_adduint64 ();
    0x000276c4 ldr r3, [sp, 0x14]                                |     r3 = var_14h_2;
    0x000276c6 mov r1, sb                                        |     r1 = sb;
    0x000276c8 mov r0, r5                                        |     r0 = r5;
    0x000276ca ldrd r2, r3, [r3, -0x8]                           |     __asm ("ldrd r2, r3, [r3, -0x8]");
    0x000276ce bl 0x3ae40                                        |     zbx_json_adduint64 ();
    0x000276d2 ldr r3, [sp, 0x14]                                |     r3 = var_14h_2;
    0x000276d4 mov r1, r8                                        |     r1 = r8;
    0x000276d6 mov r0, r5                                        |     r0 = r5;
    0x000276d8 vldr d0, [r3]                                     |     __asm ("vldr d0, [r3]");
    0x000276dc bl 0x3af08                                        |     zbx_json_addfloat ();
    0x000276e0 mov r1, r7                                        |     r1 = r7;
    0x000276e2 mov r0, r5                                        |     r0 = r5;
    0x000276e4 vldr d0, [r4, 8]                                  |     __asm ("vldr d0, [r4, 8]");
    0x000276e8 bl 0x3af08                                        |     zbx_json_addfloat ();
    0x000276ec mov r0, r5                                        |     r0 = r5;
    0x000276ee bl 0x3af6c                                        |     zbx_json_close ();
    0x000276f2 mov r0, r5                                        |     r0 = r5;
    0x000276f4 bl 0x3af6c                                        |     zbx_json_close ();
    0x000276f8 ldr r2, [sp, 0x10]                                |     r2 = var_10h;
    0x000276fa mov.w r1, 0x800                                   |     r1 = 0x800;
    0x000276fc str r0, [r0, 0x10]                                |     *((r0 + 0x10)) = r0;
    0x000276fe mov r0, sl                                        |     r0 = sl;
    0x00027700 blx 0xdc98                                        |     r0 = fcn_0000dc98 ();
    0x00027704 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00027706 bne.w 0x275c0                                     |         goto label_9;
                                                                 |     }
                                                                 | label_32:
    0x0002770a mov r4, r0                                        |     r4 = r0;
    0x0002770c ldr r0, [sp, 0x10]                                |     r0 = var_10h;
    0x0002770e blx 0xdc8c                                        |     fcn_0000dc8c ();
    0x00027712 mov r0, r5                                        |     r0 = r5;
    0x00027714 bl 0x3af6c                                        |     zbx_json_close ();
    0x00027718 ldr r2, [r6, 0x28]                                |     r2 = *((r6 + 0x28));
    0x0002771a mov.w r1, 0x12e                                   |     r1 = 0x12e;
    0x0002771e ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x00027720 ldr r0, [pc, 0x1bc]                               |     
    0x00027722 orr r2, r2, 4                                     |     r2 |= 4;
    0x00027726 subw r3, r3, 0x81c                                |     __asm ("subw r3, r3, 0x81c");
    0x0002772a str r2, [r6, 0x28]                                |     *((r6 + 0x28)) = r2;
    0x0002772c ldr r3, [r3]                                      |     r3 = *(r3);
    0x0002772e mov r2, r4                                        |     r2 = r4;
    0x00027730 add r0, pc                                        |     r0 = 0x4f014;
    0x00027732 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x00027736 str r0, [r6, 0x18]                                |     *((r6 + 0x18)) = r0;
    0x00027738 mov r0, r5                                        |     r0 = r5;
    0x0002773a bl 0x3ac14                                        |     zbx_json_free ();
                                                                 | label_11:
    0x0002773e ldr r2, [sp, 0x1c]                                |     r2 = var_1ch_2;
    0x00027740 ldr r3, [pc, 0x1a0]                               |     r3 = *(0x278e4);
    0x00027742 ldr r5, [sp, 0x18]                                |     r5 = var_18h;
    0x00027744 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00027746 mov r0, r5                                        |     r0 = r5;
    0x00027748 mov r1, r3                                        |     r1 = r3;
    0x0002774a str r3, [sp, 0x10]                                |     var_10h = r3;
    0x0002774c bl 0x33280                                        |     zbx_vector_ptr_clear_ext ();
    0x00027750 mov r0, r5                                        |     r0 = r5;
    0x00027752 bl 0x32e70                                        |     zbx_vector_ptr_destroy ();
                                                                 | label_10:
    0x00027756 ldr r2, [pc, 0x190]                               |     
    0x00027758 add.w r1, sp, 0x18c0                              |     r1 += arg_18c0h;
    0x0002775c ldr r3, [pc, 0x13c]                               |     r3 = *(0x2789c);
    0x0002775e adds r1, 4                                        |     r1 += 4;
    0x00027760 add r2, pc                                        |     r2 = 0x4f04e;
    0x00027762 ldr r3, [r2, r3]                                  |     r3 = *(0x4f04e);
    0x00027764 ldr r2, [r3]                                      |     r2 = *(0x4f04e);
    0x00027766 ldr r3, [r1]                                      |     r3 = *(r1);
    0x00027768 eors r2, r3                                       |     r2 ^= r3;
    0x0002776a mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x0002776e bne 0x27870                                       |         goto label_33;
                                                                 |     }
    0x00027770 mov r0, r4                                        |     r0 = r4;
    0x00027772 add.w sp, sp, 0x18c0                              |     
    0x00027776 add sp, 0xc                                       |     
    0x00027778 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_30:
    0x0002777c ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x0002777e sub.w r8, fp, 0x10                                |     r8 -= var_10h_5;
    0x00027782 sub.w r2, fp, 8                                   |     r2 = fp - 8;
    0x00027784 lsls r0, r1, 8                                    |     r0 = r1 << 8;
    0x00027786 mov r1, r8                                        |     r1 = r8;
    0x00027788 mov r0, r4                                        |     r0 = r4;
    0x0002778a str r7, [sp, 0xc]                                 |     var_ch_2 = r7;
    0x0002778c strd sb, r3, [sp, 4]                              |     __asm ("strd sb, r3, [var_4h_5]");
    0x00027790 sub.w r3, sb, 8                                   |     r3 = sb - 8;
    0x00027794 str r3, [sp]                                      |     *(sp) = r3;
    0x00027796 mov r3, fp                                        |     r3 = fp;
    0x00027798 bl 0x28c50                                        |     r0 = get_fs_inode_stat ();
    0x0002779c mov r2, r0                                        |     r2 = r0;
                                                                 |     if (r0 == 0) {
    0x0002779e cbz r0, 0x277b2                                   |         goto label_34;
                                                                 |     }
    0x000277a0 ldr r0, [sp, 0x3c]                                |     r0 = var_3ch;
    0x000277a2 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000277a4 beq.w 0x274dc                                     |         goto label_6;
                                                                 |     }
    0x000277a8 blx 0xde30                                        |     fcn_0000de30 ();
    0x000277ac ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x000277ae str r3, [sp, 0x3c]                                |     var_3ch = r3;
    0x000277b0 b 0x274dc                                         |     goto label_6;
                                                                 | label_34:
    0x000277b2 ldr r0, [pc, 0x138]                               |     
    0x000277b4 movw r3, 0x1050                                   |     r3 = 0x1050;
    0x000277b8 movs r1, 0xec                                     |     r1 = 0xec;
    0x000277ba add r0, pc                                        |     r0 = "%s() file '%s' already added";
    0x000277bc bl 0x40dd8                                        |     zbx_malloc2 ();
    0x000277c0 mov r1, r4                                        |     r1 = r4;
    0x000277c2 mov.w r2, 0x800                                   |     r2 = 0x800;
    0x000277c4 str r0, [r0, 0x20]                                |     *((r0 + 0x20)) = r0;
    0x000277c6 mov r7, r0                                        |     r7 = r0;
    0x000277c8 bl 0x4465c                                        |     zbx_strlcpy ();
    0x000277cc mov.w r2, 0x800                                   |     r2 = 0x800;
    0x000277d0 mov r1, r5                                        |     r1 = r5;
    0x000277d2 adds r0, r7, r2                                   |     r0 = r7 + r2;
    0x000277d4 add.w r4, r7, 0x1040                              |     r4 = r7 + 0x1040;
    0x000277d8 bl 0x4465c                                        |     zbx_strlcpy ();
    0x000277dc ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x000277de add.w r2, r7, 0x1000                              |     r2 = r7 + 0x1000;
    0x000277e2 add.w ip, r7, 0x1020                              |     
    0x000277e4 ldrb r1, [r0, r2]                                 |     r1 = *((r0 + r2));
    0x000277e6 vldr d18, [r6, -8]                                |     __asm ("vldr d18, [r6, -8]");
    0x000277e8 cmp r3, 2                                         |     
    0x000277ea add.w lr, r7, 0x1000                              |     lr = r7 + 0x1000;
    0x000277ee mov r1, r7                                        |     r1 = r7;
    0x000277f0 vldr d17, [r3, -8]                                |     __asm ("vldr d17, [r3, -8]");
    0x000277f4 add.w r3, r7, 0x1020                              |     r3 = r7 + 0x1020;
    0x000277f8 ldrd r6, r7, [r6]                                 |     __asm ("ldrd r6, r7, [r6]");
    0x000277fc adds r2, 0x10                                     |     r2 += 0x10;
    0x000277fe vstr d18, [lr]                                    |     __asm ("vstr d18, [lr]");
    0x00027802 adds r3, 0x10                                     |     r3 += 0x10;
    0x00027804 vldr d16, [r8, -8]                                |     __asm ("vldr d16, [r8, -8]");
    0x00027808 strd r6, r7, [r2, -0x8]                           |     __asm ("strd r6, r7, [r2, -0x8]");
    0x0002780c ldr r0, [sp, 0x18]                                |     r0 = var_18h;
    0x0002780e ldrd r6, r7, [sb, -0x10]                          |     __asm ("ldrd r6, r7, [var_10h_4]");
    0x00027812 vstr d16, [r2]                                    |     __asm ("vstr d16, [r2]");
    0x00027816 vstr d17, [ip, -8]                                |     __asm ("vstr d17, [ip, -8]");
    0x00027818 subs r2, r0, r4                                   |     r2 = r0 - r4;
    0x0002781a strd r6, r7, [ip]                                 |     __asm ("strd r6, r7, [ip]");
    0x0002781c str r0, [r0, 0x70]                                |     *((r0 + 0x70)) = r0;
    0x0002781e ldrd r6, r7, [fp, -0x10]                          |     __asm ("ldrd r6, r7, [var_bp_10h]");
    0x00027822 strd r6, r7, [r3, -0x8]                           |     __asm ("strd r6, r7, [r3, -0x8]");
    0x00027824 str r2, [r0, 0x70]                                |     *((r0 + 0x70)) = r2;
    0x00027826 ldrd r6, r7, [fp]                                 |     __asm ("ldrd r6, r7, [fp]");
    0x0002782a strd r6, r7, [r4, -0x8]                           |     __asm ("strd r6, r7, [r4, -0x8]");
    0x0002782e ldrd r6, r7, [fp, -0x8]                           |     __asm ("ldrd r6, r7, [fp, -0x8]");
    0x00027832 strd r6, r7, [r3]                                 |     __asm ("strd r6, r7, [r3]");
    0x00027836 ldrd r2, r3, [sb, -0x8]                           |     __asm ("ldrd r2, r3, [sb, -0x8]");
    0x0002783a strd r2, r3, [r4]                                 |     __asm ("strd r2, r3, [r4]");
    0x0002783e ldrd r2, r3, [sb]                                 |     __asm ("ldrd r2, r3, [sb]");
    0x00027842 strd r2, r3, [r4, 8]                              |     __asm ("strd r2, r3, [r4, 8]");
    0x00027844 movs r3, 2                                        |     r3 = 2;
    0x00027846 bl 0x32ea0                                        |     zbx_vector_ptr_append ();
    0x0002784a b 0x274dc                                         |     goto label_6;
                                                                 | label_28:
    0x0002784c ldr r3, [r6, 0x28]                                |     r3 = *((r6 + 0x28));
    0x0002784e movs r4, 1                                        |     r4 = 1;
    0x00027850 orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x00027854 str r3, [r6, 0x28]                                |     *((r6 + 0x28)) = r3;
    0x00027856 blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x0002785a ldr r0, [r0]                                      |     r0 = *(r0);
    0x0002785c bl 0x30b74                                        |     zbx_strerror ();
    0x00027860 ldr r1, [pc, 0x8c]                                |     
    0x00027862 mov r2, r0                                        |     r2 = r0;
    0x00027864 ldr r0, [sp, 0x10]                                |     r0 = var_10h;
    0x00027866 add r1, pc                                        |     r1 = 0x4f15a;
    0x00027868 bl 0x44820                                        |     zbx_dsprintf ()
    0x0002786c str r0, [r6, 0x20]                                |     *((r6 + 0x20)) = r0;
    0x0002786e b 0x27756                                         |     goto label_10;
                                                                 | label_33:
    0x00027870 blx 0xe158                                        |     fcn_0000e158 ();
                                                                 | label_31:
    0x00027874 ldr r3, [r6, 0x28]                                |     r3 = *((r6 + 0x28));
    0x00027876 movs r4, 1                                        |     r4 = 1;
    0x00027878 orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x0002787c str r3, [r6, 0x28]                                |     *((r6 + 0x28)) = r3;
    0x0002787e blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x00027882 ldr r0, [r0]                                      |     r0 = *(r0);
    0x00027884 bl 0x30b74                                        |     zbx_strerror ();
    0x00027888 ldr r1, [pc, 0x68]                                |     
    0x0002788a mov r2, r0                                        |     r2 = r0;
    0x0002788c ldr r0, [sp, 0x10]                                |     r0 = var_10h;
    0x0002788e add r1, pc                                        |     r1 = 0x4f186;
    0x00027890 bl 0x44820                                        |     zbx_dsprintf ()
    0x00027894 str r0, [r6, 0x20]                                |     *((r6 + 0x20)) = r0;
    0x00027896 b 0x2773e                                         |     goto label_11;
                                                                 | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x26d38 */
                                                     | #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;
    0x00026d38 ldr r2, [pc, 0x1b0]                   |     
    0x00026d3a ldr r3, [pc, 0x1b4]                   |     r3 = *(0x26ef2);
    0x00026d3c push.w {r4, r5, r6, r7, r8, lr}       |     
    0x00026d40 mov r4, r1                            |     r4 = r1;
    0x00026d42 ldr r5, [r0, 4]                       |     r5 = *((r0 + 4));
    0x00026d44 add r2, pc                            |     r2 = "pecified_by___s__configuration_parameter:_returned_value_is_not_a_UTF_8_string";
    0x00026d46 vpush {d8}                            |     __asm ("vpush {d8}");
    0x00026d4a sub sp, 0x20                          |     
    0x00026d4c ldr r3, [r2, r3]                      |     
    0x00026d4e cmp r5, 2                             |     
    0x00026d50 ldr r3, [r3]                          |     r3 = "pecified_by___s__configuration_parameter:_returned_value_is_not_a_UTF_8_string";
    0x00026d52 str r3, [sp, 0x1c]                    |     var_1ch = r3;
    0x00026d54 mov.w r3, 0                           |     r3 = 0;
                                                     |     if (r5 > 2) {
    0x00026d58 bgt 0x26dfe                           |         goto label_4;
                                                     |     }
    0x00026d5a cmp r5, 0                             |     
                                                     |     if (r5 <= 0) {
    0x00026d5c ble 0x26dbe                           |         goto label_5;
                                                     |     }
    0x00026d5e ldr.w r8, [r0, 8]                     |     r8 = *((r0 + 8));
    0x00026d62 ldr.w r6, [r8]                        |     r6 = *(r8);
    0x00026d66 cmp r6, 0                             |     
                                                     |     if (r6 == 0) {
    0x00026d68 beq.w 0x26ebe                         |         goto label_6;
                                                     |     }
    0x00026d6c ldrb r7, [r6]                         |     r7 = *(r6);
    0x00026d6e cmp r7, 0                             |     
                                                     |     if (r7 != 0) {
    0x00026d70 bne 0x26e1e                           |         goto label_7;
                                                     |     }
                                                     | label_1:
    0x00026d72 cmp r5, 2                             |     
                                                     |     if (r5 != 2) {
    0x00026d74 bne 0x26dfa                           |         goto label_8;
                                                     |     }
    0x00026d76 ldr.w r8, [r8, 4]                     |     r8 = *((r8 + 4));
    0x00026d7a cmp.w r8, 0                           |     
                                                     |     if (r8 == 0) {
    0x00026d7e beq 0x26dfa                           |         goto label_8;
                                                     |     }
    0x00026d80 ldrb.w r6, [r8]                       |     r6 = *(r8);
    0x00026d84 cmp r6, 0                             |     
                                                     |     if (r6 != 0) {
    0x00026d86 bne 0x26e5a                           |         goto label_9;
                                                     |     }
                                                     |     do {
                                                     | label_3:
    0x00026d88 movs r1, 3                            |         r1 = 3;
    0x00026d8a mov r0, sp                            |         r0 = sp;
    0x00026d8c blx 0xe340                            |         r0 = fcn_0000e340 ();
    0x00026d90 cmp r0, r6                            |         
                                                     |         if (r0 <= r6) {
    0x00026d92 ble.w 0x26ea2                         |             goto label_10;
                                                     |         }
    0x00026d96 add r3, sp, 0x20                      |         r3 += var_20h;
    0x00026d98 cmp r7, 1                             |         
    0x00026d9a add.w r6, r3, r6, lsl 3               |         r6 = r3 + (r6 << 3);
    0x00026d9e vldr d8, [r6, -0x20]                  |         __asm ("vldr d8, [r6, -0x20]");
    0x00026da0 ldrh r0, [r1, 0x18]                   |         r0 = *((r1 + 0x18));
                                                     |         if (r7 == 1) {
    0x00026da2 bne 0x26dce                           |             
    0x00026da4 movs r0, 0x54                         |             r0 = 0x54;
    0x00026da6 blx 0xdbf8                            |             r0 = longjmp_chk ();
    0x00026daa cmp r0, 0                             |             
                                                     |             if (r0 <= 0) {
    0x00026dac ble.w 0x26ec6                         |                 goto label_11;
                                                     |             }
    0x00026db0 vmov s15, r0                          |             __asm ("vmov s15, r0");
    0x00026db4 vcvt.f64.s32 d16, s15                 |             __asm ("vcvt.f64.s32 d16, s15");
    0x00026db8 vdiv.f64 d8, d8, d16                  |             __asm ("vdiv.f64 d8, d8, d16");
    0x00026dbc b 0x26dce                             |             goto label_12;
                                                     | label_5:
    0x00026dbe movs r1, 3                            |             r1 = 3;
    0x00026dc0 mov r0, sp                            |             r0 = sp;
    0x00026dc2 blx 0xe340                            |             r0 = fcn_0000e340 ();
    0x00026dc6 cmp r0, 0                             |             
                                                     |             if (r0 <= 0) {
    0x00026dc8 ble 0x26ea2                           |                 goto label_10;
                                                     |             }
    0x00026dca vldr d8, [sp]                         |             __asm ("vldr d8, [sp]");
                                                     |         }
                                                     | label_12:
    0x00026dce ldr r3, [r4, 0x28]                    |         r3 = *((r4 + 0x28));
    0x00026dd0 movs r0, 0                            |         r0 = 0;
    0x00026dd2 vstr d8, [r4, 0x10]                   |         __asm ("vstr d8, [r4, 0x10]");
    0x00026dd6 orr r3, r3, 2                         |         r3 |= 2;
    0x00026dda str r3, [r4, 0x28]                    |         *((r4 + 0x28)) = r3;
                                                     | label_0:
    0x00026ddc ldr r2, [pc, 0x114]                   |         
    0x00026dde ldr r3, [pc, 0x110]                   |         r3 = *(0x26ef2);
    0x00026de0 add r2, pc                            |         r2 = 0x4dcd8;
    0x00026de2 ldr r3, [r2, r3]                      |         r3 = *(0x4dcd8);
    0x00026de4 ldr r2, [r3]                          |         r2 = *(0x4dcd8);
    0x00026de6 ldr r3, [sp, 0x1c]                    |         r3 = var_1ch;
    0x00026de8 eors r2, r3                           |         r2 ^= r3;
    0x00026dea mov.w r3, 0                           |         r3 = 0;
                                                     |         if (r2 != r3) {
    0x00026dee bne 0x26ee8                           |             goto label_13;
                                                     |         }
    0x00026df0 add sp, 0x20                          |         
    0x00026df2 vpop {d8}                             |         __asm ("vpop {d8}");
    0x00026df6 pop.w {r4, r5, r6, r7, r8, pc}        |         
                                                     | label_8:
    0x00026dfa movs r6, 0                            |         r6 = 0;
    0x00026dfc b 0x26d88                             |         
                                                     |     } while (1);
                                                     | label_4:
    0x00026dfe ldr r0, [r1, 0x28]                    |     r0 = *((r1 + 0x28));
    0x00026e00 movs r2, 0                            |     r2 = 0;
    0x00026e02 ldr r3, [pc, 0xf4]                    |     
    0x00026e04 movs r1, 0x88                         |     r1 = 0x88;
    0x00026e06 orr r0, r0, 0x20                      |     r0 |= 0x20;
    0x00026e0a str r0, [r4, 0x28]                    |     *((r4 + 0x28)) = r0;
    0x00026e0c add r3, pc                            |     r3 = 0x4dd0a;
    0x00026e0e ldr r0, [pc, 0xec]                    |     
    0x00026e10 add r0, pc                            |     r0 = 0x4dd12;
    0x00026e12 bl 0x40ed8                            |     r0 = zbx_strdup2 ();
    0x00026e16 mov r3, r0                            |     r3 = r0;
                                                     | label_2:
    0x00026e18 movs r0, 1                            |     r0 = 1;
    0x00026e1a str r3, [r4, 0x20]                    |     *((r4 + 0x20)) = r3;
    0x00026e1c b 0x26ddc                             |     goto label_0;
                                                     | label_7:
    0x00026e1e ldr r1, [pc, 0xe0]                    |     
    0x00026e20 mov r0, r6                            |     r0 = r6;
    0x00026e22 add r1, pc                            |     r1 = 0x4dd28;
    0x00026e24 blx 0xe3b0                            |     r0 = fcn_0000e3b0 ();
    0x00026e28 mov r7, r0                            |     r7 = r0;
    0x00026e2a cmp r0, 0                             |     
                                                     |     if (r0 == 0) {
    0x00026e2c beq 0x26d72                           |         goto label_1;
                                                     |     }
    0x00026e2e ldr r1, [pc, 0xd4]                    |     
    0x00026e30 mov r0, r6                            |     r0 = r6;
    0x00026e32 movs r7, 1                            |     r7 = 1;
    0x00026e34 add r1, pc                            |     r1 = 0x4dd3e;
    0x00026e36 blx 0xe3b0                            |     r0 = fcn_0000e3b0 ();
    0x00026e3a cmp r0, 0                             |     
                                                     |     if (r0 == 0) {
    0x00026e3c beq 0x26d72                           |         goto label_1;
                                                     |     }
    0x00026e3e ldr r0, [r4, 0x28]                    |     r0 = *((r4 + 0x28));
    0x00026e40 movs r2, 0                            |     r2 = 0;
    0x00026e42 ldr r3, [pc, 0xc4]                    |     
    0x00026e44 movs r1, 0x94                         |     r1 = 0x94;
    0x00026e46 orr r0, r0, 0x20                      |     r0 |= 0x20;
    0x00026e4a str r0, [r4, 0x28]                    |     *((r4 + 0x28)) = r0;
    0x00026e4c add r3, pc                            |     r3 = 0x4dd5a;
    0x00026e4e ldr r0, [pc, 0xbc]                    |     
    0x00026e50 add r0, pc                            |     r0 = 0x4dd62;
    0x00026e52 bl 0x40ed8                            |     r0 = zbx_strdup2 ();
    0x00026e56 mov r3, r0                            |     r3 = r0;
    0x00026e58 b 0x26e18                             |     goto label_2;
                                                     | label_9:
    0x00026e5a ldr r1, [pc, 0xb4]                    |     
    0x00026e5c mov r0, r8                            |     r0 = r8;
    0x00026e5e add r1, pc                            |     r1 = 0x4dd74;
    0x00026e60 blx 0xe3b0                            |     r0 = fcn_0000e3b0 ();
    0x00026e64 mov r6, r0                            |     r6 = r0;
    0x00026e66 cmp r0, 0                             |     
                                                     |     if (r0 == 0) {
    0x00026e68 beq 0x26d88                           |         goto label_3;
                                                     |     }
    0x00026e6a ldr r1, [pc, 0xa8]                    |     
    0x00026e6c mov r0, r8                            |     r0 = r8;
    0x00026e6e add r1, pc                            |     r1 = 0x4dd88;
    0x00026e70 blx 0xe3b0                            |     r0 = fcn_0000e3b0 ();
                                                     |     if (r0 == 0) {
    0x00026e74 cbz r0, 0x26ec2                       |         goto label_14;
                                                     |     }
    0x00026e76 ldr r1, [pc, 0xa0]                    |     
    0x00026e78 mov r0, r8                            |     r0 = r8;
    0x00026e7a mov r6, r5                            |     r6 = r5;
    0x00026e7c add r1, pc                            |     r1 = 0x4dd9a;
    0x00026e7e blx 0xe3b0                            |     r0 = fcn_0000e3b0 ();
    0x00026e82 cmp r0, 0                             |     
                                                     |     if (r0 == 0) {
    0x00026e84 beq 0x26d88                           |         goto label_3;
                                                     |     }
    0x00026e86 ldr r0, [r4, 0x28]                    |     r0 = *((r4 + 0x28));
    0x00026e88 movs r2, 0                            |     r2 = 0;
    0x00026e8a ldr r3, [pc, 0x90]                    |     
    0x00026e8c movs r1, 0xa2                         |     r1 = 0xa2;
    0x00026e8e orr r0, r0, 0x20                      |     r0 |= 0x20;
    0x00026e92 str r0, [r4, 0x28]                    |     *((r4 + 0x28)) = r0;
    0x00026e94 add r3, pc                            |     r3 = 0x4ddb6;
    0x00026e96 ldr r0, [pc, 0x88]                    |     
    0x00026e98 add r0, pc                            |     r0 = 0x4ddbe;
    0x00026e9a bl 0x40ed8                            |     r0 = zbx_strdup2 ();
    0x00026e9e mov r3, r0                            |     r3 = r0;
    0x00026ea0 b 0x26e18                             |     goto label_2;
                                                     | label_10:
    0x00026ea2 ldr r0, [r4, 0x28]                    |     r0 = *((r4 + 0x28));
    0x00026ea4 movs r2, 0                            |     r2 = 0;
    0x00026ea6 ldr r3, [pc, 0x7c]                    |     
    0x00026ea8 movs r1, 0xa8                         |     r1 = 0xa8;
    0x00026eaa orr r0, r0, 0x20                      |     r0 |= 0x20;
    0x00026eae str r0, [r4, 0x28]                    |     *((r4 + 0x28)) = r0;
    0x00026eb0 add r3, pc                            |     r3 = 0x4ddda;
    0x00026eb2 ldr r0, [pc, 0x74]                    |     
    0x00026eb4 add r0, pc                            |     r0 = 0x4dde2;
    0x00026eb6 bl 0x40ed8                            |     r0 = zbx_strdup2 ();
    0x00026eba mov r3, r0                            |     r3 = r0;
    0x00026ebc b 0x26e18                             |     goto label_2;
                                                     | label_6:
    0x00026ebe mov r7, r6                            |     r7 = r6;
    0x00026ec0 b 0x26d72                             |     goto label_1;
                                                     | label_14:
    0x00026ec2 movs r6, 1                            |     r6 = 1;
    0x00026ec4 b 0x26d88                             |     goto label_3;
                                                     | label_11:
    0x00026ec6 ldr r3, [r4, 0x28]                    |     r3 = *((r4 + 0x28));
    0x00026ec8 orr r3, r3, 0x20                      |     r3 |= 0x20;
    0x00026ecc str r3, [r4, 0x28]                    |     *((r4 + 0x28)) = r3;
    0x00026ece blx 0xe3d4                            |     r0 = fcn_0000e3d4 ();
    0x00026ed2 ldr r0, [r0]                          |     r0 = *(r0);
    0x00026ed4 bl 0x30b74                            |     zbx_strerror ();
    0x00026ed8 ldr r1, [pc, 0x50]                    |     
    0x00026eda mov r2, r0                            |     r2 = r0;
    0x00026edc movs r0, 0                            |     r0 = 0;
    0x00026ede add r1, pc                            |     r1 = 0x4de0e;
    0x00026ee0 bl 0x44820                            |     r0 = zbx_dsprintf ()
    0x00026ee4 mov r3, r0                            |     r3 = r0;
    0x00026ee6 b 0x26e18                             |     goto label_2;
                                                     | label_13:
    0x00026ee8 blx 0xe158                            |     fcn_0000e158 ();
    0x00026eec ldr r6, [pc, 0x250]                   |     r6 = *(0x27140);
    0x00026eee movs r3, r0                           |     r3 = r0;
    0x00026ef0 lsls r4, r2, 0xe                      |     r4 = r2 << 0xe;
    0x00026ef2 movs r0, r0                           |     
    0x00026ef4 ldr r5, [pc, 0x3e0]                   |     r5 = *(0x272d8);
    0x00026ef6 movs r3, r0                           |     r3 = r0;
    0x00026ef8 ldrh r4, [r1, 2]                      |     r4 = *((r1 + 2));
    0x00026efa movs r2, r0                           |     r2 = r0;
    0x00026efc invalid                               |     
                                                     | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x269e4 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.SYSTEM_CPU_NUM ()        | void SYSTEM_CPU_NUM (int16_t arg1, int16_t arg2) {
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x000269e4 invalid                   |     
    0x000269e8 ldr r3, [r0, 4]           |     r3 = *((r0 + 4));
    0x000269ea cmp r3, 1                 |     
                                         |     if (r3 > 1) {
    0x000269ec bgt 0x26a18               |         goto label_2;
                                         |     }
                                         |     if (r3 != 1) {
    0x000269ee bne 0x269fa               |         goto label_3;
                                         |     }
    0x000269f0 ldr r3, [r0, 8]           |     r3 = *((r0 + 8));
    0x000269f2 ldr r5, [r3]              |     r5 = *(r3);
                                         |     if (r5 == 0) {
    0x000269f4 cbz r5, 0x269fa           |         goto label_3;
                                         |     }
    0x000269f6 ldrb r3, [r5]             |     r3 = *(r5);
    0x000269f8 cbnz r3, 0x26a38          |     
                                         |     while (r0 == 0) {
                                         | label_3:
    0x000269fa movs r0, 0x54             |         r0 = 0x54;
                                         | label_0:
    0x000269fc blx 0xdbf8                |         r0 = longjmp_chk ();
    0x00026a00 adds r2, r0, 1            |         r2 = r0 + 1;
    0x00026a02 mov r3, r0                |         r3 = r0;
                                         |         if (r2 == r0) {
    0x00026a04 beq 0x26a56               |             goto label_4;
                                         |         }
    0x00026a06 ldr r2, [r4, 0x28]        |         r2 = *((r4 + 0x28));
    0x00026a08 asrs r1, r0, 0x1f         |         r1 = r0 >> 0x1f;
    0x00026a0a movs r0, 0                |         r0 = 0;
    0x00026a0c strd r3, r1, [r4, 8]      |         __asm ("strd r3, r1, [r4, 8]");
    0x00026a10 orr r2, r2, 1             |         r2 |= 1;
    0x00026a14 str r2, [r4, 0x28]        |         *((r4 + 0x28)) = r2;
    0x00026a16 pop {r3, r4, r5, pc}      |         
                                         | label_2:
    0x00026a18 ldr r0, [r1, 0x28]        |         r0 = *((r1 + 0x28));
    0x00026a1a movs r2, 0                |         r2 = 0;
    0x00026a1c ldr r3, [pc, 0x74]        |         
    0x00026a1e movs r1, 0x21             |         r1 = 0x21;
    0x00026a20 orr r0, r0, 0x20          |         r0 |= 0x20;
    0x00026a24 str r0, [r4, 0x28]        |         *((r4 + 0x28)) = r0;
    0x00026a26 add r3, pc                |         r3 = 0x4d4be;
    0x00026a28 ldr r0, [pc, 0x6c]        |         
    0x00026a2a add r0, pc                |         r0 = 0x4d4c6;
    0x00026a2c bl 0x40ed8                |         zbx_strdup2 ();
    0x00026a2e invalid                   |         
                                         | label_1:
    0x00026a32 movs r0, 1                |         r0 = 1;
    0x00026a34 str r3, [r4, 0x20]        |         *((r4 + 0x20)) = r3;
    0x00026a36 pop {r3, r4, r5, pc}      |         
    0x00026a38 ldr r1, [pc, 0x60]        |         
    0x00026a3a mov r0, r5                |         r0 = r5;
    0x00026a3c add r1, pc                |         r1 = "runtime-control";
    0x00026a3e blx 0xe3b0                |         r0 = fcn_0000e3b0 ();
    0x00026a42 cmp r0, 0                 |         
    0x00026a44 beq 0x269fa               |         
                                         |     }
    0x00026a46 ldr r1, [pc, 0x58]        |     
    0x00026a48 mov r0, r5                |     r0 = r5;
    0x00026a4a add r1, pc                |     r1 = 0x4d4f0;
    0x00026a4c blx 0xe3b0                |     r0 = fcn_0000e3b0 ();
                                         |     if (r0 == 0) {
    0x00026a50 cbnz r0, 0x26a78          |         
    0x00026a52 movs r0, 0x53             |         r0 = 0x53;
    0x00026a54 b 0x269fc                 |         goto label_0;
                                         | label_4:
    0x00026a56 ldr r3, [r4, 0x28]        |         r3 = *((r4 + 0x28));
    0x00026a58 orr r3, r3, 0x20          |         r3 |= 0x20;
    0x00026a5c str r3, [r4, 0x28]        |         *((r4 + 0x28)) = r3;
    0x00026a5e blx 0xe3d4                |         r0 = fcn_0000e3d4 ();
    0x00026a62 ldr r0, [r0]              |         r0 = *(r0);
    0x00026a64 bl 0x30b74                |         zbx_strerror ();
    0x00026a68 ldr r1, [pc, 0x38]        |         
    0x00026a6a mov r2, r0                |         r2 = r0;
    0x00026a6c movs r0, 0                |         r0 = 0;
    0x00026a6e add r1, pc                |         r1 = 0x4d516;
    0x00026a70 bl 0x44820                |         r0 = zbx_dsprintf ()
    0x00026a74 mov r3, r0                |         r3 = r0;
    0x00026a76 b 0x26a32                 |         goto label_1;
                                         |     }
    0x00026a78 ldr r0, [r4, 0x28]        |     r0 = *((r4 + 0x28));
    0x00026a7a movs r2, 0                |     r2 = 0;
    0x00026a7c ldr r3, [pc, 0x28]        |     
    0x00026a7e movs r1, 0x2d             |     r1 = 0x2d;
    0x00026a80 orr r0, r0, 0x20          |     r0 |= 0x20;
    0x00026a84 str r0, [r4, 0x28]        |     *((r4 + 0x28)) = r0;
    0x00026a86 add r3, pc                |     r3 = 0x4d532;
    0x00026a88 ldr r0, [pc, 0x20]        |     
    0x00026a8a add r0, pc                |     r0 = 0x4d53a;
    0x00026a8c bl 0x40ed8                |     r0 = zbx_strdup2 ();
    0x00026a90 mov r3, r0                |     r3 = r0;
    0x00026a92 b 0x26a32                 |     goto label_1;
                                         | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x26f30 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.SYSTEM_CPU_SWITCHES ()                       | void SYSTEM_CPU_SWITCHES (int16_t arg2) {
                                                             |     int16_t var_0h;
                                                             |     int32_t var_0h_2;
                                                             |     int16_t var_ch;
                                                             |     int16_t var_80ch;
                                                             |     int16_t var_810h;
                                                             |     r1 = arg2;
    0x00026f30 ldr r2, [pc, 0xe8]                            |     
    0x00026f32 ldr r3, [pc, 0xec]                            |     r3 = *(0x27022);
    0x00026f34 push.w {r4, r5, r6, r7, r8, sb, sl, lr}       |     
    0x00026f38 mov r7, r1                                    |     r7 = r1;
    0x00026f3a add r2, pc                                    |     r2 = 0x4df5a;
    0x00026f3c ldr r0, [pc, 0xe4]                            |     
    0x00026f3e sub.w sp, sp, 0x810                           |     
    0x00026f42 ldr r1, [pc, 0xe4]                            |     
    0x00026f44 mov sb, sp                                    |     sb = sp;
    0x00026f46 ldr r3, [r2, r3]                              |     
    0x00026f48 add r0, pc                                    |     r0 = 0x4df70;
    0x00026f4a vmov.i32 d16, 0                               |     __asm ("vmov.i32 d16, 0");
    0x00026f4e add r1, pc                                    |     r1 = 0x4df7c;
    0x00026f50 ldr r3, [r3]                                  |     r3 = *(0x4df5a);
    0x00026f52 str.w r3, [sp, 0x80c]                         |     __asm ("str.w r3, [var_80ch]");
    0x00026f56 mov.w r3, 0                                   |     r3 = 0;
    0x00026f5a vstr d16, [sb]                                |     __asm ("vstr d16, [sb]");
    0x00026f5e blx 0xdf90                                    |     r0 = fcn_0000df90 ();
    0x00026f62 mov r6, r0                                    |     r6 = r0;
    0x00026f64 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00026f66 beq 0x26ff8                                   |         goto label_2;
                                                             |     }
    0x00026f68 ldr.w sl, [pc, 0xc0]                          |     sl = *(0x0002702c);
    0x00026f6c movw r8, 0x7463                               |     
    0x00026f70 add r5, sp, 0xc                               |     r5 += var_ch;
    0x00026f72 movt r8, 0x7478                               |     r8 = 0x74787463;
    0x00026f76 add sl, pc                                    |     sl += pc;
                                                             |     do {
                                                             | label_0:
    0x00026f78 mov r2, r6                                    |         r2 = r6;
    0x00026f7a mov.w r1, 0x800                               |         r1 = 0x800;
    0x00026f7e mov r0, r5                                    |         r0 = r5;
    0x00026f80 blx 0xdc98                                    |         r0 = fcn_0000dc98 ();
    0x00026f84 mov r4, r0                                    |         r4 = r0;
                                                             |         if (r0 == 0) {
    0x00026f86 cbz r0, 0x26fd4                               |             goto label_3;
                                                             |         }
    0x00026f88 ldr r3, [r5]                                  |         r3 = *(r5);
    0x00026f8a cmp r3, r8                                    |         
    0x00026f8c bne 0x26f78                                   |         
                                                             |     } while (r3 != r8);
    0x00026f8e mov r2, sb                                    |     r2 = sb;
    0x00026f90 mov r1, sl                                    |     r1 = sl;
    0x00026f92 mov r0, r5                                    |     r0 = r5;
    0x00026f94 movs r4, 0                                    |     r4 = 0;
    0x00026f96 blx 0xdc68                                    |     fcn_0000dc68 ();
    0x00026f98 cdp p8, 6, c2, c8, c1, 0                      |     __asm ("cdp p8, 6, c2, c8, c1, 0");
                                                             |     if (r4 != 0) {
    0x00026f9c bne 0x26f78                                   |         goto label_0;
                                                             |     }
    0x00026f9e ldr r3, [r7, 0x28]                            |     r3 = *((r7 + 0x28));
    0x00026fa0 mov r0, r6                                    |     r0 = r6;
    0x00026fa2 orr r3, r3, 1                                 |     r3 |= 1;
    0x00026fa6 str r3, [r7, 0x28]                            |     *((r7 + 0x28)) = r3;
    0x00026fa8 ldrd r2, r3, [sb]                             |     __asm ("ldrd r2, r3, [sb]");
    0x00026fac strd r2, r3, [r7, 8]                          |     __asm ("strd r2, r3, [r7, 8]");
    0x00026fb0 blx 0xdc8c                                    |     fcn_0000dc8c ();
                                                             |     do {
    0x00026fb4 ldr r2, [pc, 0x78]                            |         
    0x00026fb6 ldr r3, [pc, 0x68]                            |         r3 = *(0x27022);
    0x00026fb8 add r2, pc                                    |         r2 = "buffer: new element %d";
    0x00026fba ldr r3, [r2, r3]                              |         r3 = "buffer: new element %d";
    0x00026fbc ldr r2, [r3]                                  |         r2 = "buffer: new element %d";
    0x00026fbe ldr.w r3, [sp, 0x80c]                         |         r3 = var_80ch;
    0x00026fc2 eors r2, r3                                   |         r2 ^= r3;
    0x00026fc4 mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x00026fc8 bne 0x27018                                   |             goto label_4;
                                                             |         }
    0x00026fca mov r0, r4                                    |         r0 = r4;
    0x00026fcc add.w sp, sp, 0x810                           |         
    0x00026fd0 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |         
                                                             | label_3:
    0x00026fd4 mov r0, r6                                    |         r0 = r6;
    0x00026fd6 blx 0xdc8c                                    |         fcn_0000dc8c ();
    0x00026fda ldr r0, [r7, 0x28]                            |         r0 = *((r7 + 0x28));
    0x00026fdc mov r2, r4                                    |         r2 = r4;
    0x00026fde ldr r3, [pc, 0x54]                            |         
    0x00026fe0 movs r1, 0xdc                                 |         r1 = 0xdc;
    0x00026fe2 orr r0, r0, 0x20                              |         r0 |= 0x20;
    0x00026fe6 str r0, [r7, 0x28]                            |         *((r7 + 0x28)) = r0;
    0x00026fe8 add r3, pc                                    |         r3 = 0x4e022;
    0x00026fea ldr r0, [pc, 0x4c]                            |         
    0x00026fec add r0, pc                                    |         r0 = 0x4e02a;
    0x00026fee bl 0x40ed8                                    |         zbx_strdup2 ();
                                                             | label_1:
    0x00026ff2 movs r4, 1                                    |         r4 = 1;
    0x00026ff4 str r0, [r7, 0x20]                            |         *((r7 + 0x20)) = r0;
    0x00026ff6 b 0x26fb4                                     |         
                                                             |     } while (1);
                                                             | label_2:
    0x00026ff8 ldr r3, [r7, 0x28]                            |     r3 = *((r7 + 0x28));
    0x00026ffa orr r3, r3, 0x20                              |     r3 |= 0x20;
    0x00026ffe str r3, [r7, 0x28]                            |     *((r7 + 0x28)) = r3;
    0x00027000 blx 0xe3d4                                    |     r0 = fcn_0000e3d4 ();
    0x00027004 ldr r0, [r0]                                  |     r0 = *(r0);
    0x00027006 bl 0x30b74                                    |     zbx_strerror ();
    0x0002700a ldr r1, [pc, 0x30]                            |     
    0x0002700c mov r2, r0                                    |     r2 = r0;
    0x0002700e mov r0, r6                                    |     r0 = r6;
    0x00027010 add r1, pc                                    |     r1 = 0x4e052;
    0x00027012 bl 0x44820                                    |     zbx_dsprintf ()
    0x00027016 b 0x26ff2                                     |     goto label_1;
                                                             | label_4:
    0x00027018 blx 0xe158                                    |     fcn_0000e158 ();
    0x0002701c ldr r4, [pc, 0x278]                           |     r4 = *(0x27298);
    0x0002701e movs r3, r0                                   |     r3 = r0;
    0x00027020 lsls r4, r2, 0xe                              |     r4 = r2 << 0xe;
    0x00027022 movs r0, r0                                   |     
    0x00027024 ldrb r4, [r5, 0x15]                           |     r4 = *((r5 + 0x15));
    0x00027026 movs r2, r0                                   |     r2 = r0;
    0x00027028 adr r3, 0x308                                 |     r3 = 0x308;
    0x0002702a movs r2, r0                                   |     r2 = r0;
    0x0002702c invalid                                       |     
                                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x29210 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.SYSTEM_HOSTNAME ()       | void SYSTEM_HOSTNAME (int16_t arg_388h, int16_t arg1, int16_t arg2) {
                                         |     int16_t var_4h;
                                         |     int32_t var_0h;
                                         |     int16_t var_45h;
                                         |     int16_t var_98h;
                                         |     int16_t var_18ch;
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x00029210 blmi 0xb7bac8             |     __asm ("blmi aav.0x000329c0");
    0x00029214 push {r4, r5, r6, lr}     |     
    0x00029216 sub sp, 0x190             |     
    0x00029218 add r2, pc                |     r2 += pc;
    0x0002921a mov r4, r1                |     r4 = r1;
    0x0002921c ldr r3, [r2, r3]          |     r3 = *((r2 + r3));
    0x0002921e ldr r3, [r3]              |     r3 = *(r3);
    0x00029220 str r3, [sp, 0x18c]       |     var_18ch = r3;
    0x00029222 mov.w r3, 0               |     r3 = 0;
    0x00029226 ldr r3, [r0, 4]           |     r3 = *((r0 + 4));
    0x00029228 cmp r3, 2                 |     
                                         |     if (r3 > 2) {
    0x0002922a bgt 0x29274               |         goto label_2;
                                         |     }
    0x0002922c mov r5, r0                |     r5 = r0;
    0x0002922e add r0, sp, 4             |     r0 += var_4h;
    0x00029230 blx 0xdd84                |     dn_expand ();
    0x00029234 adds r0, 1                |     r0++;
                                         |     if (r0 == 1) {
    0x00029236 beq 0x2929e               |         goto label_3;
                                         |     }
    0x00029238 ldr r0, [pc, 0x90]        |     
    0x0002923a add.w r3, sp, 0x45        |     r3 += var_45h;
    0x0002923c lsls r5, r0, 0xd          |     r5 = r0 << 0xd;
    0x0002923e movs r2, 0                |     r2 = 0;
    0x00029240 movs r1, 0x31             |     r1 = 0x31;
    0x00029242 add r0, pc                |     r0 = 0x52512;
    0x00029244 bl 0x40ed8                |     zbx_strdup2 ();
    0x00029248 mov r1, r4                |     r1 = r4;
    0x0002924a mov r2, r0                |     r2 = r0;
    0x0002924c mov r6, r0                |     r6 = r0;
    0x0002924e mov r0, r5                |     r0 = r5;
    0x00029250 bl 0x1d930                |     r0 = hostname_handle_params ();
    0x00029254 adds r3, r0, 1            |     r3 = r0 + 1;
    0x00029256 mov r5, r0                |     r5 = r0;
                                         |     if (r3 == r0) {
    0x00029258 beq 0x29292               |         goto label_4;
                                         |     }
                                         |     do {
                                         | label_0:
    0x0002925a ldr r2, [pc, 0x74]        |         
    0x0002925c ldr r3, [pc, 0x68]        |         r3 = *(0x292c8);
    0x0002925e add r2, pc                |         r2 = 0x52534;
    0x00029260 ldr r3, [r2, r3]          |         r3 = *(0x52534);
    0x00029262 ldr r2, [r3]              |         r2 = *(0x52534);
    0x00029264 ldr r3, [sp, 0x18c]       |         r3 = var_18ch;
    0x00029266 eors r2, r3               |         r2 ^= r3;
    0x00029268 mov.w r3, 0               |         r3 = 0;
                                         |         if (r2 != r3) {
    0x0002926c bne 0x292be               |             goto label_5;
                                         |         }
    0x0002926e mov r0, r5                |         r0 = r5;
    0x00029270 add sp, 0x190             |         
    0x00029272 pop {r4, r5, r6, pc}      |         
                                         | label_2:
    0x00029274 ldr r0, [r1, 0x28]        |         r0 = *((r1 + 0x28));
    0x00029276 movs r2, 0                |         r2 = 0;
    0x00029278 ldr r3, [pc, 0x58]        |         
    0x0002927a movs r1, 0x27             |         r1 = 0x27;
    0x0002927c orr r0, r0, 0x20          |         r0 |= 0x20;
    0x00029280 str r0, [r4, 0x28]        |         *((r4 + 0x28)) = r0;
    0x00029282 add r3, pc                |         r3 = 0x5255a;
    0x00029284 ldr r0, [pc, 0x50]        |         
    0x00029286 add r0, pc                |         r0 = 0x52562;
    0x00029288 bl 0x40ed8                |         zbx_strdup2 ();
                                         | label_1:
    0x0002928c movs r5, 1                |         r5 = 1;
    0x0002928e str r0, [r4, 0x20]        |         *((r4 + 0x20)) = r0;
    0x00029290 b 0x2925a                 |         
                                         |     } while (1);
                                         | label_4:
    0x00029292 cmp r6, 0                 |     
                                         |     if (r6 == 0) {
    0x00029294 beq 0x2925a               |         goto label_0;
                                         |     }
    0x00029296 mov r0, r6                |     r0 = r6;
    0x00029298 blx 0xde30                |     fcn_0000de30 ();
    0x0002929c b 0x2925a                 |     goto label_0;
                                         | label_3:
    0x0002929e ldr r3, [r4, 0x28]        |     r3 = *((r4 + 0x28));
    0x000292a0 orr r3, r3, 0x20          |     r3 |= 0x20;
    0x000292a4 str r3, [r4, 0x28]        |     *((r4 + 0x28)) = r3;
    0x000292a6 blx 0xe3d4                |     r0 = fcn_0000e3d4 ();
    0x000292aa ldr r0, [r0]              |     r0 = *(r0);
    0x000292ac bl 0x30b74                |     zbx_strerror ();
    0x000292b0 ldr r1, [pc, 0x28]        |     
    0x000292b2 mov r2, r0                |     r2 = r0;
    0x000292b4 movs r0, 0                |     r0 = 0;
    0x000292b6 add r1, pc                |     r1 = 0x52596;
    0x000292b8 bl 0x44820                |     zbx_dsprintf ()
    0x000292bc b 0x2928c                 |     goto label_1;
                                         | label_5:
    0x000292be blx 0xe158                |     fcn_0000e158 ();
    0x000292c2 nop                       |     
    0x000292c4 cmp r1, 0xc0              |     
    0x000292c6 movs r3, r0               |     r3 = r0;
    0x000292c8 lsls r4, r2, 0xe          |     r4 = r2 << 0xe;
    0x000292ca movs r0, r0               |     
    0x000292cc ldr r2, [sp, 0x98]        |     r2 = var_98h;
    0x000292ce movs r2, r0               |     r2 = r0;
    0x000292d0 cmp r1, 0x7a              |     
    0x000292d2 movs r3, r0               |     r3 = r0;
    0x000292d4 str r6, [r2, 0x3c]        |     *((r2 + 0x3c)) = r6;
    0x000292d6 movs r2, r0               |     r2 = r0;
    0x000292d8 ldr r1, [sp, 0x388]       |     r1 = *(arg_388h);
    0x000292da movs r2, r0               |     r2 = r0;
    0x000292dc strh r2, [r3, 0xe]        |     *((r3 + 0xe)) = r2;
    0x000292de movs r2, r0               |     r2 = r0;
    0x000292e0 ldr r3, [r1, 0x28]        |     r3 = *((r1 + 0x28));
    0x000292e2 movs r0, 0                |     r0 = 0;
    0x000292e4 vldr d16, [pc, 0x10]      |     __asm ("vldr d16, [0x000292fc]");
    0x000292e8 orr r3, r3, 1             |     r3 |= 1;
    0x000292ec vstr d16, [r1, 8]         |     __asm ("vstr d16, [r1, 8]");
    0x000292f0 str r3, [r1, 0x28]        |     *((r1 + 0x28)) = r3;
    0x000292f2 bx lr                     |     return;
                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x282c4 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) sym.SYSTEM_HW_CPU ()                                 | void SYSTEM_HW_CPU (int16_t arg_860h, int16_t arg_1040h, int16_t arg_1840h, int16_t arg_2040h, int16_t arg_12000h, int16_t arg1, int16_t arg2) {
                                                                 |     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_5ch;
                                                                 |     int16_t var_60h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x000282c4 svcmi 0xf0e92d                                    |     __asm ("svcmi 0xf0e92d");
    0x000282c8 mov r5, r0                                        |     r5 = r0;
    0x000282ca vpush {d8}                                        |     __asm ("vpush {d8}");
    0x000282ce sub.w sp, sp, 0x12000                             |     
    0x000282d2 sub sp, 0x64                                      |     
    0x000282d4 ldr.w r2, [pc, 0x4c4]                             |     r2 = *(0x0002879c);
    0x000282d8 add.w sl, sp, 0x60                                |     sl += var_60h;
    0x000282dc ldr.w r3, [pc, 0x4c0]                             |     
    0x000282e0 add.w r4, sp, 0x12000                             |     r4 += arg_12000h;
    0x000282e4 ldr r6, [r0, 4]                                   |     r6 = *((r0 + 4));
    0x000282e6 sub.w r0, sl, 0x10                                |     r0 = sl - 0x10;
    0x000282e8 movs r0, r2                                       |     r0 = r2;
    0x000282ea add r2, pc                                        |     r2 += pc;
    0x000282ec str r0, [sp, 0x18]                                |     var_18h = r0;
    0x000282ee vmov.i8 d16, 0xff                                 |     __asm ("vmov.i8 d16, 0xff");
    0x000282f2 adds r4, 0x5c                                     |     r4 += 0x5c;
    0x000282f4 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x000282f6 cmp r6, 2                                         |     
    0x000282f8 ldr r3, [r3]                                      |     r3 = *(0x287a0);
    0x000282fa str r3, [r4]                                      |     *(r4) = r3;
    0x000282fc mov.w r3, 0                                       |     r3 = 0;
    0x00028300 mov r4, r1                                        |     r4 = r1;
    0x00028302 vstr d16, [sl, -0x18]                             |     __asm ("vstr d16, [sl, -0x18]");
                                                                 |     if (r6 > 2) {
    0x00028306 bgt.w 0x2866a                                     |         goto label_12;
                                                                 |     }
    0x0002830a cmp r6, 0                                         |     
    0x0002830c itt le                                            |     
                                                                 |     if (r6 > 0) {
    0x0002830e movle r3, -1                                      |         r3 = -1;
                                                                 |     }
                                                                 |     if (r6 <= 0) {
    0x00028312 str r3, [sl, -0x1c]                               |         *((sl - 0x1c)) = r3;
                                                                 |     }
                                                                 |     if (r6 > 0) {
    0x00028316 ble 0x28340                                       |         
    0x00028318 ldr r3, [r5, 8]                                   |         r3 = *((r5 + 8));
    0x0002831a ldr r7, [r3]                                      |         r7 = *(r3);
                                                                 |         if (r7 != 0) {
    0x0002831c cbz r7, 0x28326                                   |             
    0x0002831e ldrb r3, [r7]                                     |             r3 = *(r7);
    0x00028320 cmp r3, 0                                         |             
                                                                 |             if (r3 != 0) {
    0x00028322 bne.w 0x2868c                                     |                 goto label_13;
                                                                 |             }
                                                                 |         }
                                                                 | label_8:
    0x00028326 mov.w r3, -1                                      |         r3 = -1;
    0x0002832a str r3, [sl, -0x1c]                               |         *((sl - 0x1c)) = r3;
    0x0002832c subs r4, 0x1c                                     |         r4 -= 0x1c;
                                                                 | label_9:
    0x0002832e cmp r6, 1                                         |         
                                                                 |         if (r6 <= 1) {
    0x00028330 ble 0x28340                                       |             goto label_5;
                                                                 |         }
    0x00028332 ldr r3, [r5, 8]                                   |         r3 = *((r5 + 8));
    0x00028334 ldr r5, [r3, 4]                                   |         r5 = *((r3 + 4));
                                                                 |         if (r5 == 0) {
    0x00028336 cbz r5, 0x28340                                   |             goto label_5;
                                                                 |         }
    0x00028338 ldrb r3, [r5]                                     |         r3 = *(r5);
    0x0002833a cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x0002833c bne.w 0x28618                                     |             goto label_14;
                                                                 |         }
                                                                 |     }
                                                                 | label_5:
    0x00028340 movs r3, 1                                        |     r3 = 1;
    0x00028342 str r3, [sp, 0x28]                                |     var_28h = r3;
                                                                 | label_6:
    0x00028344 ldr.w r1, [pc, 0x45c]                             |     
    0x00028348 ldr.w r0, [pc, 0x45c]                             |     r0 = *(0x000287a8);
    0x0002834c add r1, pc                                        |     r1 = 0x50af4;
    0x0002834e add r0, pc                                        |     r0 += pc;
    0x00028350 blx 0xdf90                                        |     r0 = fcn_0000df90 ();
    0x00028354 mov r8, r0                                        |     r8 = r0;
    0x00028356 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00028358 beq.w 0x2877c                                     |         goto label_15;
                                                                 |     }
    0x0002835c add.w r3, sp, 0x2040                              |     r3 += arg_2040h;
    0x00028360 mov.w sb, 0                                       |     sb = 0;
    0x00028364 adds r3, 0x20                                     |     r3 += 0x20;
    0x00028366 strb sb, [r3, -0x4]                               |     *((r3 - 0x4)) = sb;
    0x0002836a str r3, [sp, 0x24]                                |     var_24h = r3;
    0x0002836c movw r3, 0x7270                                   |     
    0x00028370 movt r3, 0x636f                                   |     r3 = 0x636f7270;
    0x00028374 vmov.i8 d8, 0xff                                  |     __asm ("vmov.i8 d8, 0xff");
    0x00028378 str r3, [sp, 0x1c]                                |     var_1ch = r3;
    0x0002837a movw r3, 0x6576                                   |     
    0x0002837e movt r3, 0x646e                                   |     r3 = 0x646e6576;
    0x00028382 mov.w r7, -1                                      |     r7 = -1;
    0x00028386 str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x00028388 movw r3, 0x6f6d                                   |     
    0x0002838c movt r3, 0x6564                                   |     r3 = 0x65646f6d;
    0x00028390 add r5, sp, 0x5c                                  |     r5 += var_5ch;
    0x00028392 str r3, [sp, 0x30]                                |     var_30h = r3;
    0x00028394 movw r3, 0x7063                                   |     
    0x00028398 movt r3, 0x2075                                   |     r3 = 0x20757063;
    0x0002839c mov fp, r4                                        |     
    0x0002839e str r3, [sp, 0x34]                                |     var_34h = r3;
    0x000283a0 movw r3, 0x7365                                   |     
    0x000283a4 movt r3, 0x6f73                                   |     
    0x000283a8 str r3, [sp, 0x38]                                |     var_38h = r3;
    0x000283aa ldr.w r3, [pc, 0x400]                             |     r3 = *(0x000287ac);
    0x000283ae add r3, pc                                        |     r3 = 0x6f75f717;
    0x000283b0 str r3, [sp, 0x14]                                |     var_14h = r3;
    0x000283b2 movs r3, 1                                        |     r3 = 1;
    0x000283b4 str r3, [sp, 0x20]                                |     var_20h = r3;
                                                                 | label_0:
    0x000283b6 add.w r6, sp, 0x1040                              |     r6 += arg_1040h;
    0x000283ba adds r6, 0x1c                                     |     r6 += 0x1c;
                                                                 |     do {
    0x000283bc mov r2, r8                                        |         r2 = r8;
    0x000283be mov.w r1, 0x800                                   |         r1 = 0x800;
    0x000283c2 mov r0, r5                                        |         r0 = r5;
    0x000283c4 blx 0xdc98                                        |         r0 = fcn_0000dc98 ();
    0x000283c8 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x000283ca beq.w 0x2850a                                     |             goto label_16;
                                                                 |         }
    0x000283ce add.w r4, sp, 0x860                               |         r4 += arg_860h;
    0x000283d2 ldr r1, [sp, 0x14]                                |         r1 = var_14h;
    0x000283d4 mov r3, r6                                        |         r3 = r6;
    0x000283d6 subs r2, r4, 4                                    |         r2 = r4 - 4;
    0x000283d8 mov r0, r5                                        |         r0 = r5;
    0x000283da blx 0xdc68                                        |         r0 = fcn_0000dc68 ();
    0x000283de cmp r0, 2                                         |         
    0x000283e0 bne 0x283bc                                       |         
                                                                 |     } while (r0 != 2);
    0x000283e2 ldr r3, [r4, -0x4]                                |     r3 = *((r4 - 0x4));
    0x000283e6 ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x000283e8 cmp r3, r2                                        |     
                                                                 |     if (r3 == r2) {
    0x000283ea beq 0x2844a                                       |         goto label_17;
                                                                 |     }
                                                                 | label_1:
    0x000283ec ldr r3, [sl, -0x1c]                               |     r3 = *((sl - 0x1c));
    0x000283f0 cmp r3, r7                                        |     
    0x000283f2 it ne                                             |     
                                                                 |     if (r3 == r7) {
    0x000283f4 cmpne r3, -1                                      |         __asm ("cmpne r3, -1");
                                                                 |         goto label_18;
                                                                 |     }
                                                                 |     if (r3 != r7) {
                                                                 | label_18:
    0x000283f8 bne 0x283b6                                       |         goto label_0;
                                                                 |     }
                                                                 | label_2:
    0x000283fa ldr r3, [r4, -0x4]                                |     r3 = *((r4 - 0x4));
    0x000283fe ldr r2, [sp, 0x2c]                                |     r2 = var_2ch;
    0x00028400 cmp r3, r2                                        |     
                                                                 |     if (r3 == r2) {
    0x00028402 beq.w 0x28594                                     |         goto label_19;
                                                                 |     }
                                                                 | label_3:
    0x00028406 ldr r3, [r4, -0x4]                                |     r3 = *((r4 - 0x4));
    0x0002840a ldr r2, [sp, 0x30]                                |     r2 = var_30h;
    0x0002840c cmp r3, r2                                        |     
                                                                 |     if (r3 == r2) {
    0x0002840e beq.w 0x285d4                                     |         goto label_20;
                                                                 |     }
                                                                 | label_4:
    0x00028412 ldr r3, [r4, -0x4]                                |     r3 = *((r4 - 0x4));
    0x00028416 ldr r2, [sp, 0x34]                                |     r2 = var_34h;
    0x00028418 cmp r3, r2                                        |     
                                                                 |     if (r3 != r2) {
    0x0002841a bne 0x283b6                                       |         goto label_0;
                                                                 |     }
    0x0002841c ldrh r2, [r4]                                     |     r2 = *(r4);
    0x0002841e movw r3, 0x484d                                   |     r3 = 0x484d;
    0x00028422 cmp r2, r3                                        |     
                                                                 |     if (r2 != r3) {
    0x00028424 bne 0x283b6                                       |         goto label_0;
                                                                 |     }
    0x00028426 ldrb r3, [r4, 2]                                  |     r3 = *((r4 + 2));
    0x00028428 cmp r3, 0x7a                                      |     
                                                                 |     if (r3 != 0x7a) {
    0x0002842a bne 0x283b6                                       |         goto label_0;
                                                                 |     }
    0x0002842c ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x0002842e bic r3, r3, 4                                     |     r3 = BIT_MASK (r3, 4);
    0x00028432 cmp r3, 1                                         |     
                                                                 |     if (r3 != 1) {
    0x00028434 bne 0x283b6                                       |         goto label_0;
                                                                 |     }
    0x00028436 ldr r1, [pc, 0x378]                               |     
    0x00028438 movs r3, 0                                        |     r3 = 0;
    0x0002843a mov r0, r6                                        |     r0 = r6;
    0x0002843c sub.w r2, sl, 0x18                                |     r2 = sl - 0x18;
    0x00028440 str r3, [sp, 0x20]                                |     var_20h = r3;
    0x00028442 add r1, pc                                        |     r1 = 0x50bf8;
    0x00028444 blx 0xdc68                                        |     fcn_0000dc68 ();
    0x00028448 b 0x283b6                                         |     goto label_0;
                                                                 | label_17:
    0x0002844a ldr r3, [r4]                                      |     r3 = *(r4);
    0x0002844c ldr r2, [sp, 0x38]                                |     r2 = var_38h;
    0x0002844e cmp r3, r2                                        |     
                                                                 |     if (r3 != r2) {
    0x00028450 bne 0x283ec                                       |         goto label_1;
                                                                 |     }
    0x00028452 ldrb r3, [r4, 4]                                  |     r3 = *((r4 + 4));
    0x00028454 cmp r3, 0x72                                      |     
                                                                 |     if (r3 != 0x72) {
    0x00028456 bne 0x283ec                                       |         goto label_1;
                                                                 |     }
    0x00028458 adds r1, r7, 1                                    |     r1 = r7 + 1;
                                                                 |     if (r1 != r7) {
    0x0002845a beq 0x2848a                                       |         
    0x0002845c ldr r3, [sl, -0x1c]                               |         r3 = *((sl - 0x1c));
    0x00028460 cmp r3, r7                                        |         
    0x00028462 it ne                                             |         
                                                                 |         if (r3 != r7) {
    0x00028464 cmpne r3, -1                                      |             __asm ("cmpne r3, -1");
                                                                 |         }
                                                                 |         if (r3 != r7) {
    0x00028468 bne 0x2848a                                       |             goto label_21;
                                                                 |         }
    0x0002846a ldr r7, [sp, 0x18]                                |         r7 = var_18h;
    0x0002846c rsb.w r1, sb, 0x10000                             |         r1 = 0x10000 - sb;
    0x00028470 ldr r2, [sp, 0x24]                                |         r2 = var_24h;
    0x00028472 vstr d8, [sp]                                     |         __asm ("vstr d8, [sp]");
    0x00028476 vldr d16, [r7, -8]                                |         __asm ("vldr d16, [r7, -8]");
    0x0002847a subs r0, r2, 4                                    |         r0 = r2 - 4;
    0x0002847c ldr r2, [sp, 0x28]                                |         r2 = var_28h;
    0x0002847e add r0, sb                                        |         r0 += sb;
    0x00028480 vstr d16, [sp, 8]                                 |         __asm ("vstr d16, [sp, 8]");
    0x00028484 bl 0x27aac                                        |         r0 = fcn_00027aac (r0, r1, r2, r3, r4, r5, r6);
    0x00028488 add sb, r0                                        |         sb += r0;
                                                                 |     }
                                                                 | label_21:
    0x0002848a ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x0002848c movs r2, 0xa                                      |     r2 = 0xa;
    0x0002848e vmov.i8 d16, 0xff                                 |     __asm ("vmov.i8 d16, 0xff");
    0x00028492 movs r1, 0                                        |     r1 = 0;
    0x00028494 mov r0, r6                                        |     r0 = r6;
    0x00028496 vstr d16, [r3, -8]                                |     __asm ("vstr d16, [r3, -8]");
    0x0002849a blx 0xdfe8                                        |     waitpid ();
    0x0002849e ldr r3, [sl, -0x1c]                               |     r3 = *((sl - 0x1c));
    0x000284a2 mov r7, r0                                        |     r7 = r0;
    0x000284a4 adds r2, r3, 1                                    |     r2 = r3 + 1;
                                                                 |     if (r2 == r3) {
    0x000284a6 beq.w 0x286e4                                     |         goto label_22;
                                                                 |     }
    0x000284aa cmp r3, r0                                        |     
                                                                 |     if (r3 != r0) {
    0x000284ac bne 0x283b6                                       |         goto label_0;
                                                                 |     }
    0x000284ae ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x000284b0 cmp r3, 1                                         |     
                                                                 |     if (r3 == 1) {
    0x000284b2 beq.w 0x28706                                     |         goto label_23;
                                                                 |     }
    0x000284b6 ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x000284b8 cmp r3, 2                                         |     
                                                                 |     if (r3 != 2) {
    0x000284ba bne 0x283fa                                       |         goto label_2;
                                                                 |     }
                                                                 | label_11:
    0x000284bc ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x000284be add.w r0, sp, 0x1840                              |     r0 += arg_1840h;
    0x000284c2 vmov.i8 d16, 0xff                                 |     __asm ("vmov.i8 d16, 0xff");
    0x000284c6 mov.w r1, 0x800                                   |     r1 = 0x800;
    0x000284ca ldr r2, [pc, 0x2e8]                               |     
    0x000284cc adds r0, 0x1c                                     |     r0 += 0x1c;
    0x000284ce str r0, [sp, 0x3c]                                |     var_3ch = r0;
    0x000284d0 vstr d16, [r3]                                    |     __asm ("vstr d16, [r3]");
    0x000284d4 mov r3, r7                                        |     r3 = r7;
    0x000284d6 add r2, pc                                        |     r2 = 0x50c90;
    0x000284d8 bl 0x43f38                                        |     zbx_snprintf ();
    0x000284dc ldr r1, [pc, 0x2d8]                               |     
    0x000284de ldr r0, [sp, 0x3c]                                |     r0 = var_3ch;
    0x000284e0 add r1, pc                                        |     r1 = 0x50c9c;
    0x000284e2 blx 0xdf90                                        |     r0 = fcn_0000df90 ();
                                                                 |     if (r0 != 0) {
    0x000284e6 cbz r0, 0x28502                                   |         
    0x000284e8 ldr r1, [pc, 0x2d0]                               |         
    0x000284ea ldr r2, [sp, 0x18]                                |         r2 = var_18h;
    0x000284ec str r0, [sp, 0x3c]                                |         var_3ch = r0;
    0x000284ee add r1, pc                                        |         r1 = 0x50cae;
    0x000284f0 blx 0xdc10                                        |         inet_ntoa (r0);
    0x000284f4 ldr r3, [sp, 0x3c]                                |         r3 = var_3ch;
    0x000284f6 cmp r0, 1                                         |         
    0x000284f8 mov r0, r3                                        |         r0 = r3;
                                                                 |         if (r0 == 1) {
    0x000284fa beq.w 0x2871e                                     |             goto label_24;
                                                                 |         }
    0x000284fe blx 0xdc8c                                        |         fcn_0000dc8c ();
                                                                 |     }
    0x00028502 ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x00028504 vldr d8, [r3]                                     |     __asm ("vldr d8, [r3]");
    0x00028508 b 0x283ec                                         |     goto label_1;
                                                                 | label_16:
    0x0002850a mov r4, fp                                        |     r4 = fp;
    0x0002850c mov fp, r0                                        |     
    0x0002850e mov r0, r8                                        |     r0 = r8;
    0x00028510 blx 0xdc8c                                        |     fcn_0000dc8c ();
    0x00028514 ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x00028516 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00028518 bne.w 0x2872e                                     |         goto label_25;
                                                                 |     }
    0x0002851c adds r3, r7, 1                                    |     r3 = r7 + 1;
                                                                 |     if (r3 != r7) {
    0x0002851e beq 0x2854c                                       |         
    0x00028520 ldr r3, [sl, -0x1c]                               |         r3 = *((sl - 0x1c));
    0x00028524 cmp r3, r7                                        |         
    0x00028526 it ne                                             |         
                                                                 |         if (r3 != r7) {
    0x00028528 cmpne r3, -1                                      |             __asm ("cmpne r3, -1");
                                                                 |         }
                                                                 |         if (r3 != r7) {
    0x0002852c bne 0x2854c                                       |             goto label_26;
                                                                 |         }
    0x0002852e ldr r1, [sp, 0x18]                                |         r1 = var_18h;
    0x00028530 vstr d8, [sp]                                     |         __asm ("vstr d8, [sp]");
    0x00028534 ldr r2, [sp, 0x28]                                |         r2 = var_28h;
    0x00028536 ldrd r0, r1, [r1, -0x8]                           |         __asm ("ldrd r0, r1, [r1, -0x8]");
    0x0002853a strd r0, r1, [sp, 8]                              |         __asm ("strd r0, r1, [sp, 8]");
    0x0002853e ldr r1, [sp, 0x24]                                |         r1 = var_24h;
    0x00028540 subs r0, r1, 4                                    |         r0 = r1 - 4;
    0x00028542 rsb.w r1, sb, 0x10000                             |         r1 = 0x10000 - sb;
    0x00028546 add r0, sb                                        |         r0 += sb;
    0x00028548 bl 0x27aac                                        |         fcn_00027aac (r0, r1, r2, r3, r4, r5, r6);
                                                                 |     }
                                                                 | label_26:
    0x0002854c ldr r1, [r4, 0x28]                                |     r1 = *((r4 + 0x28));
    0x0002854e movs r2, 0                                        |     r2 = 0;
    0x00028550 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x00028552 ldr r0, [pc, 0x26c]                               |     
    0x00028554 orr r1, r1, 8                                     |     r1 |= 8;
    0x00028558 str r1, [r4, 0x28]                                |     *((r4 + 0x28)) = r1;
    0x0002855a subs r3, 3                                        |     r3 -= 3;
    0x0002855c add r0, pc                                        |     r0 = 0x50d22;
    0x0002855e mov.w r1, 0x1f0                                   |     r1 = 0x1f0;
    0x00028562 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x00028566 str r0, [r4, 0x1c]                                |     *((r4 + 0x1c)) = r0;
                                                                 | label_7:
    0x00028568 ldr r2, [pc, 0x258]                               |     
    0x0002856a add.w r1, sp, 0x12000                             |     r1 += arg_12000h;
    0x0002856e ldr r3, [pc, 0x230]                               |     r3 = *(0x287a2);
    0x00028570 adds r1, 0x5c                                     |     r1 += 0x5c;
    0x00028572 add r2, pc                                        |     r2 = 0x50d3a;
    0x00028574 ldr r3, [r2, r3]                                  |     r3 = *(0x50d3a);
    0x00028576 ldr r2, [r3]                                      |     r2 = *(0x50d3a);
    0x00028578 ldr r3, [r1]                                      |     r3 = *(r1);
    0x0002857a eors r2, r3                                       |     r2 ^= r3;
    0x0002857c mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x00028580 bne.w 0x28778                                     |         goto label_27;
                                                                 |     }
    0x00028584 ldr r0, [sp, 0x20]                                |     r0 = var_20h;
    0x00028586 add.w sp, sp, 0x12000                             |     
    0x0002858a add sp, 0x64                                      |     
    0x0002858c vpop {d8}                                         |     __asm ("vpop {d8}");
    0x00028590 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_19:
    0x00028594 ldr r2, [r4]                                      |     r2 = *(r4);
    0x00028596 movw r3, 0x726f                                   |     
    0x0002859a movt r3, 0x695f                                   |     r3 = 0x695f726f;
    0x0002859e cmp r2, r3                                        |     
                                                                 |     if (r2 != r3) {
    0x000285a0 bne.w 0x28406                                     |         goto label_3;
                                                                 |     }
    0x000285a4 ldrb r3, [r4, 4]                                  |     r3 = *((r4 + 4));
    0x000285a6 cmp r3, 0x64                                      |     
                                                                 |     if (r3 != 0x64) {
    0x000285a8 bne.w 0x28406                                     |         goto label_3;
                                                                 |     }
    0x000285ac ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x000285ae bic r3, r3, 2                                     |     r3 = BIT_MASK (r3, 2);
    0x000285b0 lsls r2, r0, 0xc                                  |     r2 = r0 << 0xc;
    0x000285b2 cmp r3, 1                                         |     
                                                                 |     if (r3 != 1) {
    0x000285b4 bne.w 0x28406                                     |         goto label_3;
                                                                 |     }
    0x000285b8 ldr r2, [sp, 0x24]                                |     r2 = var_24h;
    0x000285ba mov r3, r6                                        |     r3 = r6;
    0x000285bc rsb.w r1, sb, 0x10000                             |     r1 = 0x10000 - sb;
    0x000285c0 subs r0, r2, 4                                    |     r0 = r2 - 4;
    0x000285c2 ldr r2, [pc, 0x204]                               |     
    0x000285c4 add r0, sb                                        |     r0 += sb;
    0x000285c6 add r2, pc                                        |     r2 = 0x50d94;
    0x000285c8 bl 0x43f38                                        |     zbx_snprintf ();
    0x000285cc movs r3, 0                                        |     r3 = 0;
    0x000285ce add sb, r0                                        |     sb += r0;
    0x000285d0 str r3, [sp, 0x20]                                |     var_20h = r3;
    0x000285d2 b 0x283b6                                         |     goto label_0;
                                                                 | label_20:
    0x000285d4 ldr r2, [r4]                                      |     r2 = *(r4);
    0x000285d6 movw r3, 0x206c                                   |     
    0x000285da movt r3, 0x616e                                   |     r3 = 0x616e206c;
    0x000285de cmp r2, r3                                        |     
                                                                 |     if (r2 != r3) {
    0x000285e0 bne.w 0x28412                                     |         goto label_4;
                                                                 |     }
    0x000285e4 ldrh r2, [r4, 4]                                  |     r2 = *((r4 + 4));
    0x000285e6 movw r3, 0x656d                                   |     r3 = 0x656d;
    0x000285ea cmp r2, r3                                        |     
                                                                 |     if (r2 != r3) {
    0x000285ec bne.w 0x28412                                     |         goto label_4;
                                                                 |     }
    0x000285f0 ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x000285f2 cmp r3, 4                                         |     
    0x000285f4 it ne                                             |     
                                                                 |     if (r3 == 4) {
    0x000285f6 cmpne r3, 1                                       |         __asm ("cmpne r3, 1");
                                                                 |         goto label_28;
                                                                 |     }
                                                                 |     if (r3 != 4) {
                                                                 | label_28:
    0x000285f8 bne.w 0x28412                                     |         goto label_4;
                                                                 |     }
    0x000285fc ldr r2, [sp, 0x24]                                |     r2 = var_24h;
    0x000285fe mov r3, r6                                        |     r3 = r6;
    0x00028600 rsb.w r1, sb, 0x10000                             |     r1 = 0x10000 - sb;
    0x00028604 subs r0, r2, 4                                    |     r0 = r2 - 4;
    0x00028606 ldr r2, [pc, 0x1c4]                               |     
    0x00028608 add r0, sb                                        |     r0 += sb;
    0x0002860a add r2, pc                                        |     r2 = 0x50ddc;
    0x0002860c bl 0x43f38                                        |     zbx_snprintf ();
    0x00028610 movs r3, 0                                        |     r3 = 0;
    0x00028612 add sb, r0                                        |     sb += r0;
    0x00028614 str r3, [sp, 0x20]                                |     var_20h = r3;
    0x00028616 b 0x283b6                                         |     goto label_0;
                                                                 | label_14:
    0x00028618 ldr r1, [pc, 0x1b4]                               |     
    0x0002861a mov r0, r5                                        |     r0 = r5;
    0x0002861c add r1, pc                                        |     r1 = 0x50df0;
    0x0002861e blx 0xe3b0                                        |     r0 = fcn_0000e3b0 ();
    0x00028622 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00028624 beq.w 0x28340                                     |         goto label_5;
                                                                 |     }
    0x00028628 ldr r1, [pc, 0x1a8]                               |     
    0x0002862a mov r0, r5                                        |     r0 = r5;
    0x0002862c add r1, pc                                        |     r1 = 0x50e04;
    0x0002862e blx 0xe3b0                                        |     r0 = fcn_0000e3b0 ();
    0x00028632 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00028634 beq.w 0x2874a                                     |         goto label_29;
                                                                 |     }
    0x00028638 ldr r1, [pc, 0x19c]                               |     
    0x0002863a mov r0, r5                                        |     r0 = r5;
    0x0002863c add r1, pc                                        |     r1 = "/dev/";
    0x0002863e blx 0xe3b0                                        |     r0 = fcn_0000e3b0 ();
    0x00028642 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00028644 beq.w 0x28750                                     |         goto label_30;
                                                                 |     }
    0x00028648 ldr r1, [pc, 0x190]                               |     
    0x0002864a mov r0, r5                                        |     r0 = r5;
    0x0002864c add r1, pc                                        |     r1 = 0x50e2c;
    0x0002864e blx 0xe3b0                                        |     r0 = fcn_0000e3b0 ();
    0x00028652 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00028654 beq 0x28756                                       |         goto label_31;
                                                                 |     }
    0x00028656 ldr r1, [pc, 0x188]                               |     
    0x00028658 mov r0, r5                                        |     r0 = r5;
    0x0002865a add r1, pc                                        |     r1 = 0x50e40;
    0x0002865c blx 0xe3b0                                        |     r0 = fcn_0000e3b0 ();
    0x00028660 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00028662 bne 0x2875c                                       |         goto label_32;
                                                                 |     }
    0x00028664 movs r3, 5                                        |     r3 = 5;
    0x00028666 str r3, [sp, 0x28]                                |     var_28h = r3;
    0x00028668 b 0x28344                                         |     goto label_6;
                                                                 | label_12:
    0x0002866a ldr r0, [r1, 0x28]                                |     r0 = *((r1 + 0x28));
    0x0002866c movs r2, 0                                        |     r2 = 0;
    0x0002866e ldr r3, [pc, 0x174]                               |     
    0x00028670 movw r1, 0x18b                                    |     r1 = 0x18b;
    0x00028674 orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x00028678 str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x0002867a add r3, pc                                        |     r3 = 0x50e64;
    0x0002867c ldr r0, [pc, 0x168]                               |     
    0x0002867e add r0, pc                                        |     r0 = 0x50e6a;
    0x00028680 bl 0x40ed8                                        |     zbx_strdup2 ();
                                                                 | label_10:
    0x00028684 movs r3, 1                                        |     r3 = 1;
    0x00028686 str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x00028688 str r3, [sp, 0x20]                                |     var_20h = r3;
    0x0002868a b 0x28568                                         |     goto label_7;
                                                                 | label_13:
    0x0002868c ldr r1, [pc, 0x15c]                               |     
    0x0002868e mov r0, r7                                        |     r0 = r7;
    0x00028690 add r1, pc                                        |     r1 = 0x50e80;
    0x00028692 blx 0xe3b0                                        |     r0 = fcn_0000e3b0 ();
    0x00028696 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00028698 beq.w 0x28326                                     |         goto label_8;
                                                                 |     }
    0x0002869c vmov.i32 d16, 0                                   |     __asm ("vmov.i32 d16, 0");
    0x000286a0 mov r0, r7                                        |     r0 = r7;
    0x000286a2 mvn r6, 0x80000000                                |     r6 = ~0x80000000;
    0x000286a6 movs r7, 0                                        |     r7 = 0;
    0x000286a8 strd r6, r7, [sp, 8]                              |     __asm ("strd r6, r7, [sp, 8]");
    0x000286ac movs r3, 4                                        |     r3 = 4;
    0x000286ae sub.w r2, sl, 0x1c                                |     r2 = sl - 0x1c;
    0x000286b0 lsls r4, r3, 8                                    |     r4 = r3 << 8;
    0x000286b2 mov.w r1, -1                                      |     r1 = -1;
    0x000286b6 vstr d16, [sp]                                    |     __asm ("vstr d16, [sp]");
    0x000286ba bl 0x419a8                                        |     is_uint_n_range ();
    0x000286be adds r0, 1                                        |     r0++;
    0x000286c0 it ne                                             |     
                                                                 |     if (r0 != 1) {
    0x000286c2 ldrne r6, [r5, 4]                                 |         r6 = *((r5 + 4));
                                                                 |         goto label_33;
                                                                 |     }
                                                                 |     if (r0 != 1) {
                                                                 | label_33:
    0x000286c4 bne.w 0x2832e                                     |         goto label_9;
                                                                 |     }
    0x000286c8 ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x000286ca movs r2, 0                                        |     r2 = 0;
    0x000286cc ldr r3, [pc, 0x120]                               |     
    0x000286ce movw r1, 0x195                                    |     r1 = 0x195;
    0x000286d2 orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x000286d6 str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x000286d8 add r3, pc                                        |     r3 = 0x50ecc;
    0x000286da ldr r0, [pc, 0x118]                               |     
    0x000286dc add r0, pc                                        |     r0 = 0x50ed6;
    0x000286de bl 0x40ed8                                        |     zbx_strdup2 ();
    0x000286e2 b 0x28684                                         |     goto label_10;
                                                                 | label_22:
    0x000286e4 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x000286e6 rsb.w r1, sb, 0x10000                             |     r1 = 0x10000 - sb;
    0x000286ea ldr r2, [pc, 0x10c]                               |     
    0x000286ec subs r0, r3, 4                                    |     r0 = r3 - 4;
    0x000286ee mov r3, r7                                        |     r3 = r7;
    0x000286f0 add r0, sb                                        |     r0 += sb;
    0x000286f2 add r2, pc                                        |     r2 = 0x50ef0;
    0x000286f4 bl 0x43f38                                        |     zbx_snprintf ();
    0x000286f8 ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x000286fa add sb, r0                                        |     sb += r0;
    0x000286fc subs r3, 1                                        |     r3--;
    0x000286fe cmp r3, 1                                         |     
                                                                 |     if (r3 > 1) {
    0x00028700 bhi.w 0x283ec                                     |         goto label_1;
                                                                 |     }
    0x00028704 b 0x284bc                                         |     goto label_11;
                                                                 | label_23:
    0x00028706 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x00028708 rsb.w r1, sb, 0x10000                             |     r1 = 0x10000 - sb;
    0x0002870c ldr r2, [pc, 0xec]                                |     
    0x0002870e subs r0, r3, 4                                    |     r0 = r3 - 4;
    0x00028710 mov r3, r7                                        |     r3 = r7;
    0x00028712 add r0, sb                                        |     r0 += sb;
    0x00028714 add r2, pc                                        |     r2 = 0x50f14;
    0x00028716 bl 0x43f38                                        |     r0 = zbx_snprintf ();
    0x0002871a add sb, r0                                        |     sb += r0;
    0x0002871c b 0x284bc                                         |     goto label_11;
                                                                 | label_24:
    0x0002871e blx 0xdc8c                                        |     fcn_0000dc8c ();
    0x00028722 ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x00028724 vldr d8, [r3]                                     |     __asm ("vldr d8, [r3]");
    0x00028728 movs r3, 0                                        |     r3 = 0;
    0x0002872a str r3, [sp, 0x20]                                |     var_20h = r3;
    0x0002872c b 0x283ec                                         |     goto label_1;
                                                                 | label_25:
    0x0002872e ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x00028730 mov r2, fp                                        |     r2 = fp;
    0x00028732 ldr r3, [pc, 0xcc]                                |     
    0x00028734 movw r1, 0x1e9                                    |     r1 = 0x1e9;
    0x00028738 orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x0002873c str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x0002873e add r3, pc                                        |     r3 = 0x50f44;
    0x00028740 ldr r0, [pc, 0xc0]                                |     
    0x00028742 add r0, pc                                        |     r0 = 0x50f4a;
    0x00028744 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x00028748 b 0x28684                                         |     goto label_10;
                                                                 | label_29:
    0x0002874a movs r3, 2                                        |     r3 = 2;
    0x0002874c str r3, [sp, 0x28]                                |     var_28h = r3;
    0x0002874e b 0x28344                                         |     goto label_6;
                                                                 | label_30:
    0x00028750 movs r3, 3                                        |     r3 = 3;
    0x00028752 str r3, [sp, 0x28]                                |     var_28h = r3;
    0x00028754 b 0x28344                                         |     goto label_6;
                                                                 | label_31:
    0x00028756 movs r3, 4                                        |     r3 = 4;
    0x00028758 str r3, [sp, 0x28]                                |     var_28h = r3;
    0x0002875a b 0x28344                                         |     goto label_6;
                                                                 | label_32:
    0x0002875c ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x0002875e movs r2, 0                                        |     r2 = 0;
    0x00028760 ldr r3, [pc, 0xa4]                                |     
    0x00028762 movw r1, 0x1a7                                    |     r1 = 0x1a7;
    0x00028766 orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x0002876a str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x0002876c add r3, pc                                        |     r3 = "Cannot add disk device to agent collector.";
    0x0002876e ldr r0, [pc, 0x9c]                                |     
    0x00028770 add r0, pc                                        |     r0 = 0x50f82;
    0x00028772 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x00028776 b 0x28684                                         |     goto label_10;
                                                                 | label_27:
    0x00028778 blx 0xe158                                        |     fcn_0000e158 ();
                                                                 | label_15:
    0x0002877c ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x0002877e orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x00028782 str r3, [r4, 0x28]                                |     *((r4 + 0x28)) = r3;
    0x00028784 blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x00028788 ldr r0, [r0]                                      |     r0 = *(r0);
    0x0002878a bl 0x30b74                                        |     zbx_strerror ();
    0x0002878c invalid                                           |     
    0x00028790 mov r2, r0                                        |     r2 = r0;
    0x00028792 mov r0, r8                                        |     r0 = r8;
    0x00028794 add r1, pc                                        |     r1 += pc;
    0x00028796 bl 0x44820                                        |     zbx_dsprintf ()
    0x0002879a b 0x28684                                         |     goto label_10;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x288bc */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.SYSTEM_HW_MACADDR ()                             | void SYSTEM_HW_MACADDR (int16_t arg1, int16_t arg2) {
                                                                 |     int16_t var_0h_4;
                                                                 |     int16_t var_4h_3;
                                                                 |     int16_t var_8h_2;
                                                                 |     int16_t var_ch_2;
                                                                 |     int16_t var_a8h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_b4h;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_2ch;
                                                                 |     int32_t var_20h_2;
                                                                 |     int16_t var_1ch;
                                                                 |     int32_t var_18h_2;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_50h;
                                                                 |     int16_t var_90h;
                                                                 |     int16_t var_118h;
                                                                 |     int16_t var_170h;
                                                                 |     int16_t var_198h;
                                                                 |     int16_t var_1d8h;
                                                                 |     int16_t var_208h;
                                                                 |     int16_t var_278h;
                                                                 |     int16_t var_2e8h;
                                                                 |     int16_t var_328h;
                                                                 |     int16_t var_358h;
                                                                 |     int16_t var_3c8h;
                                                                 |     int8_t var_0h_2;
                                                                 |     int16_t var_84ch;
                                                                 |     int16_t var_1040h;
                                                                 |     int32_t var_0h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x000288bc push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x000288c0 sub.w sp, sp, 0x1040                              |     
    0x000288c4 ldr r5, [pc, 0x33c]                               |     
    0x000288c6 sub sp, 0x14                                      |     
    0x000288c8 add.w r6, sp, 0x1040                              |     r6 += var_1040h;
    0x000288cc ldr r4, [pc, 0x338]                               |     
    0x000288ce adds r6, 0xc                                      |     r6 += 0xc;
    0x000288d0 ldr r2, [pc, 0x338]                               |     r2 = *(0x28c0c);
    0x000288d2 add r5, pc                                        |     r5 = 0x514da;
    0x000288d4 ldr r3, [r0, 4]                                   |     r3 = *((r0 + 4));
    0x000288d6 add r4, pc                                        |     r4 = 0x514e2;
    0x000288d8 str r5, [sp, 0x20]                                |     var_20h = r5;
    0x000288da ldr r2, [r4, r2]                                  |     
    0x000288dc cmp r3, 2                                         |     
    0x000288de ldr r2, [r2]                                      |     r2 = *(0x514e2);
    0x000288e0 str r2, [r6]                                      |     *(r6) = r2;
    0x000288e2 mov.w r2, 0                                       |     r2 = 0;
    0x000288e6 str r1, [sp, 0x18]                                |     var_18h = r1;
                                                                 |     if (r3 > 2) {
    0x000288e8 bgt.w 0x28abe                                     |         goto label_10;
                                                                 |     }
    0x000288ec cmp r3, 0                                         |     
                                                                 |     if (r3 > 0) {
    0x000288ee ble 0x28948                                       |         
    0x000288f0 ldr r2, [r0, 8]                                   |         r2 = *((r0 + 8));
    0x000288f2 cmp r3, 2                                         |         
    0x000288f4 ldr r7, [r2]                                      |         r7 = *(r2);
                                                                 |         if (r3 != 2) {
    0x000288f6 bne.w 0x28a2e                                     |             goto label_11;
                                                                 |         }
    0x000288fa ldr r4, [r2, 4]                                   |         r4 = *((r2 + 4));
    0x000288fc cmp r4, 0                                         |         
                                                                 |         if (r4 == 0) {
    0x000288fe beq.w 0x28a2e                                     |             goto label_11;
                                                                 |         }
    0x00028902 ldrb r3, [r4]                                     |         r3 = *(r4);
    0x00028904 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x00028906 beq.w 0x28a2e                                     |             goto label_11;
                                                                 |         }
    0x0002890a ldr r1, [pc, 0x304]                               |         
    0x0002890c mov r0, r4                                        |         r0 = r4;
    0x0002890e add r1, pc                                        |         r1 = 0x51524;
    0x00028910 blx 0xe3b0                                        |         r0 = fcn_0000e3b0 ();
    0x00028914 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00028916 beq.w 0x28a2e                                     |             goto label_11;
                                                                 |         }
    0x0002891a ldr r1, [pc, 0x2f8]                               |         
    0x0002891c mov r0, r4                                        |         r0 = r4;
    0x0002891e add r1, pc                                        |         r1 = 0x51538;
    0x00028920 blx 0xe3b0                                        |         r0 = fcn_0000e3b0 ();
    0x00028924 mov fp, r0                                        |         
                                                                 |         if (r0 == 0) {
    0x00028926 cbz r0, 0x2894e                                   |             goto label_0;
                                                                 |         }
    0x00028928 ldr r4, [sp, 0x18]                                |         r4 = var_18h;
    0x0002892a movs r2, 0                                        |         r2 = 0;
    0x0002892c ldr r3, [pc, 0x2e8]                               |         
    0x0002892e mov.w r1, 0x224                                   |         r1 = 0x224;
    0x00028932 ldr r0, [r4, 0x28]                                |         r0 = *((r4 + 0x28));
    0x00028934 add r3, pc                                        |         r3 = 0x51550;
    0x00028936 orr r0, r0, 0x20                                  |         r0 |= 0x20;
    0x0002893a str r0, [r4, 0x28]                                |         *((r4 + 0x28)) = r0;
    0x0002893c ldr r0, [pc, 0x2dc]                               |         
    0x0002893e add r0, pc                                        |         r0 = 0x5155e;
    0x00028940 bl 0x40ed8                                        |         r0 = zbx_strdup2 ();
    0x00028944 mov r3, r0                                        |         r3 = r0;
    0x00028946 b 0x28adc                                         |         goto label_8;
                                                                 |     }
    0x00028948 movs r7, 0                                        |     r7 = 0;
    0x0002894a mov.w fp, 1                                       |     
                                                                 | label_0:
    0x0002894e movs r1, 2                                        |     r1 = 2;
    0x00028950 movs r2, 0                                        |     r2 = 0;
    0x00028952 mov r0, r1                                        |     r0 = r1;
    0x00028954 blx 0xdef0                                        |     r0 = fcn_0000def0 ();
    0x00028958 adds r2, r0, 1                                    |     r2 = r0 + 1;
    0x0002895a mov r5, r0                                        |     r5 = r0;
                                                                 |     if (r2 == r0) {
    0x0002895c beq.w 0x28ae4                                     |         goto label_12;
                                                                 |     }
    0x00028960 add r4, sp, 0x50                                  |     r4 += var_50h;
    0x00028962 mov.w r3, 0x800                                   |     r3 = 0x800;
    0x00028966 addw sl, sp, 0x84c                                |     __asm ("addw sl, var_84ch");
    0x0002896a add r2, sp, 0x2c                                  |     r2 += var_2ch;
    0x0002896c movw r1, 0x8912                                   |     r1 = 0x8912;
    0x00028970 str r3, [r4, -0x24]                               |     var_2ch = r3;
    0x00028974 str sl, [r4, -0x20]                               |     var_20h_2 = sl;
    0x00028978 blx 0xdf44                                        |     fcn_0000df44 ();
    0x0002897c adds r0, 1                                        |     r0++;
                                                                 |     if (r0 == 1) {
    0x0002897e beq.w 0x28b96                                     |         goto label_13;
                                                                 |     }
    0x00028982 sub.w r3, r4, 0x1c                                |     r3 -= var_1ch;
    0x00028986 ldr r6, [r4, -0x20]                               |     r6 = var_20h_2;
    0x0002898a mov r8, r3                                        |     r8 = r3;
    0x0002898c mov r0, r3                                        |     r0 = r3;
    0x0002898e str r3, [sp, 0x1c]                                |     var_b4h = r3;
    0x00028990 bl 0x32978                                        |     zbx_vector_str_create ();
    0x00028994 movs r1, 8                                        |     r1 = 8;
    0x00028996 mov r0, r8                                        |     r0 = r8;
    0x00028998 bl 0x32dc4                                        |     zbx_vector_str_reserve ();
    0x0002899c ldr r2, [r4, -0x24]                               |     r2 = var_2ch;
    0x000289a0 lsrs.w sb, r2, 5                                  |     sb = r2 >> 5;
                                                                 |     if (sb == r2) {
    0x000289a4 beq 0x289ce                                       |         goto label_3;
                                                                 |     }
                                                                 |     if (r7 != 0) {
                                                                 |         do {
    0x000289a6 cbz r7, 0x289ae                                   |             
                                                                 | label_2:
    0x000289a8 ldrb r3, [r7]                                     |             r3 = *(r7);
    0x000289aa cmp r3, 0                                         |             
                                                                 |             if (r3 != 0) {
    0x000289ac bne 0x28a34                                       |                 goto label_14;
                                                                 |             }
                                                                 |         }
                                                                 | label_1:
    0x000289ae mov r2, r6                                        |         r2 = r6;
    0x000289b0 movw r1, 0x8913                                   |         r1 = 0x8913;
    0x000289b4 mov r0, r5                                        |         r0 = r5;
    0x000289b6 blx 0xdf44                                        |         fcn_0000df44 ();
    0x000289ba adds r0, 1                                        |         r0++;
                                                                 |         if (r0 != 1) {
    0x000289bc beq 0x289c4                                       |             
    0x000289be ldrh r3, [r6, 0x10]                               |             r3 = *((r6 + 0x10));
    0x000289c0 lsls r3, r3, 0x1c                                 |             r3 <<= 0x1c;
                                                                 |             if (r3 >= r3) {
    0x000289c2 bpl 0x28a4e                                       |                 goto label_15;
                                                                 |             }
                                                                 |         }
                                                                 | label_4:
    0x000289c4 subs.w sb, sb, 1                                  |         sb--;
    0x000289c8 add.w r6, r6, 0x20                                |         r6 += 0x20;
    0x000289cc bne 0x289a6                                       |         
                                                                 |     } while (sb != sb);
                                                                 | label_3:
    0x000289ce ldr r6, [r4, -0x18]                               |     r6 = var_18h_2;
    0x000289d2 cmp r6, 0                                         |     
                                                                 |     if (r6 != 0) {
    0x000289d4 bne.w 0x28b08                                     |         goto label_16;
                                                                 |     }
                                                                 | label_7:
    0x000289d8 ldr r7, [sp, 0x18]                                |     r7 = var_18h;
    0x000289da movs r4, 0                                        |     r4 = 0;
    0x000289dc ldr r0, [pc, 0x240]                               |     
    0x000289de mov r2, r4                                        |     r2 = r4;
    0x000289e0 movw r1, 0x26e                                    |     r1 = 0x26e;
    0x000289e4 strb.w r4, [sl, r6]                               |     *((sl + r6)) = r4;
    0x000289e8 ldr r3, [r7, 0x28]                                |     r3 = *((r7 + 0x28));
    0x000289ea add r0, pc                                        |     r0 = 0x5160e;
    0x000289ec orr r3, r3, 4                                     |     r3 |= 4;
    0x000289f0 str r3, [r7, 0x28]                                |     *((r7 + 0x28)) = r3;
    0x000289f2 mov r3, sl                                        |     r3 = sl;
    0x000289f4 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x000289f8 str r0, [r7, 0x18]                                |     *((r7 + 0x18)) = r0;
    0x000289fa ldr r0, [sp, 0x1c]                                |     r0 = var_b4h;
    0x000289fc bl 0x329d8                                        |     zbx_vector_str_destroy ();
    0x00028a00 mov r0, r5                                        |     r0 = r5;
    0x00028a02 blx 0xe0ac                                        |     fcn_0000e0ac ();
    0x00028a06 mov r0, r4                                        |     r0 = r4;
                                                                 | label_5:
    0x00028a08 ldr r2, [pc, 0x218]                               |     
    0x00028a0a add.w r1, sp, 0x1040                              |     r1 += var_1040h;
    0x00028a0e ldr r3, [pc, 0x1fc]                               |     r3 = *(0x28c0e);
    0x00028a10 adds r1, 0xc                                      |     r1 += 0xc;
    0x00028a12 add r2, pc                                        |     r2 = 0x5163a;
    0x00028a14 ldr r3, [r2, r3]                                  |     r3 = *(0x5163a);
    0x00028a16 ldr r2, [r3]                                      |     r2 = *(0x5163a);
    0x00028a18 ldr r3, [r1]                                      |     r3 = *(r1);
    0x00028a1a eors r2, r3                                       |     r2 ^= r3;
    0x00028a1c mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x00028a20 bne.w 0x28c00                                     |         goto label_17;
                                                                 |     }
    0x00028a24 add.w sp, sp, 0x1040                              |     
    0x00028a28 add sp, 0x14                                      |     
    0x00028a2a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_11:
    0x00028a2e mov.w fp, 1                                       |     
    0x00028a32 b 0x2894e                                         |     goto label_0;
                                                                 | label_14:
    0x00028a34 movs r2, 0                                        |     r2 = 0;
    0x00028a36 mov r1, r7                                        |     r1 = r7;
    0x00028a38 mov r0, r6                                        |     r0 = r6;
    0x00028a3a bl 0x31a84                                        |     r0 = zbx_regexp_match ();
    0x00028a3e cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00028a40 bne 0x289ae                                       |         goto label_1;
                                                                 |     }
    0x00028a42 subs.w sb, sb, 1                                  |     sb--;
    0x00028a46 add.w r6, r6, 0x20                                |     r6 += 0x20;
                                                                 |     if (sb != sb) {
    0x00028a4a bne 0x289a8                                       |         goto label_2;
                                                                 |     }
    0x00028a4c b 0x289ce                                         |     goto label_3;
                                                                 | label_15:
    0x00028a4e mov r2, r6                                        |     r2 = r6;
    0x00028a50 movw r1, 0x8927                                   |     r1 = 0x8927;
    0x00028a54 mov r0, r5                                        |     r0 = r5;
    0x00028a56 blx 0xdf44                                        |     fcn_0000df44 ();
    0x00028a5a adds r0, 1                                        |     r0++;
                                                                 |     if (r0 == 1) {
    0x00028a5c beq 0x289c4                                       |         goto label_4;
                                                                 |     }
    0x00028a5e cmp.w fp, 1                                       |     
                                                                 |     if (fp == 1) {
    0x00028a62 beq.w 0x28bc0                                     |         goto label_18;
                                                                 |     }
    0x00028a66 ldrb r2, [r6, 0x17]                               |     r2 = *((r6 + 0x17));
    0x00028a68 sub.w r8, r4, 4                                   |     r8 -= var_4h;
    0x00028a6c ldrb r3, [r6, 0x12]                               |     r3 = *((r6 + 0x12));
    0x00028a6e mov.w r1, 0x800                                   |     r1 = 0x800;
    0x00028a72 mov r0, r8                                        |     r0 = r8;
    0x00028a74 str r2, [sp, 0x10]                                |     var_a8h = r2;
    0x00028a76 ldrb r2, [r6, 0x16]                               |     r2 = *((r6 + 0x16));
    0x00028a78 str r2, [sp, 0xc]                                 |     var_ch_2 = r2;
    0x00028a7a ldrb r2, [r6, 0x15]                               |     r2 = *((r6 + 0x15));
    0x00028a7c str r2, [sp, 8]                                   |     var_8h_2 = r2;
    0x00028a7e ldrb r2, [r6, 0x14]                               |     r2 = *((r6 + 0x14));
    0x00028a80 str r2, [sp, 4]                                   |     var_4h_3 = r2;
    0x00028a82 ldrb r2, [r6, 0x13]                               |     r2 = *((r6 + 0x13));
    0x00028a84 str r2, [sp]                                      |     *(sp) = r2;
    0x00028a86 ldr r2, [pc, 0x1a0]                               |     
    0x00028a88 add r2, pc                                        |     r2 = 0x516b6;
    0x00028a8a bl 0x43f38                                        |     zbx_snprintf ();
    0x00028a8e ldr r2, [sp, 0x20]                                |     r2 = var_20h;
    0x00028a90 mov r1, r8                                        |     r1 = r8;
    0x00028a92 ldr r3, [pc, 0x198]                               |     r3 = *(0x28c2e);
    0x00028a94 ldr r0, [sp, 0x1c]                                |     r0 = var_b4h;
    0x00028a96 ldr r3, [r2, r3]                                  |     r3 = *(0x516b6);
    0x00028a98 mov r2, r3                                        |     r2 = r3;
    0x00028a9a str r3, [sp, 0x24]                                |     var_24h = r3;
    0x00028a9c bl 0x32cdc                                        |     zbx_vector_str_search ();
    0x00028aa0 adds r0, 1                                        |     r0++;
                                                                 |     if (r0 != 1) {
    0x00028aa2 bne 0x289c4                                       |         goto label_4;
                                                                 |     }
                                                                 | label_9:
    0x00028aa4 ldr r0, [pc, 0x188]                               |     
    0x00028aa6 mov r3, r8                                        |     r3 = r8;
    0x00028aa8 movs r2, 0                                        |     r2 = 0;
    0x00028aaa movw r1, 0x256                                    |     r1 = 0x256;
    0x00028aae add r0, pc                                        |     r0 = 0x516e2;
    0x00028ab0 bl 0x40ed8                                        |     r0 = zbx_strdup2 ();
    0x00028ab4 mov r1, r0                                        |     r1 = r0;
    0x00028ab6 ldr r0, [sp, 0x1c]                                |     r0 = var_b4h;
    0x00028ab8 bl 0x32a08                                        |     zbx_vector_str_append ();
    0x00028abc b 0x289c4                                         |     goto label_4;
                                                                 | label_10:
    0x00028abe ldr r0, [r1, 0x28]                                |     r0 = *((r1 + 0x28));
    0x00028ac0 mov r4, r1                                        |     r4 = r1;
    0x00028ac2 ldr r3, [pc, 0x170]                               |     
    0x00028ac4 movs r2, 0                                        |     r2 = 0;
    0x00028ac6 movw r1, 0x217                                    |     r1 = 0x217;
    0x00028aca orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x00028ace str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x00028ad0 add r3, pc                                        |     r3 = 0x5170a;
    0x00028ad2 ldr r0, [pc, 0x164]                               |     
    0x00028ad4 add r0, pc                                        |     r0 = 0x51712;
    0x00028ad6 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x00028ad8 invalid                                           |     
                                                                 |     do {
                                                                 | label_8:
    0x00028adc ldr r2, [sp, 0x18]                                |         r2 = var_18h;
    0x00028ade movs r0, 1                                        |         r0 = 1;
    0x00028ae0 str r3, [r2, 0x20]                                |         *((r2 + 0x20)) = r3;
    0x00028ae2 b 0x28a08                                         |         goto label_5;
                                                                 | label_12:
    0x00028ae4 ldr r2, [sp, 0x18]                                |         r2 = var_18h;
    0x00028ae6 ldr r3, [r2, 0x28]                                |         r3 = *((r2 + 0x28));
    0x00028ae8 orr r3, r3, 0x20                                  |         r3 |= 0x20;
    0x00028aec str r3, [r2, 0x28]                                |         *((r2 + 0x28)) = r3;
    0x00028aee blx 0xe3d4                                        |         r0 = fcn_0000e3d4 ();
    0x00028af2 ldr r0, [r0]                                      |         r0 = *(r0);
    0x00028af4 bl 0x30b74                                        |         zbx_strerror ();
    0x00028af8 ldr r1, [pc, 0x140]                               |         
    0x00028afa mov r2, r0                                        |         r2 = r0;
    0x00028afc movs r0, 0                                        |         r0 = 0;
    0x00028afe add r1, pc                                        |         r1 = 0x5173e;
    0x00028b00 bl 0x44820                                        |         r0 = zbx_dsprintf ()
    0x00028b04 mov r3, r0                                        |         r3 = r0;
    0x00028b06 b 0x28adc                                         |         
                                                                 |     } while (1);
                                                                 | label_16:
    0x00028b08 ldr r2, [sp, 0x20]                                |     r2 = var_20h;
    0x00028b0a ldr r3, [pc, 0x120]                               |     r3 = *(0x28c2e);
    0x00028b0c ldr r0, [sp, 0x1c]                                |     r0 = var_b4h;
    0x00028b0e ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00028b10 mov r1, r3                                        |     r1 = r3;
    0x00028b12 str r3, [sp, 0x20]                                |     var_20h = r3;
    0x00028b14 bl 0x32ba8                                        |     zbx_vector_str_sort ();
    0x00028b18 ldr r3, [r4, -0x18]                               |     r3 = var_18h_2;
    0x00028b1c cmp r3, 0                                         |     
                                                                 |     if (r3 <= 0) {
    0x00028b1e ble 0x28bfa                                       |         goto label_19;
                                                                 |     }
    0x00028b20 ldr.w r8, [pc, 0x11c]                             |     r8 = *(0x00028c40);
    0x00028b24 movs r7, 0                                        |     r7 = 0;
    0x00028b26 mov r6, r7                                        |     r6 = r7;
    0x00028b28 str r5, [sp, 0x20]                                |     var_20h = r5;
    0x00028b2a add r8, pc                                        |     r8 += pc;
    0x00028b2c b 0x28b62                                         |     
                                                                 |     while (fp != 1) {
                                                                 | label_6:
    0x00028b2e mov r3, r5                                        |         r3 = r5;
    0x00028b30 rsb.w r1, r6, 0x800                               |         r1 = 0x800 - r6;
    0x00028b34 add.w r0, sl, r6                                  |         r0 = sl + r6;
    0x00028b38 mov r2, r8                                        |         r2 = r8;
    0x00028b3a bl 0x43f38                                        |         zbx_snprintf ();
    0x00028b3e ldr r3, [r4, -0x1c]                               |         r3 = var_1ch;
    0x00028b42 add r6, r0                                        |         r6 += r0;
    0x00028b44 ldr.w r0, [r3, sb]                                |         r0 = *((r3 + sb));
                                                                 |         if (r0 != 0) {
    0x00028b48 cbz r0, 0x28b58                                   |             
    0x00028b4a blx 0xde30                                        |             fcn_0000de30 ();
    0x00028b4e ldr r3, [r4, -0x1c]                               |             r3 = var_1ch;
    0x00028b52 movs r2, 0                                        |             r2 = 0;
    0x00028b54 str.w r2, [r3, sb]                                |             __asm ("str.w r2, [r3, sb]");
                                                                 |         }
    0x00028b58 ldr r3, [r4, -0x18]                               |         r3 = var_18h_2;
    0x00028b5c adds r7, 1                                        |         r7++;
    0x00028b5e cmp r3, r7                                        |         
                                                                 |         if (r3 <= r7) {
    0x00028b60 ble 0x28b90                                       |             goto label_20;
                                                                 |         }
    0x00028b62 ldr r3, [r4, -0x1c]                               |         r3 = var_1ch;
    0x00028b66 cmp.w fp, 1                                       |         
    0x00028b6a lsl.w sb, r7, 2                                   |         sb = r7 << 2;
    0x00028b6e ldr.w r5, [r3, r7, lsl 2]                         |         offset_0 = r7 << 2;
                                                                 |         r5 = *((r3 + offset_0));
    0x00028b72 bne 0x28b2e                                       |         
                                                                 |     }
    0x00028b74 movs r1, 0x20                                     |     r1 = 0x20;
    0x00028b76 mov r0, r5                                        |     r0 = r5;
    0x00028b78 blx 0xdcd4                                        |     r0 = fcn_0000dcd4 ();
    0x00028b7c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00028b7e beq 0x28b2e                                       |         goto label_6;
                                                                 |     }
    0x00028b80 mov.w r3, 0x5d                                    |     r3 = 0x5d;
    0x00028b84 strb r3, [r0]                                     |     *(r0) = r3;
    0x00028b86 ldr r3, [r4, -0x1c]                               |     r3 = var_1ch;
    0x00028b8a ldr.w r5, [r3, sb]                                |     r5 = *((r3 + sb));
    0x00028b8e b 0x28b2e                                         |     goto label_6;
                                                                 | label_20:
    0x00028b90 ldr r5, [sp, 0x20]                                |     r5 = var_20h;
    0x00028b92 subs r6, 2                                        |     r6 -= 2;
    0x00028b94 b 0x289d8                                         |     goto label_7;
                                                                 | label_13:
    0x00028b96 mov r0, r5                                        |     r0 = r5;
    0x00028b98 blx 0xe0ac                                        |     fcn_0000e0ac ();
    0x00028b9c ldr r2, [sp, 0x18]                                |     r2 = var_18h;
    0x00028b9e ldr r3, [r2, 0x28]                                |     r3 = *((r2 + 0x28));
    0x00028ba0 orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x00028ba4 str r3, [r2, 0x28]                                |     *((r2 + 0x28)) = r3;
    0x00028ba6 blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x00028baa ldr r0, [r0]                                      |     r0 = *(r0);
    0x00028bac bl 0x30b74                                        |     zbx_strerror ();
    0x00028bb0 ldr r1, [pc, 0x90]                                |     
    0x00028bb2 mov r2, r0                                        |     r2 = r0;
    0x00028bb4 movs r0, 0                                        |     r0 = 0;
    0x00028bb6 add r1, pc                                        |     r1 = 0x517fe;
    0x00028bb8 bl 0x44820                                        |     r0 = zbx_dsprintf ()
    0x00028bbc mov r3, r0                                        |     r3 = r0;
    0x00028bbe b 0x28adc                                         |     goto label_8;
                                                                 | label_18:
    0x00028bc0 ldr r2, [pc, 0x84]                                |     
    0x00028bc2 sub.w r8, r4, 4                                   |     r8 -= var_4h;
    0x00028bc6 mov r3, r6                                        |     r3 = r6;
    0x00028bc8 mov.w r1, 0x800                                   |     r1 = 0x800;
    0x00028bcc mov r0, r8                                        |     r0 = r8;
    0x00028bce add r2, pc                                        |     r2 = 0x5181a;
    0x00028bd0 bl 0x43f38                                        |     zbx_snprintf ();
    0x00028bd4 ldrb r2, [r6, 0x17]                               |     r2 = *((r6 + 0x17));
    0x00028bd6 rsb.w r1, r0, 0x800                               |     r1 = 0x800 - r0;
    0x00028bda ldrb r3, [r6, 0x12]                               |     r3 = *((r6 + 0x12));
    0x00028bdc add r0, r8                                        |     r0 += r8;
    0x00028bde str r2, [sp, 0x10]                                |     var_a8h = r2;
    0x00028be0 ldrb r2, [r6, 0x16]                               |     r2 = *((r6 + 0x16));
    0x00028be2 str r2, [sp, 0xc]                                 |     var_ch_2 = r2;
    0x00028be4 ldrb r2, [r6, 0x15]                               |     r2 = *((r6 + 0x15));
    0x00028be6 str r2, [sp, 8]                                   |     var_8h_2 = r2;
    0x00028be8 ldrb r2, [r6, 0x14]                               |     r2 = *((r6 + 0x14));
    0x00028bea str r2, [sp, 4]                                   |     var_4h_3 = r2;
    0x00028bec ldrb r2, [r6, 0x13]                               |     r2 = *((r6 + 0x13));
    0x00028bee str r2, [sp]                                      |     *(sp) = r2;
    0x00028bf0 ldr r2, [pc, 0x58]                                |     
    0x00028bf2 add r2, pc                                        |     r2 = 0x51842;
    0x00028bf4 bl 0x43f38                                        |     zbx_snprintf ();
    0x00028bf8 b 0x28aa4                                         |     goto label_9;
                                                                 | label_19:
    0x00028bfa mvn r6, 1                                         |     r6 = ~1;
    0x00028bfe b 0x289d8                                         |     goto label_7;
                                                                 | label_17:
    0x00028c00 blx 0xe158                                        |     fcn_0000e158 ();
    0x00028c04 adds r3, 6                                        |     r3 += 6;
    0x00028c06 movs r3, r0                                       |     r3 = r0;
    0x00028c08 adds r3, 2                                        |     r3 += 2;
    0x00028c0a movs r3, r0                                       |     r3 = r0;
    0x00028c0c lsls r4, r2, 0xe                                  |     r4 = r2 << 0xe;
    0x00028c0e movs r0, r0                                       |     
    0x00028c10 ldr r0, [sp, 0x1d8]                               |     r0 = var_1d8h;
    0x00028c12 movs r2, r0                                       |     r2 = r0;
    0x00028c14 ldr r0, [sp, 0x278]                               |     r0 = var_278h;
    0x00028c16 movs r2, r0                                       |     r2 = r0;
    0x00028c18 strh r4, [r2, 0x22]                               |     *((r2 + 0x22)) = r4;
    0x00028c1a movs r2, r0                                       |     r2 = r0;
    0x00028c1c ldr r5, [sp, 0x3c8]                               |     r5 = var_3c8h;
    0x00028c1e movs r2, r0                                       |     r2 = r0;
    0x00028c20 ldr r5, [sp, 0x118]                               |     r5 = var_118h;
    0x00028c22 movs r2, r0                                       |     r2 = r0;
    0x00028c24 adds r1, 0xc6                                     |     r1 += 0xc6;
    0x00028c26 movs r3, r0                                       |     r3 = r0;
    0x00028c28 ldr r6, [sp, 0x90]                                |     r6 = var_90h;
    0x00028c2a movs r2, r0                                       |     r2 = r0;
    0x00028c2c lsls r4, r0, 0xf                                  |     r4 = r0 << 0xf;
    0x00028c2e movs r0, r0                                       |     
    0x00028c30 ldr r4, [sp, 0x208]                               |     r4 = var_208h;
    0x00028c32 movs r2, r0                                       |     r2 = r0;
    0x00028c34 ldr r0, [r1, 0x38]                                |     r0 = *((r1 + 0x38));
    0x00028c36 movs r2, r0                                       |     r2 = r0;
    0x00028c38 ldr r4, [sp, 0x170]                               |     r4 = var_170h;
    0x00028c3a movs r2, r0                                       |     r2 = r0;
    0x00028c3c ldr r5, [sp, 0x198]                               |     r5 = var_198h;
    0x00028c3e movs r2, r0                                       |     r2 = r0;
    0x00028c40 str r6, [sp, 0x118]                               |     var_118h = r6;
    0x00028c42 movs r2, r0                                       |     r2 = r0;
    0x00028c44 ldr r4, [sp, 0x328]                               |     r4 = var_328h;
    0x00028c46 movs r2, r0                                       |     r2 = r0;
    0x00028c48 ldr r4, [sp, 0x358]                               |     r4 = var_358h;
    0x00028c4a movs r2, r0                                       |     r2 = r0;
    0x00028c4c ldr r4, [sp, 0x2e8]                               |     r4 = var_2e8h;
    0x00028c4e movs r2, r0                                       |     r2 = r0;
                                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x2631c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.SYSTEM_SWAP_SIZE ()          | void SYSTEM_SWAP_SIZE (int16_t arg1, int16_t arg2) {
                                             |     int16_t var_4h;
                                             |     int16_t var_24h_2;
                                             |     int16_t var_28h;
                                             |     int16_t var_38h;
                                             |     int16_t var_44h;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x0002631c blmi 0x1df8cfc                |     __asm ("blmi aav.0x000358b4");
    0x00026320 push {r4, r5, r6, lr}         |     
    0x00026322 sub sp, 0x48                  |     
    0x00026324 add r2, pc                    |     r2 += pc;
    0x00026326 mov r4, r1                    |     r4 = r1;
    0x00026328 ldr r3, [r2, r3]              |     r3 = *((r2 + r3));
    0x0002632a ldr r3, [r3]                  |     r3 = *(r3);
    0x0002632c str r3, [sp, 0x44]            |     var_44h = r3;
    0x0002632e mov.w r3, 0                   |     r3 = 0;
    0x00026332 ldr r3, [r0, 4]               |     r3 = *((r0 + 4));
    0x00026334 cmp r3, 2                     |     
                                             |     if (r3 > 2) {
    0x00026336 bgt 0x263d8                   |         goto label_6;
                                             |     }
    0x00026338 cmp r3, 0                     |     
                                             |     if (r3 <= 0) {
    0x0002633a ble 0x263ac                   |         goto label_7;
                                             |     }
    0x0002633c ldr r2, [r0, 8]               |     r2 = *((r0 + 8));
    0x0002633e cmp r3, 2                     |     
    0x00026340 ldr r0, [r2]                  |     r0 = *(r2);
                                             |     if (r3 != 2) {
    0x00026342 bne 0x263a6                   |         goto label_8;
                                             |     }
    0x00026344 ldr r5, [r2, 4]               |     r5 = *((r2 + 4));
    0x00026346 cbz r0, 0x26358               |     
                                             |     while (r0 != 0) {
    0x00026348 ldrb r3, [r0]                 |         r3 = *(r0);
                                             |         if (r3 != 0) {
    0x0002634a cbz r3, 0x26358               |             
    0x0002634c ldr r1, [pc, 0x1b0]           |             
    0x0002634e add r1, pc                    |             r1 = 0x4c852;
    0x00026350 blx 0xe3b0                    |             r0 = fcn_0000e3b0 ();
    0x00026354 cmp r0, 0                     |             
                                             |             if (r0 != 0) {
    0x00026356 bne 0x26408                   |                 goto label_9;
                                             |             }
                                             |         }
    0x00026358 add r0, sp, 4                 |         r0 += var_4h;
    0x0002635a blx 0xe364                    |         r0 = fcn_0000e364 ();
    0x0002635e mov r6, r0                    |         r6 = r0;
                                             |         if (r0 != 0) {
    0x00026360 cbnz r0, 0x263b6              |             goto label_10;
                                             |         }
                                             |         if (r5 != 0) {
    0x00026362 cbz r5, 0x26376               |             
    0x00026364 ldrb r3, [r5]                 |             r3 = *(r5);
                                             |             if (r3 == 0) {
    0x00026366 cbz r3, 0x26376               |                 goto label_0;
                                             |             }
    0x00026368 ldr r1, [pc, 0x198]           |             
    0x0002636a mov r0, r5                    |             r0 = r5;
    0x0002636c add r1, pc                    |             r1 = 0x4c874;
    0x0002636e blx 0xe3b0                    |             r0 = fcn_0000e3b0 ();
    0x00026372 cmp r0, 0                     |             
                                             |             if (r0 != 0) {
    0x00026374 bne 0x263f8                   |                 goto label_11;
                                             |             }
                                             |         }
                                             | label_0:
    0x00026376 ldr r2, [sp, 0x28]            |         r2 = var_28h;
                                             | label_2:
    0x00026378 ldr r3, [sp, 0x38]            |         r3 = var_38h;
    0x0002637a ldr r1, [r4, 0x28]            |         r1 = *((r4 + 0x28));
    0x0002637c umull r2, r3, r2, r3          |         r2:r3 = r2 * r3;
    0x00026380 orr r1, r1, 1                 |         r1 |= 1;
    0x00026384 str r1, [r4, 0x28]            |         *((r4 + 0x28)) = r1;
    0x00026386 strd r2, r3, [r4, 8]          |         __asm ("strd r2, r3, [r4, 8]");
                                             | label_3:
    0x0002638a movs r0, 0                    |         r0 = 0;
                                             | label_1:
    0x0002638c ldr r2, [pc, 0x178]           |         
    0x0002638e ldr r3, [pc, 0x16c]           |         r3 = *(0x264fe);
    0x00026390 add r2, pc                    |         r2 = 0x4c89c;
    0x00026392 ldr r3, [r2, r3]              |         r3 = *(0x4c89c);
    0x00026394 ldr r2, [r3]                  |         r2 = *(0x4c89c);
    0x00026396 ldr r3, [sp, 0x44]            |         r3 = var_44h;
    0x00026398 eors r2, r3                   |         r2 ^= r3;
    0x0002639a mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x0002639e bne.w 0x264e8                 |             goto label_12;
                                             |         }
    0x000263a2 add sp, 0x48                  |         
    0x000263a4 pop {r4, r5, r6, pc}          |         
                                             | label_8:
    0x000263a6 movs r5, 0                    |         r5 = 0;
    0x000263a8 cmp r0, 0                     |         
    0x000263aa bne 0x26348                   |         
                                             |     }
                                             | label_7:
    0x000263ac add r0, sp, 4                 |     r0 += var_4h;
    0x000263ae blx 0xe364                    |     r0 = fcn_0000e364 ();
    0x000263b2 cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x000263b4 beq 0x26376                   |         goto label_0;
                                             |     }
                                             | label_10:
    0x000263b6 ldr r3, [r4, 0x28]            |     r3 = *((r4 + 0x28));
    0x000263b8 orr r3, r3, 0x20              |     r3 |= 0x20;
    0x000263bc str r3, [r4, 0x28]            |     *((r4 + 0x28)) = r3;
    0x000263be blx 0xe3d4                    |     fcn_0000e3d4 ();
    0x000263c0 invalid                       |     
    0x000263c4 bl 0x30b74                    |     zbx_strerror ();
    0x000263c8 ldr r1, [pc, 0x140]           |     
    0x000263ca mov r2, r0                    |     r2 = r0;
    0x000263cc movs r0, 0                    |     r0 = 0;
    0x000263ce add r1, pc                    |     r1 = 0x4c8de;
    0x000263d0 bl 0x44820                    |     r0 = zbx_dsprintf ()
    0x000263d4 mov r3, r0                    |     r3 = r0;
    0x000263d6 b 0x263f2                     |     goto label_5;
                                             | label_6:
    0x000263d8 ldr r0, [r1, 0x28]            |     r0 = *((r1 + 0x28));
    0x000263da movs r2, 0                    |     r2 = 0;
    0x000263dc ldr r3, [pc, 0x130]           |     
    0x000263de movs r1, 0x1f                 |     r1 = 0x1f;
    0x000263e0 orr r0, r0, 0x20              |     r0 |= 0x20;
    0x000263e4 str r0, [r4, 0x28]            |     *((r4 + 0x28)) = r0;
    0x000263e6 add r3, pc                    |     r3 = 0x4c8fa;
    0x000263e8 ldr r0, [pc, 0x128]           |     
    0x000263ea add r0, pc                    |     r0 = 0x4c902;
    0x000263ec bl 0x40ed8                    |     r0 = zbx_strdup2 ();
    0x000263f0 mov r3, r0                    |     r3 = r0;
                                             |     do {
                                             | label_5:
    0x000263f2 movs r0, 1                    |         r0 = 1;
    0x000263f4 str r3, [r4, 0x20]            |         *((r4 + 0x20)) = r3;
    0x000263f6 b 0x2638c                     |         goto label_1;
                                             | label_11:
    0x000263f8 ldr r1, [pc, 0x11c]           |         
    0x000263fa mov r0, r5                    |         r0 = r5;
    0x000263fc add r1, pc                    |         r1 = "@&@5@";
    0x000263fe blx 0xe3b0                    |         r0 = fcn_0000e3b0 ();
                                             |         if (r0 != 0) {
    0x00026402 cbnz r0, 0x26424              |             goto label_13;
                                             |         }
    0x00026404 ldr r2, [sp, 0x24]            |         r2 = var_24h_2;
    0x00026406 b 0x26378                     |         goto label_2;
                                             | label_9:
    0x00026408 ldr r0, [r4, 0x28]            |         r0 = *((r4 + 0x28));
    0x0002640a movs r2, 0                    |         r2 = 0;
    0x0002640c ldr r3, [pc, 0x10c]           |         
    0x0002640e movs r1, 0x28                 |         r1 = 0x28;
    0x00026410 orr r0, r0, 0x20              |         r0 |= 0x20;
    0x00026414 str r0, [r4, 0x28]            |         *((r4 + 0x28)) = r0;
    0x00026416 add r3, pc                    |         r3 = 0x4c936;
    0x00026418 ldr r0, [pc, 0x104]           |         
    0x0002641a add r0, pc                    |         r0 = 0x4c93e;
    0x0002641c bl 0x40ed8                    |         r0 = zbx_strdup2 ();
    0x00026420 mov r3, r0                    |         r3 = r0;
    0x00026422 b 0x263f2                     |         
                                             |     } while (1);
                                             | label_13:
    0x00026424 ldr r1, [pc, 0xfc]            |     
    0x00026426 mov r0, r5                    |     r0 = r5;
    0x00026428 add r1, pc                    |     r1 = 0x4c950;
    0x0002642a blx 0xe3b0                    |     r0 = fcn_0000e3b0 ();
                                             |     if (r0 == 0) {
    0x0002642e cbz r0, 0x2646c               |         goto label_14;
                                             |     }
    0x00026430 ldr r1, [pc, 0xf4]            |     
    0x00026432 mov r0, r5                    |     r0 = r5;
    0x00026434 add r1, pc                    |     r1 = 0x4c960;
    0x00026436 blx 0xe3b0                    |     r0 = fcn_0000e3b0 ();
                                             |     if (r0 != 0) {
    0x0002643a cbnz r0, 0x26486              |         goto label_15;
                                             |     }
    0x0002643c ldr r3, [r4, 0x28]            |     r3 = *((r4 + 0x28));
    0x0002643e ldr r2, [sp, 0x24]            |     r2 = var_24h_2;
    0x00026440 orr r3, r3, 2                 |     r3 |= 2;
    0x00026444 str r3, [r4, 0x28]            |     *((r4 + 0x28)) = r3;
    0x00026446 cmp r2, 0                     |     
                                             |     if (r2 == 0) {
    0x00026448 beq 0x264c0                   |         goto label_16;
                                             |     }
    0x0002644a vmov s15, r2                  |     __asm ("vmov s15, r2");
    0x0002644e vcvt.f64.u32 d16, s15         |     __asm ("vcvt.f64.u32 d16, s15");
    0x00026452 vldr s15, [sp, 0x28]          |     __asm ("vldr s15, [sp, 0x28]");
    0x00026456 vldr d19, [pc, 0x98]          |     __asm ("vldr d19, [0x000264f4]");
    0x0002645a vcvt.f64.u32 d18, s15         |     __asm ("vcvt.f64.u32 d18, s15");
    0x0002645e vdiv.f64 d17, d18, d16        |     __asm ("vdiv.f64 d17, d18, d16");
    0x00026462 vmul.f64 d17, d17, d19        |     __asm ("vmul.f64 d17, d17, d19");
                                             |     do {
    0x00026466 vstr d17, [r4, 0x10]          |         __asm ("vstr d17, [r4, 0x10]");
    0x0002646a b 0x2638a                     |         goto label_3;
                                             | label_14:
    0x0002646c ldrd r3, r0, [sp, 0x24]       |         __asm ("ldrd r3, r0, [var_24h_2]");
    0x00026470 ldr r2, [sp, 0x38]            |         r2 = var_38h;
    0x00026472 ldr r1, [r4, 0x28]            |         r1 = *((r4 + 0x28));
    0x00026474 subs r3, r3, r0               |         r3 -= r0;
    0x00026476 umull r3, r2, r3, r2          |         r3:r2 = r3 * r2;
    0x0002647a orr r1, r1, 1                 |         r1 |= 1;
    0x0002647e str r1, [r4, 0x28]            |         *((r4 + 0x28)) = r1;
    0x00026480 strd r3, r2, [r4, 8]          |         __asm ("strd r3, r2, [r4, 8]");
    0x00026484 b 0x2638a                     |         goto label_3;
                                             | label_15:
    0x00026486 ldr r1, [pc, 0xa4]            |         
    0x00026488 mov r0, r5                    |         r0 = r5;
    0x0002648a add r1, pc                    |         r1 = "option \"-%c\" or \"--%s\" specified multiple times";
    0x0002648c blx 0xe3b0                    |         r0 = fcn_0000e3b0 ();
                                             |         if (r0 != 0) {
    0x00026490 cbnz r0, 0x264cc              |             goto label_17;
                                             |         }
    0x00026492 ldr r3, [r4, 0x28]            |         r3 = *((r4 + 0x28));
    0x00026494 ldr r2, [sp, 0x24]            |         r2 = var_24h_2;
    0x00026496 orr r3, r3, 2                 |         r3 |= 2;
    0x0002649a str r3, [r4, 0x28]            |         *((r4 + 0x28)) = r3;
                                             |         if (r2 == 0) {
    0x0002649c cbz r2, 0x264c6               |             goto label_18;
                                             |         }
    0x0002649e vmov s15, r2                  |         __asm ("vmov s15, r2");
    0x000264a2 vcvt.f64.u32 d17, s15         |         __asm ("vcvt.f64.u32 d17, s15");
    0x000264a6 vldr s15, [sp, 0x28]          |         __asm ("vldr s15, [sp, 0x28]");
    0x000264aa vldr d16, [pc, 0x44]          |         __asm ("vldr d16, [0x000264f4]");
    0x000264ae vcvt.f64.u32 d18, s15         |         __asm ("vcvt.f64.u32 d18, s15");
    0x000264b2 vdiv.f64 d19, d18, d17        |         __asm ("vdiv.f64 d19, d18, d17");
    0x000264b4 subs r3, 0xa1                 |         r3 -= 0xa1;
    0x000264b6 vmls.f64 d16, d19, d16        |         __asm ("vmls.f64 d16, d19, d16");
                                             | label_4:
    0x000264ba vstr d16, [r4, 0x10]          |         __asm ("vstr d16, [r4, 0x10]");
    0x000264be b 0x2638a                     |         goto label_3;
                                             | label_16:
    0x000264c0 vldr d17, [pc, 0x2c]          |         __asm ("vldr d17, [0x000264f4]");
    0x000264c4 b 0x26466                     |         
                                             |     } while (1);
                                             | label_18:
    0x000264c6 vmov.i64 d16, 0               |     __asm ("vmov.i64 d16, 0");
    0x000264ca b 0x264ba                     |     goto label_4;
                                             | label_17:
    0x000264cc ldr r0, [r4, 0x28]            |     r0 = *((r4 + 0x28));
    0x000264ce mov r2, r6                    |     r2 = r6;
    0x000264d0 ldr r3, [pc, 0x5c]            |     
    0x000264d2 movs r1, 0x48                 |     r1 = 0x48;
    0x000264d4 orr r0, r0, 0x20              |     r0 |= 0x20;
    0x000264d8 str r0, [r4, 0x28]            |     *((r4 + 0x28)) = r0;
    0x000264da add r3, pc                    |     r3 = 0x4ca0e;
    0x000264dc ldr r0, [pc, 0x54]            |     
    0x000264de add r0, pc                    |     r0 = 0x4ca16;
    0x000264e0 bl 0x40ed8                    |     r0 = zbx_strdup2 ();
    0x000264e4 mov r3, r0                    |     r3 = r0;
    0x000264e6 b 0x263f2                     |     goto label_5;
                                             | label_12:
    0x000264e8 blx 0xe158                    |     fcn_0000e158 ();
    0x000264ec nop.w                         |     
    0x000264f0 movs r0, r0                   |     
    0x000264f2 movs r0, r0                   |     
    0x000264f4 movs r0, r0                   |     
    0x000264f6 eors r1, r3                   |     r1 ^= r3;
    0x000264f8 ldr r4, [r6, r2]              |     r4 = *((r6 + r2));
    0x000264fa movs r3, r0                   |     r3 = r0;
    0x000264fc lsls r4, r2, 0xe              |     r4 = r2 << 0xe;
    0x000264fe movs r0, r0                   |     
    0x00026500 bkpt 0x1e                     |     __asm ("bkpt 0x1e");
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x257f4 */
                                             | #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;
    0x000257f4 blmi 0x7f8074                 |     __asm ("blmi aav.0x000363dc");
    0x000257f8 push {r4, lr}                 |     
    0x000257fa sub sp, 0x190                 |     
    0x000257fc add r2, pc                    |     r2 += pc;
    0x000257fe add r0, sp, 4                 |     r0 += var_4h;
    0x00025800 mov r4, r1                    |     r4 = r1;
    0x00025802 ldr r3, [r2, r3]              |     r3 = *((r2 + r3));
    0x00025804 ldr r3, [r3]                  |     r3 = *(r3);
    0x00025806 str r3, [sp, 0x18c]           |     var_18ch = r3;
    0x00025808 mov.w r3, 0                   |     r3 = 0;
    0x0002580c blx 0xdd84                    |     dn_expand ();
    0x00025810 adds r0, 1                    |     r0++;
                                             |     if (r0 == 1) {
    0x00025812 beq 0x25848                   |         goto label_0;
                                             |     }
    0x00025814 ldr r1, [r4, 0x28]            |     r1 = *((r4 + 0x28));
    0x00025816 add r3, sp, 0x108             |     r3 += var_108h;
    0x00025818 ldr r0, [pc, 0x5c]            |     
    0x0002581a movs r2, 0                    |     r2 = 0;
    0x0002581c orr r1, r1, 4                 |     r1 |= 4;
    0x00025820 str r1, [r4, 0x28]            |     *((r4 + 0x28)) = r1;
    0x00025822 add r0, pc                    |     r0 = 0x4b09e;
    0x00025824 movs r1, 0x2d                 |     r1 = 0x2d;
    0x00025826 bl 0x40ed8                    |     zbx_strdup2 ();
    0x0002582a movs r3, 0                    |     r3 = 0;
    0x0002582c str r0, [r4, 0x18]            |     *((r4 + 0x18)) = r0;
                                             |     do {
    0x0002582e ldr r1, [pc, 0x4c]            |         
    0x00025830 ldr r2, [pc, 0x40]            |         r2 = *(0x25874);
    0x00025832 add r1, pc                    |         r1 = zbx_compress;
    0x00025834 ldr r2, [r1, r2]              |         r2 = zbx_compress;
    0x00025836 ldr r1, [r2]                  |         r1 = zbx_compress;
    0x00025838 ldr r2, [sp, 0x18c]           |         r2 = var_18ch;
    0x0002583a eors r1, r2                   |         r1 ^= r2;
    0x0002583c mov.w r2, 0                   |         r2 = 0;
                                             |         if (r1 != r2) {
    0x00025840 bne 0x2586c                   |             goto label_1;
                                             |         }
    0x00025842 mov r0, r3                    |         r0 = r3;
    0x00025844 add sp, 0x190                 |         
    0x00025846 pop {r4, pc}                  |         
                                             | label_0:
    0x00025848 ldr r3, [r4, 0x28]            |         r3 = *((r4 + 0x28));
    0x0002584a orr r3, r3, 0x20              |         r3 |= 0x20;
    0x0002584e str r3, [r4, 0x28]            |         *((r4 + 0x28)) = r3;
    0x00025850 blx 0xe3d4                    |         r0 = fcn_0000e3d4 ();
    0x00025854 ldr r0, [r0]                  |         r0 = *(r0);
    0x00025856 bl 0x30b74                    |         zbx_strerror ();
    0x0002585a ldr r1, [pc, 0x24]            |         
    0x0002585c mov r2, r0                    |         r2 = r0;
    0x0002585e movs r0, 0                    |         r0 = 0;
    0x00025860 add r1, pc                    |         r1 = 0x4b0e6;
    0x00025862 bl 0x44820                    |         zbx_dsprintf ()
    0x00025866 movs r3, 1                    |         r3 = 1;
    0x00025868 str r0, [r4, 0x20]            |         *((r4 + 0x20)) = r0;
    0x0002586a b 0x2582e                     |         
                                             |     } while (1);
                                             | label_1:
    0x0002586c blx 0xe158                    |     fcn_0000e158 ();
    0x00025870 str r4, [r3, 0x3c]            |     *((r3 + 0x3c)) = r4;
    0x00025872 movs r3, r0                   |     r3 = r0;
    0x00025874 lsls r4, r2, 0xe              |     r4 = r2 << 0xe;
    0x00025876 movs r0, r0                   |     
    0x00025878 ldm r1, {r1, r2, r4, r6}      |     r1 = *(r1);
                                             |     r2 = *((r1 + 4));
                                             |     r4 = *((r1 + 8));
                                             |     r6 = *((r1 + 12));
    0x0002587a movs r2, r0                   |     r2 = r0;
    0x0002587c str r6, [r4, 0x38]            |     *((r4 + 0x38)) = r6;
    0x0002587e movs r3, r0                   |     r3 = r0;
    0x00025880 pop {r4, r5}                  |     
    0x00025882 movs r2, r0                   |     r2 = r0;
                                             | }
    ; assembly                                                           | /* r2dec pseudo code output */
                                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x25884 */
                                                                         | #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;
                                                                         |     int16_t var_804h;
                                                                         |     int16_t var_80ch;
                                                                         |     int16_t var_80eh;
                                                                         |     int16_t var_1000h;
                                                                         |     int16_t var_1800h;
                                                                         |     r0 = arg1;
                                                                         |     r1 = arg2;
    0x00025884 blmi 0xfe5f82e4                                           |     __asm ("blmi aav.0x00036348");
    0x00025888 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}               |     
    0x0002588c sub.w sp, sp, 0x1800                                      |     
    0x00025890 add r2, pc                                                |     r2 += pc;
    0x00025892 sub sp, 0xc                                               |     
    0x00025894 add.w r4, sp, 0x1800                                      |     r4 += var_1800h;
    0x00025898 ldr r3, [r2, r3]                                          |     r3 = *((r2 + r3));
    0x0002589a adds r4, 4                                                |     r4 += 4;
    0x0002589c ldr r3, [r3]                                              |     r3 = *(r3);
    0x0002589e str r3, [r4]                                              |     *(r4) = r3;
    0x000258a0 mov.w r3, 0                                               |     r3 = 0;
    0x000258a4 ldr r3, [r0, 4]                                           |     r3 = *((r0 + 4));
    0x000258a6 mov r4, r1                                                |     r4 = r1;
    0x000258a8 cmp r3, 1                                                 |     
                                                                         |     if (r3 > 1) {
    0x000258aa bgt 0x2593a                                               |         goto label_6;
                                                                         |     }
                                                                         |     if (r3 == 1) {
    0x000258ac bne 0x258ba                                               |         
    0x000258ae ldr r3, [r0, 8]                                           |         r3 = *((r0 + 8));
    0x000258b0 ldr r5, [r3]                                              |         r5 = *(r3);
                                                                         |         if (r5 == 0) {
    0x000258b2 cbz r5, 0x258ba                                           |             goto label_1;
                                                                         |         }
    0x000258b4 ldrb r3, [r5]                                             |         r3 = *(r5);
    0x000258b6 cmp r3, 0                                                 |         
                                                                         |         if (r3 != 0) {
    0x000258b8 bne 0x25958                                               |             goto label_7;
                                                                         |         }
                                                                         |     }
                                                                         | label_1:
    0x000258ba ldr r1, [pc, 0x22c]                                       |     
    0x000258bc ldr r0, [pc, 0x22c]                                       |     
    0x000258be add r1, pc                                                |     r1 = 0x4b3ac;
    0x000258c0 add r0, pc                                                |     r0 = 0x4b3b0;
    0x000258c2 blx 0xdf90                                                |     r0 = fcn_0000df90 ();
    0x000258c6 mov r5, r0                                                |     r5 = r0;
    0x000258c8 cmp r0, 0                                                 |     
                                                                         |     if (r0 == 0) {
    0x000258ca beq.w 0x25abe                                             |         goto label_8;
                                                                         |     }
                                                                         | label_4:
    0x000258ce add r6, sp, 4                                             |     r6 += var_4h_2;
    0x000258d0 mov r2, r5                                                |     r2 = r5;
    0x000258d2 mov.w r1, 0x800                                           |     r1 = 0x800;
    0x000258d6 mov r0, r6                                                |     r0 = r6;
    0x000258d8 blx 0xdc98                                                |     r0 = fcn_0000dc98 ();
    0x000258dc cmp r0, 0                                                 |     
                                                                         |     if (r0 == 0) {
    0x000258de beq.w 0x25a14                                             |         goto label_9;
                                                                         |     }
    0x000258e2 ldr r1, [pc, 0x20c]                                       |     
    0x000258e4 mov r0, r6                                                |     r0 = r6;
    0x000258e6 add r1, pc                                                |     r1 = 0x4b3dc;
    0x000258e8 bl 0x444f4                                                |     zbx_rtrim ();
    0x000258ec ldr r1, [r4, 0x28]                                        |     r1 = *((r4 + 0x28));
    0x000258ee mov r3, r6                                                |     r3 = r6;
    0x000258f0 ldr r0, [pc, 0x200]                                       |     
    0x000258f2 movs r2, 0                                                |     r2 = 0;
    0x000258f4 mov r6, r5                                                |     r6 = r5;
    0x000258f6 orr r1, r1, 4                                             |     r1 |= 4;
    0x000258fa str r1, [r4, 0x28]                                        |     *((r4 + 0x28)) = r1;
    0x000258fc add r0, pc                                                |     r0 = 0x4b3f4;
    0x000258fe movs r1, 0x7c                                             |     r1 = 0x7c;
    0x00025900 bl 0x40ed8                                                |     zbx_strdup2 ();
    0x00025904 str r0, [r4, 0x18]                                        |     *((r4 + 0x18)) = r0;
    0x00025906 cbnz r5, 0x25930                                          |     
                                                                         |     while (1) {
                                                                         | label_0:
    0x00025908 ldr r2, [pc, 0x1ec]                                       |         
    0x0002590a add.w r1, sp, 0x1800                                      |         r1 += var_1800h;
    0x0002590e ldr r3, [pc, 0x1d4]                                       |         r3 = *(0x25ae6);
    0x00025910 adds r1, 4                                                |         r1 += 4;
    0x00025912 add r2, pc                                                |         r2 = 0x4b40e;
    0x00025914 ldr r3, [r2, r3]                                          |         r3 = *(0x4b40e);
    0x00025916 ldr r2, [r3]                                              |         r2 = *(0x4b40e);
    0x00025918 ldr r3, [r1]                                              |         r3 = *(r1);
    0x0002591a eors r2, r3                                               |         r2 ^= r3;
    0x0002591c mov.w r3, 0                                               |         r3 = 0;
                                                                         |         if (r2 != r3) {
    0x00025920 bne.w 0x25aba                                             |             goto label_10;
                                                                         |         }
    0x00025924 mov r0, r6                                                |         r0 = r6;
    0x00025926 add.w sp, sp, 0x1800                                      |         
    0x0002592a add sp, 0xc                                               |         
    0x0002592c pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}                |         
    0x00025930 movs r6, 0                                                |         r6 = 0;
                                                                         | label_3:
    0x00025932 mov r0, r5                                                |         r0 = r5;
    0x00025934 blx 0xdc8c                                                |         fcn_0000dc8c ();
    0x00025938 b 0x25908                                                 |         
                                                                         |     }
                                                                         | label_6:
    0x0002593a ldr r0, [r1, 0x28]                                        |     r0 = *((r1 + 0x28));
    0x0002593c movs r2, 0                                                |     r2 = 0;
    0x0002593e ldr r3, [pc, 0x1bc]                                       |     
    0x00025940 movs r1, 0x3a                                             |     r1 = 0x3a;
    0x00025942 orr r0, r0, 0x20                                          |     r0 |= 0x20;
    0x00025946 str r0, [r4, 0x28]                                        |     *((r4 + 0x28)) = r0;
    0x00025948 add r3, pc                                                |     r3 = 0x4b44a;
    0x0002594a ldr r0, [pc, 0x1b4]                                       |     
    0x0002594c add r0, pc                                                |     r0 = 0x4b452;
    0x0002594e bl 0x40ed8                                                |     zbx_strdup2 ();
                                                                         | label_5:
    0x00025952 movs r6, 1                                                |     r6 = 1;
    0x00025954 str r0, [r4, 0x20]                                        |     *((r4 + 0x20)) = r0;
    0x00025956 b 0x25908                                                 |     goto label_0;
                                                                         | label_7:
    0x00025958 ldr r1, [pc, 0x1a8]                                       |     
    0x0002595a mov r0, r5                                                |     r0 = r5;
    0x0002595c add r1, pc                                                |     r1 = 0x4b464;
    0x0002595e blx 0xe3b0                                                |     r0 = fcn_0000e3b0 ();
    0x00025962 cmp r0, 0                                                 |     
                                                                         |     if (r0 == 0) {
    0x00025964 beq 0x258ba                                               |         goto label_1;
                                                                         |     }
    0x00025966 ldr r1, [pc, 0x1a0]                                       |     
    0x00025968 mov r0, r5                                                |     r0 = r5;
    0x0002596a add r1, pc                                                |     r1 = 0x4b478;
    0x0002596c blx 0xe3b0                                                |     r0 = fcn_0000e3b0 ();
    0x00025970 cmp r0, 0                                                 |     
                                                                         |     if (r0 == 0) {
    0x00025972 beq 0x25a32                                               |         goto label_11;
                                                                         |     }
    0x00025974 ldr r1, [pc, 0x194]                                       |     
    0x00025976 mov r0, r5                                                |     r0 = r5;
    0x00025978 add r1, pc                                                |     r1 = 0x4b488;
    0x0002597a blx 0xe3b0                                                |     r0 = fcn_0000e3b0 ();
    0x0002597e cmp r0, 0                                                 |     
                                                                         |     if (r0 != 0) {
    0x00025980 bne 0x25a66                                               |         goto label_12;
                                                                         |     }
    0x00025982 ldr r1, [pc, 0x18c]                                       |     
    0x00025984 ldr r0, [pc, 0x18c]                                       |     
    0x00025986 add r1, pc                                                |     r1 = 0x4b49c;
    0x00025988 add r0, pc                                                |     r0 = 0x4b4a0;
    0x0002598a blx 0xdf90                                                |     r0 = fcn_0000df90 ();
    0x0002598e mov r7, r0                                                |     r7 = r0;
    0x00025990 cmp r0, 0                                                 |     
                                                                         |     if (r0 == 0) {
    0x00025992 beq 0x25a86                                               |         goto label_13;
                                                                         |     }
    0x00025994 ldr.w sb, [pc, 0x180]                                     |     
    0x00025998 movw r8, 0x5250                                           |     
    0x0002599c movw sl, 0x5954                                           |     
    0x000259a0 addw fp, sp, 0x808                                        |     __asm ("addw fp, sp, 0x808");
    0x000259a4 movt r8, 0x5445                                           |     r8 = 0x54455250;
    0x000259a8 movt sl, 0x4e5f                                           |     sl = 0x4e5f5954;
    0x000259ac add sb, pc                                                |     sb = 0x4b4c8;
    0x000259ae addw r5, sp, 0x804                                        |     __asm ("addw r5, var_804h");
                                                                         |     do {
                                                                         | label_2:
    0x000259b2 mov r2, r7                                                |         r2 = r7;
    0x000259b4 mov.w r1, 0x800                                           |         r1 = 0x800;
    0x000259b8 mov r0, r5                                                |         r0 = r5;
    0x000259ba blx 0xdc98                                                |         r0 = fcn_0000dc98 ();
    0x000259be cmp r0, 0                                                 |         
                                                                         |         if (r0 == 0) {
    0x000259c0 beq 0x25a80                                               |             goto label_14;
                                                                         |         }
    0x000259c2 ldr r3, [r5]                                              |         r3 = *(r5);
    0x000259c4 cmp r3, r8                                                |         
    0x000259c6 bne 0x259b2                                               |         
                                                                         |     } while (r3 != r8);
    0x000259c8 ldr.w r3, [fp]                                            |     r3 = *(fp);
    0x000259cc cmp r3, sl                                                |     
                                                                         |     if (r3 != sl) {
    0x000259ce bne 0x259b2                                               |         goto label_2;
                                                                         |     }
    0x000259d0 ldrh.w r2, [sp, 0x80c]                                    |     r2 = var_80ch;
    0x000259d4 movw r3, 0x4d41                                           |     r3 = 0x4d41;
    0x000259d8 cmp r2, r3                                                |     
                                                                         |     if (r2 != r3) {
    0x000259da bne 0x259b2                                               |         goto label_2;
                                                                         |     }
    0x000259dc ldrb.w r3, [sp, 0x80e]                                    |     r3 = var_80eh;
    0x000259e0 cmp r3, 0x45                                              |     
                                                                         |     if (r3 != 0x45) {
    0x000259e2 bne 0x259b2                                               |         goto label_2;
                                                                         |     }
    0x000259e4 ldr r1, [pc, 0x134]                                       |     
    0x000259e6 add r6, sp, 4                                             |     r6 += var_4h_2;
    0x000259e8 mov r2, r6                                                |     r2 = r6;
    0x000259ea mov r0, r5                                                |     r0 = r5;
    0x000259ec add r1, pc                                                |     r1 = 0x4b50c;
    0x000259ee blx 0xdc68                                                |     r0 = fcn_0000dc68 ();
    0x000259f2 cmp r0, 1                                                 |     
                                                                         |     if (r0 == 1) {
    0x000259f4 beq 0x25a0a                                               |         goto label_15;
                                                                         |     }
    0x000259f6 add.w r3, sp, 0x1000                                      |     r3 += var_1000h;
    0x000259fa mov r2, r6                                                |     r2 = r6;
    0x000259fc adds r3, 4                                                |     r3 += 4;
    0x000259fe mov r1, sb                                                |     r1 = sb;
    0x00025a00 mov r0, r5                                                |     r0 = r5;
    0x00025a02 blx 0xdc68                                                |     r0 = fcn_0000dc68 ();
    0x00025a06 cmp r0, 1                                                 |     
                                                                         |     if (r0 != 1) {
    0x00025a08 bne 0x259b2                                               |         goto label_2;
                                                                         |     }
                                                                         | label_15:
    0x00025a0a mov r0, r7                                                |     r0 = r7;
    0x00025a0c movs r5, 0                                                |     r5 = 0;
    0x00025a0e blx 0xdc8c                                                |     fcn_0000dc8c ();
    0x00025a10 ldmdb lr!, {r1, r2, r5, r6, r8, sb, sl, sp, lr, pc}       |     __asm ("ldmdb lr!, {r1, r2, r5, r6, r8, sb, sl, sp, lr, pc}");
                                                                         | label_9:
    0x00025a14 ldr r1, [r4, 0x28]                                        |     r1 = *((r4 + 0x28));
    0x00025a16 mov r2, r0                                                |     r2 = r0;
    0x00025a18 ldr r3, [pc, 0x104]                                       |     
    0x00025a1a movs r6, 1                                                |     r6 = 1;
    0x00025a1c ldr r0, [pc, 0x104]                                       |     
    0x00025a1e orr r1, r1, 0x20                                          |     r1 |= 0x20;
    0x00025a22 str r1, [r4, 0x28]                                        |     *((r4 + 0x28)) = r1;
    0x00025a24 add r3, pc                                                |     r3 = 0x4b548;
    0x00025a26 add r0, pc                                                |     r0 = 0x4b54e;
    0x00025a28 movs r1, 0x7f                                             |     r1 = 0x7f;
    0x00025a2a bl 0x40ed8                                                |     zbx_strdup2 ();
    0x00025a2e str r0, [r4, 0x20]                                        |     *((r4 + 0x20)) = r0;
    0x00025a30 b 0x25932                                                 |     goto label_3;
                                                                         | label_11:
    0x00025a32 ldr r1, [pc, 0xf4]                                        |     
    0x00025a34 ldr r0, [pc, 0xf4]                                        |     
    0x00025a36 add r1, pc                                                |     r1 = 0x4b564;
    0x00025a38 add r0, pc                                                |     r0 = 0x4b568;
    0x00025a3a blx 0xdf90                                                |     r0 = fcn_0000df90 ();
    0x00025a3e mov r5, r0                                                |     r5 = r0;
    0x00025a40 cmp r0, 0                                                 |     
                                                                         |     if (r0 != 0) {
    0x00025a42 bne.w 0x258ce                                             |         goto label_4;
                                                                         |     }
    0x00025a46 ldr r3, [r4, 0x28]                                        |     r3 = *((r4 + 0x28));
    0x00025a48 orr r3, r3, 0x20                                          |     r3 |= 0x20;
    0x00025a4c str r3, [r4, 0x28]                                        |     *((r4 + 0x28)) = r3;
    0x00025a4e blx 0xe3d4                                                |     r0 = fcn_0000e3d4 ();
    0x00025a52 ldr r0, [r0]                                              |     r0 = *(r0);
    0x00025a54 bl 0x30b74                                                |     zbx_strerror ();
    0x00025a58 ldr r1, [pc, 0xd4]                                        |     
    0x00025a5a mov r2, r0                                                |     r2 = r0;
    0x00025a5c mov r0, r5                                                |     r0 = r5;
    0x00025a5e add r1, pc                                                |     r1 = 0x4b592;
    0x00025a60 bl 0x44820                                                |     zbx_dsprintf ()
    0x00025a64 b 0x25952                                                 |     goto label_5;
                                                                         | label_12:
    0x00025a66 ldr r0, [r4, 0x28]                                        |     r0 = *((r4 + 0x28));
    0x00025a68 movs r2, 0                                                |     r2 = 0;
    0x00025a6a ldr r3, [pc, 0xc8]                                        |     
    0x00025a6c movs r1, 0x74                                             |     r1 = 0x74;
    0x00025a6e orr r0, r0, 0x20                                          |     r0 |= 0x20;
    0x00025a72 str r0, [r4, 0x28]                                        |     *((r4 + 0x28)) = r0;
    0x00025a74 add r3, pc                                                |     r3 = 0x4b5ae;
    0x00025a76 ldr r0, [pc, 0xc0]                                        |     
    0x00025a78 add r0, pc                                                |     r0 = 0x4b5b6;
    0x00025a7a bl 0x40ed8                                                |     zbx_strdup2 ();
    0x00025a7e b 0x25952                                                 |     goto label_5;
                                                                         | label_14:
    0x00025a80 mov r0, r7                                                |     r0 = r7;
    0x00025a82 blx 0xdc8c                                                |     fcn_0000dc8c ();
                                                                         | label_13:
    0x00025a86 ldr r1, [pc, 0xb4]                                        |     
    0x00025a88 ldr r0, [pc, 0xb4]                                        |     
    0x00025a8a add r1, pc                                                |     r1 = 0x4b5cc;
    0x00025a8c add r0, pc                                                |     r0 = 0x4b5d0;
    0x00025a8e blx 0xdf90                                                |     r0 = fcn_0000df90 ();
    0x00025a92 mov r5, r0                                                |     r5 = r0;
    0x00025a94 cmp r0, 0                                                 |     
                                                                         |     if (r0 != 0) {
    0x00025a96 bne.w 0x258ce                                             |         goto label_4;
                                                                         |     }
    0x00025a9a ldr r3, [r4, 0x28]                                        |     r3 = *((r4 + 0x28));
    0x00025a9c orr r3, r3, 0x20                                          |     r3 |= 0x20;
    0x00025aa0 str r3, [r4, 0x28]                                        |     *((r4 + 0x28)) = r3;
    0x00025aa2 blx 0xe3d4                                                |     r0 = fcn_0000e3d4 ();
    0x00025aa6 ldr r0, [r0]                                              |     r0 = *(r0);
    0x00025aa8 bl 0x30b74                                                |     zbx_strerror ();
    0x00025aac ldr r1, [pc, 0x94]                                        |     
    0x00025aae mov r2, r0                                                |     r2 = r0;
    0x00025ab0 mov r0, r5                                                |     r0 = r5;
    0x00025ab2 add r1, pc                                                |     r1 = 0x4b5fa;
    0x00025ab4 bl 0x44820                                                |     zbx_dsprintf ()
    0x00025ab8 b 0x25952                                                 |     goto label_5;
                                                                         | label_10:
    0x00025aba blx 0xe158                                                |     fcn_0000e158 ();
                                                                         | label_8:
    0x00025abe ldr r3, [r4, 0x28]                                        |     r3 = *((r4 + 0x28));
    0x00025ac0 orr r3, r3, 0x20                                          |     r3 |= 0x20;
    0x00025ac4 str r3, [r4, 0x28]                                        |     *((r4 + 0x28)) = r3;
    0x00025ac6 blx 0xe3d4                                                |     r0 = fcn_0000e3d4 ();
    0x00025aca ldr r0, [r0]                                              |     r0 = *(r0);
    0x00025acc bl 0x30b74                                                |     zbx_strerror ();
    0x00025ad0 ldr r1, [pc, 0x74]                                        |     
    0x00025ad2 mov r2, r0                                                |     r2 = r0;
    0x00025ad4 mov r0, r5                                                |     r0 = r5;
    0x00025ad6 add r1, pc                                                |     r1 = 0x4b622;
    0x00025ad8 bl 0x44820                                                |     zbx_dsprintf ()
    0x00025adc b 0x25952                                                 |     goto label_5;
                                                                         | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x25f54 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.SYSTEM_UNAME ()                  | void SYSTEM_UNAME (int16_t arg2) {
                                                 |     int16_t var_0h_2;
                                                 |     int16_t var_4h_3;
                                                 |     int16_t var_8h_2;
                                                 |     int16_t var_14h;
                                                 |     int32_t var_0h;
                                                 |     int16_t var_55h;
                                                 |     int16_t var_96h;
                                                 |     int16_t var_d7h;
                                                 |     int16_t var_118h;
                                                 |     int16_t var_19ch;
                                                 |     r1 = arg2;
    0x00025f54 ldr r2, [pc, 0x8c]                |     
    0x00025f56 ldr r3, [pc, 0x90]                |     r3 = *(0x25fea);
    0x00025f58 push {r4, r5, lr}                 |     
    0x00025f5a sub sp, 0x1a4                     |     
    0x00025f5c add r2, pc                        |     r2 = 0x4bf44;
    0x00025f5e add r5, sp, 0x14                  |     r5 += var_14h;
    0x00025f60 mov r0, r5                        |     r0 = r5;
    0x00025f62 mov r4, r1                        |     r4 = r1;
    0x00025f64 ldr r3, [r2, r3]                  |     
    0x00025f66 ldr r3, [r3]                      |     r3 = *(0x4bf44);
    0x00025f68 str r3, [sp, 0x19c]               |     var_19ch = r3;
    0x00025f6a mov.w r3, 0                       |     r3 = 0;
    0x00025f6e blx 0xdd84                        |     dn_expand ();
    0x00025f72 adds r0, 1                        |     r0++;
                                                 |     if (r0 == 1) {
    0x00025f74 beq 0x25fbc                       |         goto label_0;
                                                 |     }
    0x00025f76 ldr r0, [r4, 0x28]                |     r0 = *((r4 + 0x28));
    0x00025f78 add r3, sp, 0x118                 |     r3 += var_118h;
    0x00025f7a ldr r1, [pc, 0x70]                |     
    0x00025f7c mov r2, r5                        |     r2 = r5;
    0x00025f7e str r3, [sp, 8]                   |     var_8h_2 = r3;
    0x00025f80 add.w r3, sp, 0xd7                |     r3 += var_d7h;
    0x00025f84 orr r0, r0, 4                     |     r0 |= 4;
    0x00025f88 str r3, [sp, 4]                   |     var_4h_3 = r3;
    0x00025f8a str r0, [r4, 0x28]                |     *((r4 + 0x28)) = r0;
    0x00025f8c add.w r0, sp, 0x96                |     r0 += var_96h;
    0x00025f90 add.w r3, sp, 0x55                |     r3 += var_55h;
    0x00025f94 str r0, [sp]                      |     *(sp) = r0;
    0x00025f96 add r1, pc                        |     r1 = 0x4bf88;
    0x00025f98 movs r0, 0                        |     r0 = 0;
    0x00025f9a bl 0x44820                        |     zbx_dsprintf ()
    0x00025f9e movs r3, 0                        |     r3 = 0;
    0x00025fa0 str r0, [r4, 0x18]                |     *((r4 + 0x18)) = r0;
                                                 |     do {
    0x00025fa2 ldr r1, [pc, 0x4c]                |         
    0x00025fa4 ldr r2, [pc, 0x40]                |         r2 = *(0x25fe8);
    0x00025fa6 add r1, pc                        |         r1 = 0x4bf9c;
    0x00025fa8 ldr r2, [r1, r2]                  |         r2 = *(0x4bf9c);
    0x00025faa ldr r1, [r2]                      |         r1 = *(0x4bf9c);
    0x00025fac ldr r2, [sp, 0x19c]               |         r2 = var_19ch;
    0x00025fae eors r1, r2                       |         r1 ^= r2;
    0x00025fb0 mov.w r2, 0                       |         r2 = 0;
                                                 |         if (r1 != r2) {
    0x00025fb4 bne 0x25fe0                       |             goto label_1;
                                                 |         }
    0x00025fb6 mov r0, r3                        |         r0 = r3;
    0x00025fb8 add sp, 0x1a4                     |         
    0x00025fba pop {r4, r5, pc}                  |         
                                                 | label_0:
    0x00025fbc ldr r3, [r4, 0x28]                |         r3 = *((r4 + 0x28));
    0x00025fbe orr r3, r3, 0x20                  |         r3 |= 0x20;
    0x00025fc2 str r3, [r4, 0x28]                |         *((r4 + 0x28)) = r3;
    0x00025fc4 blx 0xe3d4                        |         r0 = fcn_0000e3d4 ();
    0x00025fc8 ldr r0, [r0]                      |         r0 = *(r0);
    0x00025fca bl 0x30b74                        |         zbx_strerror ();
    0x00025fce ldr r1, [pc, 0x24]                |         
    0x00025fd0 mov r2, r0                        |         r2 = r0;
    0x00025fd2 movs r0, 0                        |         r0 = 0;
    0x00025fd4 add r1, pc                        |         r1 = 0x4bfce;
    0x00025fd6 bl 0x44820                        |         zbx_dsprintf ()
    0x00025fda movs r3, 1                        |         r3 = 1;
    0x00025fdc str r0, [r4, 0x20]                |         *((r4 + 0x20)) = r0;
    0x00025fde b 0x25fa2                         |         
                                                 |     } while (1);
                                                 | label_1:
    0x00025fe0 blx 0xe158                        |     fcn_0000e158 ();
    0x00025fe4 ldrb r4, [r7, r1]                 |     r4 = *((r7 + r1));
    0x00025fe6 movs r3, r0                       |     r3 = r0;
    0x00025fe8 lsls r4, r2, 0xe                  |     r4 = r2 << 0xe;
    0x00025fea movs r0, r0                       |     
    0x00025fec stm r4!, {r1, r2, r3}             |     *(r4!) = r1;
                                                 |     *((r4! + 4)) = r2;
                                                 |     *((r4! + 8)) = r3;
    0x00025fee movs r2, r0                       |     r2 = r0;
    0x00025ff0 ldrb r2, [r6, r0]                 |     r2 = *((r6 + r0));
    0x00025ff2 movs r3, r0                       |     r3 = r0;
    0x00025ff4 push {r2, r3, r4, r5, r7}         |     
    0x00025ff6 movs r2, r0                       |     r2 = r0;
                                                 | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x26850 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.SYSTEM_UPTIME ()         | void SYSTEM_UPTIME (int16_t arg_388h, int16_t arg_804h, int16_t arg2) {
                                         |     int16_t var_4h;
                                         |     int16_t var_44h;
                                         |     r1 = arg2;
    0x00026850 blmi 0x7390c4             |     __asm ("blmi aav.0x00035380");
    0x00026854 push {r4, lr}             |     
    0x00026856 sub sp, 0x48              |     
    0x00026858 add r2, pc                |     r2 += pc;
    0x0002685a add r0, sp, 4             |     r0 += var_4h;
    0x0002685c mov r4, r1                |     r4 = r1;
    0x0002685e ldr r3, [r2, r3]          |     r3 = *((r2 + r3));
    0x00026860 ldr r3, [r3]              |     r3 = *(r3);
    0x00026862 str r3, [sp, 0x44]        |     var_44h = r3;
    0x00026864 mov.w r3, 0               |     r3 = 0;
    0x00026868 blx 0xe364                |     r0 = fcn_0000e364 ();
                                         |     if (r0 != 0) {
    0x0002686c cbnz r0, 0x26896          |         goto label_0;
                                         |     }
    0x0002686e ldr r3, [sp, 4]           |     r3 = var_4h;
    0x00026870 ldr r2, [r4, 0x28]        |     r2 = *((r4 + 0x28));
    0x00026872 str r3, [r4, 8]           |     *((r4 + 8)) = r3;
    0x00026874 asrs r3, r3, 0x1f         |     r3 >>= 0x1f;
    0x00026876 orr r2, r2, 1             |     r2 |= 1;
    0x0002687a str r2, [r4, 0x28]        |     *((r4 + 0x28)) = r2;
    0x0002687c str r3, [r4, 0xc]         |     *((r4 + 0xc)) = r3;
                                         |     do {
    0x0002687e ldr r2, [pc, 0x48]        |         
    0x00026880 ldr r3, [pc, 0x40]        |         r3 = *(0x268c4);
    0x00026882 add r2, pc                |         r2 = 0x4d150;
    0x00026884 ldr r3, [r2, r3]          |         r3 = *(0x4d150);
    0x00026886 ldr r2, [r3]              |         r2 = *(0x4d150);
    0x00026888 ldr r3, [sp, 0x44]        |         r3 = var_44h;
    0x0002688a eors r2, r3               |         r2 ^= r3;
    0x0002688c mov.w r3, 0               |         r3 = 0;
                                         |         if (r2 != r3) {
    0x00026890 bne 0x268bc               |             goto label_1;
                                         |         }
    0x00026892 add sp, 0x48              |         
    0x00026894 pop {r4, pc}              |         
                                         | label_0:
    0x00026896 ldr r3, [r4, 0x28]        |         r3 = *((r4 + 0x28));
    0x00026898 orr r3, r3, 0x20          |         r3 |= 0x20;
    0x0002689c str r3, [r4, 0x28]        |         *((r4 + 0x28)) = r3;
    0x0002689e blx 0xe3d4                |         r0 = fcn_0000e3d4 ();
    0x000268a2 ldr r0, [r0]              |         r0 = *(r0);
    0x000268a4 bl 0x30b74                |         zbx_strerror ();
    0x000268a8 ldr r1, [pc, 0x20]        |         
    0x000268aa mov r2, r0                |         r2 = r0;
    0x000268ac movs r0, 0                |         r0 = 0;
    0x000268ae add r1, pc                |         r1 = 0x4d17e;
    0x000268b0 bl 0x44820                |         r0 = zbx_dsprintf ()
    0x000268b4 mov r3, r0                |         r3 = r0;
    0x000268b6 movs r0, 1                |         r0 = 1;
    0x000268b8 str r3, [r4, 0x20]        |         *((r4 + 0x20)) = r3;
    0x000268ba b 0x2687e                 |         
                                         |     } while (1);
                                         | label_1:
    0x000268bc blx 0xe158                |     fcn_0000e158 ();
    0x000268c0 strh r0, [r0, r6]         |     *((r0 + r6)) = r0;
    0x000268c2 movs r3, r0               |     r3 = r0;
    0x000268c4 lsls r4, r2, 0xe          |     r4 = r2 << 0xe;
    0x000268c6 movs r0, r0               |     
    0x000268c8 strh r6, [r2, r5]         |     *((r2 + r5)) = r6;
    0x000268ca movs r3, r0               |     r3 = r0;
    0x000268cc add r3, sp, 0x388         |     r3 += arg_388h;
    0x000268ce movs r2, r0               |     r2 = r0;
                                         | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x2d830 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.VFS_FILE_CKSUM ()                                    | void VFS_FILE_CKSUM (int16_t arg_b4h, int16_t arg_11ch, int16_t arg_120h, int16_t arg_4000h_2, int16_t arg_4000h, int16_t arg_4100h, int16_t arg1, int16_t arg2) {
                                                                     |     int16_t var_4h_2;
                                                                     |     int16_t var_8h;
                                                                     |     int16_t var_4h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     | label_5:
    0x0002bd28 blmi 0x1afe6d8                                        |     __asm ("blmi 0x1afe6d8");
    0x0002bd2c push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0002bd30 mov r8, r1                                            |     r8 = r1;
    0x0002bd32 add r2, pc                                            |     r2 += pc;
    0x0002bd34 vpush {d8, d9}                                        |     __asm ("vpush {d8, d9}");
    0x0002bd38 sub.w sp, sp, 0x4000                                  |     
    0x0002bd3c mov r4, r0                                            |     r4 = r0;
    0x0002bd3e ldr r3, [r2, r3]                                      |     r3 = *((r2 + r3));
    0x0002bd40 sub sp, 0xc                                           |     
    0x0002bd42 add.w r1, sp, 0x4000                                  |     r1 += arg_4000h;
    0x0002bd46 adds r1, 4                                            |     r1 += 4;
    0x0002bd48 ldr r3, [r3]                                          |     r3 = *(r3);
    0x0002bd4a str r3, [r1]                                          |     *(r1) = r3;
    0x0002bd4c mov.w r3, 0                                           |     r3 = 0;
    0x0002bd50 bl 0x3ffc0                                            |     zbx_time ();
    0x0002bd54 movs r1, 0                                            |     r1 = 0;
    0x0002bd56 mov r0, r4                                            |     r0 = r4;
    0x0002bd58 vmov.f64 d9, d0                                       |     __asm ("vmov.f64 d9, d0");
    0x0002bd5c blx 0xe030                                            |     fcntl64 ();
    0x0002bd60 ldr r3, [pc, 0x178]                                   |     
    0x0002bd62 adds r2, r0, 1                                        |     r2 = r0 + 1;
    0x0002bd64 add r3, pc                                            |     r3 = 0x57c44;
                                                                     |     if (r2 == r0) {
    0x0002bd66 beq 0x2be66                                           |         goto label_6;
                                                                     |     }
    0x0002bd68 ldr r2, [pc, 0x174]                                   |     r2 = *(0x2bee0);
    0x0002bd6a mov r7, r0                                            |     r7 = r0;
    0x0002bd6c ldr.w sb, [r3, r2]                                    |     sb = *((r3 + r2));
    0x0002bd70 vldr s15, [sb]                                        |     __asm ("vldr s15, [sb]");
    0x0002bd74 vcvt.f64.s32 d8, s15                                  |     __asm ("vcvt.f64.s32 d8, s15");
    0x0002bd78 bl 0x3ffc0                                            |     zbx_time ();
    0x0002bd7c vsub.f64 d0, d0, d9                                   |     __asm ("vsub.f64 d0, d0, d9");
    0x0002bd80 vcmpe.f64 d8, d0                                      |     __asm ("vcmpe.f64 d8, d0");
    0x0002bd84 vmrs apsr_nzcv, fpscr                                 |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                     |     if (r2 < r0) {
    0x0002bd88 bmi.w 0x2be92                                         |         goto label_7;
                                                                     |     }
    0x0002bd8c ldr.w sl, [pc, 0x154]                                 |     sl = *(0x0002bee4);
    0x0002bd90 movs r5, 0                                            |     r5 = 0;
    0x0002bd92 mov r4, r5                                            |     r4 = r5;
    0x0002bd94 add r6, sp, 4                                         |     r6 += var_4h;
    0x0002bd96 add sl, pc                                            |     sl += pc;
                                                                     | label_0:
    0x0002bd98 mov.w r2, 0x4000                                      |     r2 = 0x4000;
    0x0002bd9c mov r1, r6                                            |     r1 = r6;
    0x0002bd9e mov r0, r7                                            |     r0 = r7;
    0x0002bda0 blx 0xde54                                            |     r0 = fcn_0000de54 ();
    0x0002bda4 subs.w fp, r0, 0                                      |     
                                                                     |     if (fp <= r0) {
    0x0002bda8 ble 0x2bde0                                           |         goto label_8;
                                                                     |     }
    0x0002bdaa vldr s15, [sb]                                        |     __asm ("vldr s15, [sb]");
    0x0002bdae vcvt.f64.s32 d8, s15                                  |     __asm ("vcvt.f64.s32 d8, s15");
    0x0002bdb2 bl 0x3ffc0                                            |     zbx_time ();
    0x0002bdb6 vsub.f64 d0, d0, d9                                   |     __asm ("vsub.f64 d0, d0, d9");
    0x0002bdba vcmpe.f64 d8, d0                                      |     __asm ("vcmpe.f64 d8, d0");
    0x0002bdbe vmrs apsr_nzcv, fpscr                                 |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                     |     if (fp < r0) {
    0x0002bdc2 bmi 0x2be3e                                           |         goto label_9;
                                                                     |     }
    0x0002bdc4 add r5, fp                                            |     r5 += fp;
    0x0002bdc6 mov r2, r6                                            |     r2 = r6;
    0x0002bdc8 add fp, r6                                            |     
                                                                     |     do {
    0x0002bdca ldrb r3, [r2], 1                                      |         r3 = *(r2);
                                                                     |         r2++;
    0x0002bdce cmp fp, r2                                            |         
    0x0002bdd0 eor.w r3, r3, r4, lsr 24                              |         r3 ^= (r4 >> 24);
    0x0002bdd4 ldr.w r3, [sl, r3, lsl 2]                             |         offset_0 = r3 << 2;
                                                                     |         r3 = *((sl + offset_0));
    0x0002bdd8 eor.w r4, r3, r4, lsl 8                               |         r4 = r3 ^ (r4 << 8);
    0x0002bddc bne 0x2bdca                                           |         
                                                                     |     } while (fp != r2);
    0x0002bdde b 0x2bd98                                             |     goto label_0;
                                                                     | label_8:
    0x0002bde0 ldr.w r1, [r8, 0x28]                                  |     r1 = *((r8 + 0x28));
                                                                     |     if (fp != r2) {
    0x0002bde4 bne 0x2beb2                                           |         goto label_10;
                                                                     |     }
                                                                     |     if (r5 == 0) {
    0x0002bde6 cbz r5, 0x2bdfe                                       |         goto label_11;
                                                                     |     }
    0x0002bde8 ldr r2, [pc, 0xfc]                                    |     
    0x0002bdea add r2, pc                                            |     r2 = 0x57cd6;
                                                                     |     do {
    0x0002bdec eor.w r3, r5, r4, lsr 24                              |         r3 = r5 ^ (r4 >> 24);
    0x0002bdf0 lsrs r5, r5, 8                                        |         r5 >>= 8;
    0x0002bdf2 uxtb r3, r3                                           |         r3 = (int8_t) r3;
    0x0002bdf4 ldr.w r3, [r2, r3, lsl 2]                             |         offset_1 = r3 << 2;
                                                                     |         r3 = *((r2 + offset_1));
    0x0002bdf8 eor.w r4, r3, r4, lsl 8                               |         r4 = r3 ^ (r4 << 8);
    0x0002bdfc bne 0x2bdec                                           |         
                                                                     |     } while (r5 != r5);
                                                                     | label_11:
    0x0002bdfe orr r1, r1, 1                                         |     r1 |= 1;
    0x0002be02 mvns r4, r4                                           |     r4 = ~r4;
    0x0002be04 movs r3, 0                                            |     r3 = 0;
    0x0002be06 str.w r1, [r8, 0x28]                                  |     __asm ("str.w r1, [r8, 0x28]");
    0x0002be0a strd r4, r3, [r8, 8]                                  |     __asm ("strd r4, r3, [r8, 8]");
                                                                     |     do {
    0x0002be0e mov r0, r7                                            |         r0 = r7;
    0x0002be10 blx 0xe0ac                                            |         fcn_0000e0ac ();
                                                                     | label_1:
    0x0002be14 ldr r2, [pc, 0xd4]                                    |         
    0x0002be16 add.w r1, sp, 0x4000                                  |         r1 += arg_4000h;
    0x0002be1a ldr r3, [pc, 0xbc]                                    |         r3 = *(0x2beda);
    0x0002be1c adds r1, 4                                            |         r1 += 4;
    0x0002be1e add r2, pc                                            |         r2 = 0x57d0e;
    0x0002be20 ldr r3, [r2, r3]                                      |         r3 = *(0x57d0e);
    0x0002be22 ldr r2, [r3]                                          |         r2 = *(0x57d0e);
    0x0002be24 ldr r3, [r1]                                          |         r3 = *(r1);
    0x0002be26 eors r2, r3                                           |         r2 ^= r3;
    0x0002be28 mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x0002be2c bne 0x2bece                                           |             goto label_12;
                                                                     |         }
    0x0002be2e mov r0, fp                                            |         r0 = fp;
    0x0002be30 add.w sp, sp, 0x4000                                  |         
    0x0002be34 add sp, 0xc                                           |         
    0x0002be36 vpop {d8, d9}                                         |         __asm ("vpop {d8, d9}");
    0x0002be3a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_9:
    0x0002be3e ldr.w r1, [r8, 0x28]                                  |         r1 = *((r8 + 0x28));
    0x0002be42 movs r2, 0                                            |         r2 = 0;
    0x0002be44 ldr r3, [pc, 0xa8]                                    |         
    0x0002be46 ldr r0, [pc, 0xac]                                    |         
    0x0002be48 orr r1, r1, 0x20                                      |         r1 |= 0x20;
    0x0002be4c str.w r1, [r8, 0x28]                                  |         __asm ("str.w r1, [r8, 0x28]");
    0x0002be50 add r3, pc                                            |         r3 = 0x57d44;
    0x0002be52 add r0, pc                                            |         r0 = 0x57d4c;
    0x0002be54 movw r1, 0x361                                        |         r1 = 0x361;
    0x0002be58 bl 0x40ed8                                            |         zbx_strdup2 ();
                                                                     | label_2:
    0x0002be5c mov.w fp, 1                                           |         
    0x0002be60 str.w r0, [r8, 0x20]                                  |         __asm ("str.w r0, [r8, 0x20]");
    0x0002be64 b 0x2be0e                                             |         
                                                                     |     } while (1);
                                                                     | label_6:
    0x0002be66 ldr.w r3, [r8, 0x28]                                  |     r3 = *((r8 + 0x28));
    0x0002be6a mov.w fp, 1                                           |     
    0x0002be6e orr r3, r3, 0x20                                      |     r3 |= 0x20;
    0x0002be72 str.w r3, [r8, 0x28]                                  |     __asm ("str.w r3, [r8, 0x28]");
    0x0002be76 blx 0xe3d4                                            |     r0 = fcn_0000e3d4 ();
    0x0002be7a ldr r0, [r0]                                          |     r0 = *(r0);
    0x0002be7c bl 0x30b74                                            |     zbx_strerror ();
    0x0002be80 ldr r1, [pc, 0x74]                                    |     
    0x0002be82 mov r2, r0                                            |     r2 = r0;
    0x0002be84 movs r0, 0                                            |     r0 = 0;
    0x0002be86 add r1, pc                                            |     r1 = 0x57d82;
    0x0002be88 bl 0x44820                                            |     zbx_dsprintf ()
    0x0002be8c str.w r0, [r8, 0x20]                                  |     __asm ("str.w r0, [r8, 0x20]");
    0x0002be90 b 0x2be14                                             |     goto label_1;
                                                                     | label_7:
    0x0002be92 ldr.w r1, [r8, 0x28]                                  |     r1 = *((r8 + 0x28));
    0x0002be96 movs r2, 0                                            |     r2 = 0;
    0x0002be98 ldr r3, [pc, 0x60]                                    |     
    0x0002be9a ldr r0, [pc, 0x64]                                    |     
    0x0002be9c orr r1, r1, 0x20                                      |     r1 |= 0x20;
    0x0002bea0 str.w r1, [r8, 0x28]                                  |     __asm ("str.w r1, [r8, 0x28]");
    0x0002bea4 add r3, pc                                            |     r3 = 0x57da4;
    0x0002bea6 movw r1, 0x357                                        |     r1 = 0x357;
    0x0002beaa add r0, pc                                            |     r0 = 0x57db0;
    0x0002beac bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0002beb0 b 0x2be5c                                             |     goto label_2;
                                                                     | label_10:
    0x0002beb2 ldr r3, [pc, 0x50]                                    |     
    0x0002beb4 orr r1, r1, 0x20                                      |     r1 |= 0x20;
    0x0002beb8 ldr r0, [pc, 0x4c]                                    |     
    0x0002beba movs r2, 0                                            |     r2 = 0;
    0x0002bebc str.w r1, [r8, 0x28]                                  |     __asm ("str.w r1, [r8, 0x28]");
    0x0002bec0 movw r1, 0x36d                                        |     r1 = 0x36d;
    0x0002bec4 add r3, pc                                            |     r3 = 0x57dce;
    0x0002bec6 add r0, pc                                            |     r0 = 0x57dd2;
    0x0002bec8 bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0002becc b 0x2be5c                                             |     goto label_2;
                                                                     | label_12:
    0x0002bece blx 0xe158                                            |     fcn_0000e158 ();
    0x0002bed2 nop                                                   |     
    0x0002bed4 cdp2 p0, 0xa, c0, c6, c2, 0                           |     __asm ("cdp2 p0, 0xa, c0, c6, c2, 0");
    0x0002bed8 lsls r4, r2, 0xe                                      |     r4 = r2 << 0xe;
    0x0002beda movs r0, r0                                           |     
    0x0002bedc cdp2 p0, 7, c0, c4, c2, 0                             |     __asm ("cdp2 p0, 7, c0, c4, c2, 0");
    0x0002bee0 lsls r4, r4, 0xc                                      |     r4 <<= 0xc;
    0x0002bee2 movs r0, r0                                           |     
    0x0002bee4 ldrb r6, [r5, 2]                                      |     r6 = *((r5 + 2));
    0x0002bee6 movs r2, r0                                           |     r2 = r0;
    0x0002bee8 ldrb r2, [r3, 1]                                      |     r2 = *((r3 + 1));
    0x0002beea movs r2, r0                                           |     r2 = r0;
    0x0002beec ldc2 p0, c0, [sl, 8]!                                 |     __asm ("ldc2 p0, c0, [sl, 8]!");
    0x0002bef0 strb r0, [r2, 0x19]                                   |     *((r2 + 0x19)) = r0;
    0x0002bef2 movs r2, r0                                           |     r2 = r0;
    0x0002bef4 strb r6, [r5, 0x19]                                   |     *((r5 + 0x19)) = r6;
    0x0002bef6 movs r2, r0                                           |     r2 = r0;
    0x0002bef8 strb r2, [r0, 0x18]                                   |     *((r0 + 0x18)) = r2;
    0x0002befa movs r2, r0                                           |     r2 = r0;
    0x0002befc strb r4, [r7, 0x17]                                   |     *((r7 + 0x17)) = r4;
    0x0002befe movs r2, r0                                           |     r2 = r0;
    0x0002bf00 strb r6, [r2, 0x18]                                   |     *((r2 + 0x18)) = r6;
    0x0002bf02 movs r2, r0                                           |     r2 = r0;
    0x0002bf04 str r0, [r0, 0x3c]                                    |     *((r0 + 0x3c)) = r0;
    0x0002bf06 movs r2, r0                                           |     r2 = r0;
    0x0002bf08 strb r2, [r7, 0x17]                                   |     *((r7 + 0x17)) = r2;
    0x0002bf0a movs r2, r0                                           |     r2 = r0;
                                                                     | label_4:
    0x0002c108 ldr r2, [pc, 0x1bc]                                   |     
    0x0002c10a ldr r3, [pc, 0x1c0]                                   |     r3 = *(0x2c2ce);
    0x0002c10c push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0002c110 mov r4, r0                                            |     r4 = r0;
    0x0002c112 vpush {d8, d9}                                        |     __asm ("vpush {d8, d9}");
    0x0002c116 sub.w sp, sp, 0x4100                                  |     
    0x0002c11a add r2, pc                                            |     r2 = 0x583e6;
    0x0002c11c sub sp, 0x24                                          |     
    0x0002c11e str r1, [sp, 4]                                       |     var_4h_2 = r1;
    0x0002c120 add.w r1, sp, 0x4100                                  |     r1 += arg_4100h;
    0x0002c124 ldr r3, [r2, r3]                                      |     
    0x0002c126 adds r1, 0x1c                                         |     r1 += 0x1c;
    0x0002c128 ldr r3, [r3]                                          |     r3 = *(0x583e6);
    0x0002c12a str r3, [r1]                                          |     *(r1) = r3;
    0x0002c12c mov.w r3, 0                                           |     r3 = 0;
    0x0002c130 bl 0x3ffc0                                            |     zbx_time ();
    0x0002c134 movs r1, 0                                            |     r1 = 0;
    0x0002c136 mov r0, r4                                            |     r0 = r4;
    0x0002c138 vmov.f64 d9, d0                                       |     __asm ("vmov.f64 d9, d0");
    0x0002c13c blx 0xe030                                            |     fcntl64 ();
    0x0002c140 ldr r3, [pc, 0x18c]                                   |     
    0x0002c142 adds r2, r0, 1                                        |     r2 = r0 + 1;
    0x0002c144 add r3, pc                                            |     r3 = 0x58418;
                                                                     |     if (r2 == r0) {
    0x0002c146 beq.w 0x2c280                                         |         goto label_13;
                                                                     |     }
    0x0002c14a ldr r2, [pc, 0x188]                                   |     r2 = *(0x2c2d6);
    0x0002c14c mov r7, r0                                            |     r7 = r0;
    0x0002c14e ldr r6, [r3, r2]                                      |     r6 = *((r3 + r2));
    0x0002c150 vldr s15, [r6]                                        |     __asm ("vldr s15, [r6]");
    0x0002c154 vcvt.f64.s32 d8, s15                                  |     __asm ("vcvt.f64.s32 d8, s15");
    0x0002c158 bl 0x3ffc0                                            |     zbx_time ();
    0x0002c15c vsub.f64 d0, d0, d9                                   |     __asm ("vsub.f64 d0, d0, d9");
    0x0002c160 vcmpe.f64 d8, d0                                      |     __asm ("vcmpe.f64 d8, d0");
    0x0002c164 vmrs apsr_nzcv, fpscr                                 |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                     |     if (r2 < r0) {
    0x0002c168 bmi 0x2c210                                           |         goto label_14;
                                                                     |     }
    0x0002c16a add.w sb, sp, 8                                       |     sb += var_8h;
    0x0002c16e add.w r8, sp, 0x120                                   |     r8 += arg_120h;
    0x0002c172 mov r0, sb                                            |     r0 = sb;
    0x0002c174 add r5, sp, 0x11c                                     |     r5 += arg_11ch;
    0x0002c176 bl 0x498ac                                            |     zbx_sha256_init ();
    0x0002c17a b 0x2c1a0                                             |     
                                                                     |     while (r4 > r0) {
    0x0002c17c vldr s15, [r6]                                        |         __asm ("vldr s15, [r6]");
    0x0002c180 vcvt.f64.s32 d8, s15                                  |         __asm ("vcvt.f64.s32 d8, s15");
    0x0002c184 bl 0x3ffc0                                            |         zbx_time ();
    0x0002c188 vsub.f64 d0, d0, d9                                   |         __asm ("vsub.f64 d0, d0, d9");
    0x0002c18c vcmpe.f64 d8, d0                                      |         __asm ("vcmpe.f64 d8, d0");
    0x0002c190 vmrs apsr_nzcv, fpscr                                 |         __asm ("vmrs apsr_nzcv, fpscr");
                                                                     |         if (r2 < r0) {
    0x0002c194 bmi 0x2c262                                           |             goto label_15;
                                                                     |         }
    0x0002c196 mov r2, sb                                            |         r2 = sb;
    0x0002c198 mov r1, r4                                            |         r1 = r4;
    0x0002c19a mov r0, r5                                            |         r0 = r5;
    0x0002c19c bl 0x498fc                                            |         zbx_sha256_process_bytes ();
    0x0002c1a0 mov.w r2, 0x4000                                      |         r2 = 0x4000;
    0x0002c1a4 mov r1, r5                                            |         r1 = r5;
    0x0002c1a6 mov r0, r7                                            |         r0 = r7;
    0x0002c1a8 blx 0xde54                                            |         r0 = fcn_0000de54 ();
    0x0002c1ac subs r4, r0, 0                                        |         r4 = r0 - 0;
    0x0002c1ae bgt 0x2c17c                                           |         
                                                                     |     }
                                                                     |     if (r4 != r0) {
    0x0002c1b0 bne 0x2c2a6                                           |         goto label_16;
                                                                     |     }
    0x0002c1b2 ldr.w fp, [pc, 0x124]                                 |     
    0x0002c1b6 mov r0, sb                                            |     r0 = sb;
    0x0002c1b8 sub.w r1, r8, 0x68                                    |     r1 = r8 - 0x68;
    0x0002c1bc sub.w r5, r8, 0x69                                    |     r5 = r8 - 0x69;
    0x0002c1c0 sub.w r6, r8, 0x4a                                    |     r6 = r8 - 0x4a;
    0x0002c1c4 sub.w sl, r8, 0x49                                    |     sl = r8 - 0x49;
    0x0002c1c8 add fp, pc                                            |     fp = 0x584a6;
    0x0002c1ca add.w sb, sp, 0xb4                                    |     sb += arg_b4h;
    0x0002c1ce bl 0x498f8                                            |     zbx_sha256_finish ();
                                                                     |     do {
    0x0002c1d2 ldrb r3, [r5, 1]!                                     |         r3 = *((r5 += 1));
    0x0002c1d6 mov r2, fp                                            |         r2 = fp;
    0x0002c1d8 movs r1, 3                                            |         r1 = 3;
    0x0002c1da mov r0, sb                                            |         r0 = sb;
    0x0002c1dc bl 0x43f38                                            |         zbx_snprintf ();
    0x0002c1e0 ldrh r3, [r8, -0x6c]                                  |         r3 = *((r8 - 0x6c));
    0x0002c1e4 cmp r5, sl                                            |         
    0x0002c1e6 strh r3, [r6, 2]!                                     |         *((r6 += 2)) = r3;
    0x0002c1ea bne 0x2c1d2                                           |         
                                                                     |     } while (r5 != sl);
    0x0002c1ec ldr r5, [sp, 4]                                       |     r5 = var_4h_2;
    0x0002c1ee movs r2, 0                                            |     r2 = 0;
    0x0002c1f0 ldr r0, [pc, 0xe8]                                    |     
    0x0002c1f2 sub.w r3, r8, 0x48                                    |     r3 = r8 - 0x48;
    0x0002c1f6 strb r2, [r8, -0x8]                                   |     *((r8 - 0x8)) = r2;
    0x0002c1fa ldr r1, [r5, 0x28]                                    |     r1 = *((r5 + 0x28));
    0x0002c1fc add r0, pc                                            |     r0 = 0x584dc;
    0x0002c1fe orr r1, r1, 4                                         |     r1 |= 4;
    0x0002c202 str r1, [r5, 0x28]                                    |     *((r5 + 0x28)) = r1;
    0x0002c204 mov.w r1, 0x3b8                                       |     r1 = 0x3b8;
    0x0002c208 bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0002c20c str r0, [r5, 0x18]                                    |     *((r5 + 0x18)) = r0;
    0x0002c20e b 0x2c232                                             |     goto label_17;
                                                                     | label_14:
    0x0002c210 ldr r0, [sp, 4]                                       |     r0 = var_4h_2;
    0x0002c212 movs r2, 0                                            |     r2 = 0;
    0x0002c214 ldr r3, [pc, 0xc8]                                    |     
    0x0002c216 ldr r1, [r0, 0x28]                                    |     r1 = *((r0 + 0x28));
    0x0002c218 add r3, pc                                            |     r3 = 0x584fc;
    0x0002c21a orr r1, r1, 0x20                                      |     r1 |= 0x20;
    0x0002c21e str r1, [r0, 0x28]                                    |     *((r0 + 0x28)) = r1;
    0x0002c220 mov.w r1, 0x394                                       |     r1 = 0x394;
    0x0002c224 ldr r0, [pc, 0xbc]                                    |     
    0x0002c226 add r0, pc                                            |     r0 = 0x5850e;
    0x0002c228 bl 0x40ed8                                            |     zbx_strdup2 ();
                                                                     |     do {
    0x0002c22c ldr r3, [sp, 4]                                       |         r3 = var_4h_2;
    0x0002c22e movs r4, 1                                            |         r4 = 1;
    0x0002c230 str r0, [r3, 0x20]                                    |         *((r3 + 0x20)) = r0;
                                                                     | label_17:
    0x0002c232 mov r0, r7                                            |         r0 = r7;
    0x0002c234 blx 0xe0ac                                            |         fcn_0000e0ac ();
                                                                     | label_3:
    0x0002c238 ldr r2, [pc, 0xac]                                    |         
    0x0002c23a add.w r1, sp, 0x4100                                  |         r1 += arg_4100h;
    0x0002c23e ldr r3, [pc, 0x8c]                                    |         r3 = *(0x2c2ce);
    0x0002c240 adds r1, 0x1c                                         |         r1 += 0x1c;
    0x0002c242 add r2, pc                                            |         r2 = 0x5852e;
    0x0002c244 ldr r3, [r2, r3]                                      |         r3 = *(0x5852e);
    0x0002c246 ldr r2, [r3]                                          |         r2 = *(0x5852e);
    0x0002c248 ldr r3, [r1]                                          |         r3 = *(r1);
    0x0002c24a eors r2, r3                                           |         r2 ^= r3;
    0x0002c24c mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x0002c250 bne 0x2c2c4                                           |             goto label_18;
                                                                     |         }
    0x0002c252 mov r0, r4                                            |         r0 = r4;
    0x0002c254 add.w sp, sp, 0x4100                                  |         
    0x0002c258 add sp, 0x24                                          |         
    0x0002c25a vpop {d8, d9}                                         |         __asm ("vpop {d8, d9}");
    0x0002c25e pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_15:
    0x0002c262 ldr r0, [sp, 4]                                       |         r0 = var_4h_2;
    0x0002c264 movs r2, 0                                            |         r2 = 0;
    0x0002c266 ldr r3, [pc, 0x84]                                    |         
    0x0002c268 ldr r1, [r0, 0x28]                                    |         r1 = *((r0 + 0x28));
    0x0002c26a add r3, pc                                            |         r3 = 0x5855c;
    0x0002c26c orr r1, r1, 0x20                                      |         r1 |= 0x20;
    0x0002c270 str r1, [r0, 0x28]                                    |         *((r0 + 0x28)) = r1;
    0x0002c272 movw r1, 0x39e                                        |         r1 = 0x39e;
    0x0002c276 ldr r0, [pc, 0x78]                                    |         
    0x0002c278 add r0, pc                                            |         r0 = 0x5856e;
    0x0002c27a bl 0x40ed8                                            |         zbx_strdup2 ();
    0x0002c27e b 0x2c22c                                             |         
                                                                     |     } while (1);
                                                                     | label_13:
    0x0002c280 ldr r5, [sp, 4]                                       |     r5 = var_4h_2;
    0x0002c282 movs r4, 1                                            |     r4 = 1;
    0x0002c284 ldr r3, [r5, 0x28]                                    |     r3 = *((r5 + 0x28));
    0x0002c286 orr r3, r3, 0x20                                      |     r3 |= 0x20;
    0x0002c28a str r3, [r5, 0x28]                                    |     *((r5 + 0x28)) = r3;
    0x0002c28c blx 0xe3d4                                            |     r0 = fcn_0000e3d4 ();
    0x0002c290 ldr r0, [r0]                                          |     r0 = *(r0);
    0x0002c292 bl 0x30b74                                            |     zbx_strerror ();
    0x0002c296 ldr r1, [pc, 0x5c]                                    |     
    0x0002c298 mov r2, r0                                            |     r2 = r0;
    0x0002c29a movs r0, 0                                            |     r0 = 0;
    0x0002c29c add r1, pc                                            |     r1 = 0x58596;
    0x0002c29e bl 0x44820                                            |     zbx_dsprintf ()
    0x0002c2a2 str r0, [r5, 0x20]                                    |     *((r5 + 0x20)) = r0;
    0x0002c2a4 b 0x2c238                                             |     goto label_3;
                                                                     | label_16:
    0x0002c2a6 ldr r0, [sp, 4]                                       |     r0 = var_4h_2;
    0x0002c2a8 movs r2, 0                                            |     r2 = 0;
    0x0002c2aa ldr r3, [pc, 0x4c]                                    |     
    0x0002c2ac ldr r1, [r0, 0x28]                                    |     r1 = *((r0 + 0x28));
    0x0002c2ae add r3, pc                                            |     r3 = "Timeout while executing a shell script.";
    0x0002c2b0 orr r1, r1, 0x20                                      |     r1 |= 0x20;
    0x0002c2b4 str r1, [r0, 0x28]                                    |     *((r0 + 0x28)) = r1;
    0x0002c2b6 movw r1, 0x3a7                                        |     r1 = 0x3a7;
    0x0002c2ba ldr r0, [pc, 0x40]                                    |     
    0x0002c2bc add r0, pc                                            |     r0 = 0x585be;
    0x0002c2be bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0002c2c0 mcr2 p7, 0, lr, c11, c3, 5                            |     __asm ("mcr2 p7, 0, lr, c11, c3, 5");
                                                                     | label_18:
    0x0002c2c4 blx 0xe158                                            |     fcn_0000e158 ();
    0x0002c2c8 invalid                                               |     
    0x0002d830 ldr r3, [r0, 4]                                       |     r3 = *((r0 + 4));
    0x0002d832 push {r4, r5, r6, lr}                                 |     
    0x0002d834 mov r4, r1                                            |     r4 = r1;
    0x0002d836 cmp r3, 2                                             |     
                                                                     |     if (r3 > 2) {
    0x0002d838 bgt 0x2d8b8                                           |         goto label_19;
                                                                     |     }
    0x0002d83a cmp r3, 0                                             |     
                                                                     |     if (r3 > 0) {
    0x0002d83c ble 0x2d88c                                           |         
    0x0002d83e ldr r2, [r0, 8]                                       |         r2 = *((r0 + 8));
    0x0002d840 cmp r3, 2                                             |         
    0x0002d842 ldr r5, [r2]                                          |         r5 = *(r2);
                                                                     |         if (r3 == 2) {
    0x0002d844 bne 0x2d886                                           |             
    0x0002d846 ldr r6, [r2, 4]                                       |             r6 = *((r2 + 4));
                                                                     |             if (r5 == 0) {
    0x0002d848 cbz r5, 0x2d88c                                       |                 goto label_20;
                                                                     |             }
    0x0002d84a ldrb r3, [r5]                                         |             r3 = *(r5);
                                                                     |             if (r3 == 0) {
    0x0002d84c cbz r3, 0x2d88c                                       |                 goto label_20;
                                                                     |             }
                                                                     |             if (r6 == 0) {
    0x0002d84e cbz r6, 0x2d8ac                                       |                 goto label_21;
                                                                     |             }
    0x0002d850 ldrb r3, [r6]                                         |             r3 = *(r6);
                                                                     |             if (r3 == 0) {
    0x0002d852 cbz r3, 0x2d8ac                                       |                 goto label_21;
                                                                     |             }
    0x0002d854 ldr r1, [pc, 0xa8]                                    |             
    0x0002d856 mov r0, r6                                            |             r0 = r6;
    0x0002d858 add r1, pc                                            |             r1 = 0x5b15c;
    0x0002d85a blx 0xe3b0                                            |             r0 = fcn_0000e3b0 ();
                                                                     |             if (r0 == 0) {
    0x0002d85e cbz r0, 0x2d8ac                                       |                 goto label_21;
                                                                     |             }
    0x0002d860 ldr r1, [pc, 0xa0]                                    |             
    0x0002d862 mov r0, r6                                            |             r0 = r6;
    0x0002d864 add r1, pc                                            |             r1 = 0x5b16c;
    0x0002d866 blx 0xe3b0                                            |             r0 = fcn_0000e3b0 ();
    0x0002d86a cmp r0, 0                                             |             
                                                                     |             if (r0 == 0) {
    0x0002d86c beq 0x2d8f4                                           |                 goto label_22;
                                                                     |             }
    0x0002d86e ldr r1, [pc, 0x98]                                    |             
    0x0002d870 mov r0, r6                                            |             r0 = r6;
    0x0002d872 add r1, pc                                            |             r1 = 0x5b180;
    0x0002d874 blx 0xe3b0                                            |             r0 = fcn_0000e3b0 ();
                                                                     |             if (r0 != 0) {
    0x0002d878 cbnz r0, 0x2d8d8                                      |                 goto label_23;
                                                                     |             }
    0x0002d87a mov r1, r4                                            |             r1 = r4;
    0x0002d87c mov r0, r5                                            |             r0 = r5;
    0x0002d87e pop.w {r4, r5, r6, lr}                                |             
    0x0002d882 b.w 0x2c108                                           |             goto label_4;
                                                                     |         }
                                                                     |         if (r5 == 0) {
    0x0002d886 cbz r5, 0x2d88c                                       |             goto label_20;
                                                                     |         }
    0x0002d888 ldrb r3, [r5]                                         |         r3 = *(r5);
                                                                     |         if (r3 != 0) {
    0x0002d88a cbnz r3, 0x2d8ac                                      |             goto label_21;
                                                                     |         }
                                                                     |     }
                                                                     | label_20:
    0x0002d88c ldr r0, [r4, 0x28]                                    |     r0 = *((r4 + 0x28));
    0x0002d88e movs r2, 0                                            |     r2 = 0;
    0x0002d890 ldr r3, [pc, 0x78]                                    |     
    0x0002d892 movw r1, 0x3d7                                        |     r1 = 0x3d7;
    0x0002d896 orr r0, r0, 0x20                                      |     r0 |= 0x20;
    0x0002d898 movs r0, r4                                           |     r0 = r4;
    0x0002d89a str r0, [r4, 0x28]                                    |     *((r4 + 0x28)) = r0;
    0x0002d89c add r3, pc                                            |     r3 = 0x5b1ac;
    0x0002d89e ldr r0, [pc, 0x70]                                    |     
    0x0002d8a0 add r0, pc                                            |     r0 = 0x5b1b6;
    0x0002d8a2 bl 0x40ed8                                            |     zbx_strdup2 ();
                                                                     |     do {
    0x0002d8a6 str r0, [r4, 0x20]                                    |         *((r4 + 0x20)) = r0;
    0x0002d8a8 movs r0, 1                                            |         r0 = 1;
    0x0002d8aa pop {r4, r5, r6, pc}                                  |         
                                                                     | label_21:
    0x0002d8ac mov r1, r4                                            |         r1 = r4;
    0x0002d8ae mov r0, r5                                            |         r0 = r5;
    0x0002d8b0 pop.w {r4, r5, r6, lr}                                |         
    0x0002d8b4 b.w 0x2bd28                                           |         goto label_5;
                                                                     | label_19:
    0x0002d8b8 ldr r0, [r1, 0x28]                                    |         r0 = *((r1 + 0x28));
    0x0002d8ba movs r2, 0                                            |         r2 = 0;
    0x0002d8bc ldr r3, [pc, 0x54]                                    |         
    0x0002d8be movw r1, 0x3ce                                        |         r1 = 0x3ce;
    0x0002d8c2 orr r0, r0, 0x20                                      |         r0 |= 0x20;
    0x0002d8c6 str r0, [r4, 0x28]                                    |         *((r4 + 0x28)) = r0;
    0x0002d8c8 add r3, pc                                            |         r3 = 0x5b1e0;
    0x0002d8ca ldr r0, [pc, 0x4c]                                    |         
    0x0002d8cc add r0, pc                                            |         r0 = 0x5b1ea;
    0x0002d8ce bl 0x40ed8                                            |         zbx_strdup2 ();
    0x0002d8d2 str r0, [r4, 0x20]                                    |         *((r4 + 0x20)) = r0;
    0x0002d8d4 movs r0, 1                                            |         r0 = 1;
    0x0002d8d6 pop {r4, r5, r6, pc}                                  |         
                                                                     | label_23:
    0x0002d8d8 ldr r0, [r4, 0x28]                                    |         r0 = *((r4 + 0x28));
    0x0002d8da movs r2, 0                                            |         r2 = 0;
    0x0002d8dc ldr r3, [pc, 0x3c]                                    |         
    0x0002d8de movw r1, 0x3e2                                        |         r1 = 0x3e2;
    0x0002d8e2 orr r0, r0, 0x20                                      |         r0 |= 0x20;
    0x0002d8e6 str r0, [r4, 0x28]                                    |         *((r4 + 0x28)) = r0;
    0x0002d8e8 add r3, pc                                            |         r3 = 0x5b208;
    0x0002d8ea ldr r0, [pc, 0x34]                                    |         
    0x0002d8ec add r0, pc                                            |         r0 = 0x5b212;
    0x0002d8ee bl 0x40ed8                                            |         zbx_strdup2 ();
    0x0002d8f2 b 0x2d8a6                                             |         
                                                                     |     } while (1);
                                                                     | label_22:
    0x0002d8f4 mov r1, r4                                            |     r1 = r4;
    0x0002d8f6 mov r0, r5                                            |     r0 = r5;
    0x0002d8f8 pop.w {r4, r5, r6, lr}                                |     
    0x0002d8fc b.w 0x2bf0c                                           |     return void (*0x2bf0c)() ();
                                                                     | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x2cbfc */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.VFS_FILE_CONTENTS ()                                 | void VFS_FILE_CONTENTS (int16_t arg_128h, int16_t arg_10000h, int16_t arg1, int16_t arg2) {
                                                                     |     int16_t var_10000h;
                                                                     |     int16_t var_4h;
                                                                     |     int16_t var_8h;
                                                                     |     int16_t var_ch;
                                                                     |     int16_t var_8ch;
                                                                     |     int16_t var_ach;
                                                                     |     int16_t var_b0h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
    0x0002cbfc ldr r2, [pc, 0x358]                                   |     
    0x0002cbfe ldr r3, [pc, 0x35c]                                   |     r3 = *(0x2cf5e);
    0x0002cc00 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0002cc04 mov r7, r0                                            |     r7 = r0;
    0x0002cc06 vpush {d8, d9}                                        |     __asm ("vpush {d8, d9}");
    0x0002cc0a add r2, pc                                            |     r2 = 0x59b66;
    0x0002cc0c sub.w sp, sp, 0x10000                                 |     
    0x0002cc10 movs r6, 0                                            |     r6 = 0;
    0x0002cc12 ldr r3, [r2, r3]                                      |     
    0x0002cc14 sub sp, 0xb4                                          |     
    0x0002cc16 add.w r0, sp, 0x10000                                 |     r0 += arg_10000h;
    0x0002cc1a add r4, sp, 0xb0                                      |     r4 += var_b0h;
    0x0002cc1c adds r0, 0xac                                         |     r0 += 0xac;
    0x0002cc1e mov r5, r1                                            |     r5 = r1;
    0x0002cc20 ldr r3, [r3]                                          |     r3 = *(0x59b66);
    0x0002cc22 str r3, [r0]                                          |     *(r0) = r3;
    0x0002cc24 mov.w r3, 0                                           |     r3 = 0;
    0x0002cc28 strd r6, r6, [r4, -0x9c]                              |     __asm ("strd r6, r6, [r4, -0x9c]");
    0x0002cc2c str r6, [r4, -0x94]                                   |     *((r4 - 0x94)) = r6;
    0x0002cc30 bl 0x3ffc0                                            |     zbx_time ();
    0x0002cc34 ldr r3, [r7, 4]                                       |     r3 = *((r7 + 4));
    0x0002cc36 ldr.w r8, [pc, 0x328]                                 |     
    0x0002cc3a cmp r3, 2                                             |     
    0x0002cc3c add r8, pc                                            |     r8 = 0x59ba2;
                                                                     |     if (r3 > 2) {
    0x0002cc3e bgt.w 0x2cdb2                                         |         goto label_9;
                                                                     |     }
    0x0002cc42 cmp r3, 0                                             |     
    0x0002cc44 it le                                                 |     
                                                                     |     if (r3 > 0) {
    0x0002cc46 strble r6, [r4, -0x24]                                |         *((r4 - 0x24)) = r6;
                                                                     |     }
                                                                     |     if (r3 <= 0) {
    0x0002cc4a ble.w 0x2cd60                                         |         goto label_10;
                                                                     |     }
    0x0002cc4e ldr r2, [r7, 8]                                       |     r2 = *((r7 + 8));
    0x0002cc50 cmp r3, 2                                             |     
    0x0002cc52 vmov.f64 d8, d0                                       |     __asm ("vmov.f64 d8, d0");
    0x0002cc56 ldr r6, [r2]                                          |     r6 = *(r2);
                                                                     |     if (r3 != 2) {
    0x0002cc58 bne.w 0x2cdaa                                         |         goto label_11;
                                                                     |     }
    0x0002cc5c ldr r1, [r2, 4]                                       |     r1 = *((r2 + 4));
    0x0002cc5e cmp r1, 0                                             |     
                                                                     |     if (r1 == 0) {
    0x0002cc60 beq.w 0x2cdaa                                         |         goto label_11;
                                                                     |     }
    0x0002cc64 movs r2, 0x20                                         |     r2 = 0x20;
    0x0002cc66 sub.w r0, r4, 0x24                                    |     r0 = r4 - 0x24;
    0x0002cc6a bl 0x4465c                                            |     zbx_strlcpy ();
                                                                     | label_1:
    0x0002cc6e cmp r6, 0                                             |     
                                                                     |     if (r6 == 0) {
    0x0002cc70 beq 0x2cd60                                           |         goto label_10;
                                                                     |     }
    0x0002cc72 ldrb r3, [r6]                                         |     r3 = *(r6);
    0x0002cc74 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0002cc76 beq 0x2cd60                                           |         goto label_10;
                                                                     |     }
    0x0002cc78 mov r0, r6                                            |     r0 = r6;
    0x0002cc7a movs r1, 0                                            |     r1 = 0;
    0x0002cc7c blx 0xe030                                            |     r0 = fcntl64 ();
    0x0002cc80 adds r3, r0, 1                                        |     r3 = r0 + 1;
    0x0002cc82 mov r6, r0                                            |     r6 = r0;
                                                                     |     if (r3 == r0) {
    0x0002cc84 beq.w 0x2cdf4                                         |         goto label_12;
                                                                     |     }
    0x0002cc88 ldr r3, [pc, 0x2d8]                                   |     r3 = *(0x2cf64);
    0x0002cc8a ldr.w fp, [r8, r3]                                    |     fp = *((r8 + r3));
    0x0002cc8e vldr s15, [fp]                                        |     __asm ("vldr s15, [fp]");
    0x0002cc90 ldrb r0, [r0, 8]                                      |     r0 = *((r0 + 8));
    0x0002cc92 vcvt.f64.s32 d9, s15                                  |     __asm ("vcvt.f64.s32 d9, s15");
    0x0002cc96 bl 0x3ffc0                                            |     zbx_time ();
    0x0002cc9a vsub.f64 d0, d0, d8                                   |     __asm ("vsub.f64 d0, d0, d8");
    0x0002cc9e vcmpe.f64 d9, d0                                      |     __asm ("vcmpe.f64 d9, d0");
    0x0002cca2 vmrs apsr_nzcv, fpscr                                 |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                     |     if (r3 < r0) {
    0x0002cca6 bmi.w 0x2cdce                                         |         goto label_13;
                                                                     |     }
    0x0002ccaa sub.w r1, r4, 0x90                                    |     r1 = r4 - 0x90;
    0x0002ccae mov r0, r6                                            |     r0 = r6;
    0x0002ccb0 blx 0xdfdc                                            |     r0 = dlopen ();
    0x0002ccb4 mov r7, r0                                            |     r7 = r0;
    0x0002ccb6 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0002ccb8 bne.w 0x2ce32                                         |         goto label_14;
                                                                     |     }
    0x0002ccbc ldrd r2, r3, [r4, -0x60]                              |     __asm ("ldrd r2, r3, [r4, -0x60]");
    0x0002ccc0 cmp.w r2, 0x10001                                     |     
    0x0002ccc4 sbcs r3, r3, 0                                        |     __asm ("sbcs r3, r3, 0");
                                                                     |     if (r2 >= 0x10001) {
    0x0002ccc8 bge.w 0x2ce14                                         |         goto label_15;
                                                                     |     }
    0x0002cccc vldr s15, [fp]                                        |     __asm ("vldr s15, [fp]");
    0x0002ccd0 vcvt.f64.s32 d9, s15                                  |     __asm ("vcvt.f64.s32 d9, s15");
    0x0002ccd4 bl 0x3ffc0                                            |     zbx_time ();
    0x0002ccd8 vsub.f64 d0, d0, d8                                   |     __asm ("vsub.f64 d0, d0, d8");
    0x0002ccdc vcmpe.f64 d9, d0                                      |     __asm ("vcmpe.f64 d9, d0");
    0x0002cce0 vmrs apsr_nzcv, fpscr                                 |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                     |     if (r2 < 0x10001) {
    0x0002cce4 bmi.w 0x2cef2                                         |         goto label_16;
                                                                     |     }
    0x0002cce8 sub.w r3, r4, 0x94                                    |     r3 = r4 - 0x94;
    0x0002ccec mov r8, r7                                            |     r8 = r7;
    0x0002ccee add.w sl, sp, 0x8c                                    |     sl += var_8ch;
    0x0002ccf2 add.w sb, sp, 0xac                                    |     sb += var_ach;
    0x0002ccf6 str r3, [sp, 4]                                       |     var_4h = r3;
    0x0002ccf8 sub.w r3, r4, 0x98                                    |     r3 = r4 - 0x98;
    0x0002ccfc strd r3, r7, [sp, 8]                                  |     __asm ("strd r3, r7, [sp, 8]");
                                                                     |     do {
                                                                     | label_0:
    0x0002cd00 mov r3, sl                                            |         r3 = sl;
    0x0002cd02 mov.w r2, 0x10000                                     |         r2 = 0x10000;
    0x0002cd04 adds r2, 0x80                                         |         r2 += 0x80;
    0x0002cd06 mov r1, sb                                            |         r1 = sb;
    0x0002cd08 mov r0, r6                                            |         r0 = r6;
    0x0002cd0a bl 0x3fa5c                                            |         r0 = zbx_read ();
    0x0002cd0e subs r7, r0, 0                                        |         r7 = r0 - 0;
                                                                     |         if (r7 <= r0) {
    0x0002cd10 ble.w 0x2ce54                                         |             goto label_17;
                                                                     |         }
    0x0002cd14 vldr s15, [fp]                                        |         __asm ("vldr s15, [fp]");
    0x0002cd18 vcvt.f64.s32 d9, s15                                  |         __asm ("vcvt.f64.s32 d9, s15");
    0x0002cd1c bl 0x3ffc0                                            |         zbx_time ();
    0x0002cd20 vsub.f64 d0, d0, d8                                   |         __asm ("vsub.f64 d0, d0, d8");
    0x0002cd24 vcmpe.f64 d9, d0                                      |         __asm ("vcmpe.f64 d9, d0");
    0x0002cd28 vmrs apsr_nzcv, fpscr                                 |         __asm ("vmrs apsr_nzcv, fpscr");
                                                                     |         if (r7 < r0) {
    0x0002cd2c bmi.w 0x2ce9a                                         |             goto label_18;
                                                                     |         }
    0x0002cd30 add r8, r7                                            |         r8 += r7;
    0x0002cd32 cmp.w r8, 0x10000                                     |         
                                                                     |         if (r8 > 0x10000) {
    0x0002cd36 bgt.w 0x2cecc                                         |             goto label_19;
                                                                     |         }
    0x0002cd3a mov r1, r7                                            |         r1 = r7;
    0x0002cd3c mov r2, sl                                            |         r2 = sl;
    0x0002cd3e mov r0, sb                                            |         r0 = sb;
    0x0002cd40 bl 0x4587c                                            |         r0 = convert_to_utf8 ();
    0x0002cd44 mov r7, r0                                            |         r7 = r0;
    0x0002cd46 mov r3, r0                                            |         r3 = r0;
    0x0002cd48 ldr r2, [sp, 4]                                       |         r2 = var_4h;
    0x0002cd4a sub.w r0, r4, 0x9c                                    |         r0 = r4 - 0x9c;
    0x0002cd4e ldr r1, [sp, 8]                                       |         r1 = var_8h;
    0x0002cd50 bl 0x44240                                            |         zbx_strcpy_alloc ();
    0x0002cd54 cmp r7, 0                                             |         
    0x0002cd56 beq 0x2cd00                                           |         
                                                                     |     } while (r7 == 0);
    0x0002cd58 mov r0, r7                                            |     r0 = r7;
    0x0002cd5a blx 0xde30                                            |     fcn_0000de30 ();
    0x0002cd5e b 0x2cd00                                             |     goto label_0;
                                                                     | label_10:
    0x0002cd60 ldr r0, [r5, 0x28]                                    |     r0 = *((r5 + 0x28));
    0x0002cd62 movs r2, 0                                            |     r2 = 0;
    0x0002cd64 ldr r3, [pc, 0x200]                                   |     
    0x0002cd66 movw r1, 0x17d                                        |     r1 = 0x17d;
    0x0002cd6a orr r0, r0, 0x20                                      |     r0 |= 0x20;
    0x0002cd6e str r0, [r5, 0x28]                                    |     *((r5 + 0x28)) = r0;
    0x0002cd70 add r3, pc                                            |     r3 = 0x59cdc;
    0x0002cd72 ldr r0, [pc, 0x1f8]                                   |     
    0x0002cd74 add r0, pc                                            |     r0 = 0x59ce6;
    0x0002cd76 bl 0x40ed8                                            |     zbx_strdup2 ();
                                                                     |     do {
                                                                     | label_3:
    0x0002cd7a movs r7, 1                                            |         r7 = 1;
    0x0002cd7c str r0, [r5, 0x20]                                    |         *((r5 + 0x20)) = r0;
                                                                     | label_2:
    0x0002cd7e ldr r2, [pc, 0x1f0]                                   |         
    0x0002cd80 add.w r1, sp, 0x10000                                 |         r1 += arg_10000h;
    0x0002cd84 ldr r3, [pc, 0x1d4]                                   |         r3 = *(0x2cf5c);
    0x0002cd86 adds r1, 0xac                                         |         r1 += 0xac;
    0x0002cd88 add r2, pc                                            |         r2 = 0x59cfe;
    0x0002cd8a ldr r3, [r2, r3]                                      |         r3 = *(0x59cfe);
    0x0002cd8c ldr r2, [r3]                                          |         r2 = *(0x59cfe);
    0x0002cd8e ldr r3, [r1]                                          |         r3 = *(r1);
    0x0002cd90 eors r2, r3                                           |         r2 ^= r3;
    0x0002cd92 mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x0002cd96 bne.w 0x2cf52                                         |             goto label_20;
                                                                     |         }
    0x0002cd9a mov r0, r7                                            |         r0 = r7;
    0x0002cd9c add.w sp, sp, 0x10000                                 |         
    0x0002cda0 add sp, 0xb4                                          |         
    0x0002cda2 vpop {d8, d9}                                         |         __asm ("vpop {d8, d9}");
    0x0002cda6 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_11:
    0x0002cdaa movs r3, 0                                            |         r3 = 0;
    0x0002cdac strb r3, [r4, -0x24]                                  |         *((r4 - 0x24)) = r3;
    0x0002cdb0 b 0x2cc6e                                             |         goto label_1;
                                                                     | label_9:
    0x0002cdb2 ldr r0, [r5, 0x28]                                    |         r0 = *((r5 + 0x28));
    0x0002cdb4 mov r2, r6                                            |         r2 = r6;
    0x0002cdb6 ldr r3, [pc, 0x1bc]                                   |         
    0x0002cdb8 movw r1, 0x16f                                        |         r1 = 0x16f;
    0x0002cdbc orr r0, r0, 0x20                                      |         r0 |= 0x20;
    0x0002cdc0 str r0, [r5, 0x28]                                    |         *((r5 + 0x28)) = r0;
    0x0002cdc2 add r3, pc                                            |         r3 = 0x59d3c;
    0x0002cdc4 ldr r0, [pc, 0x1b0]                                   |         
    0x0002cdc6 add r0, pc                                            |         r0 = 0x59d42;
    0x0002cdc8 bl 0x40ed8                                            |         zbx_strdup2 ();
    0x0002cdcc b 0x2cd7a                                             |         
                                                                     |     } while (1);
                                                                     | label_13:
    0x0002cdce ldr r1, [r5, 0x28]                                    |     r1 = *((r5 + 0x28));
    0x0002cdd0 movs r2, 0                                            |     r2 = 0;
    0x0002cdd2 ldr r3, [pc, 0x1a8]                                   |     
    0x0002cdd4 ldr r0, [pc, 0x1a8]                                   |     
    0x0002cdd6 orr r1, r1, 0x20                                      |     r1 |= 0x20;
    0x0002cdda str r1, [r5, 0x28]                                    |     *((r5 + 0x28)) = r1;
    0x0002cddc add r3, pc                                            |     r3 = 0x59d5e;
    0x0002cdde add r0, pc                                            |     r0 = 0x59d62;
    0x0002cde0 movw r1, 0x189                                        |     r1 = 0x189;
    0x0002cde4 bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0002cde8 str r0, [r5, 0x20]                                    |     *((r5 + 0x20)) = r0;
                                                                     |     do {
                                                                     | label_4:
    0x0002cdea movs r7, 1                                            |         r7 = 1;
                                                                     | label_5:
    0x0002cdec mov r0, r6                                            |         r0 = r6;
    0x0002cdee blx 0xe0ac                                            |         fcn_0000e0ac ();
    0x0002cdf2 b 0x2cd7e                                             |         goto label_2;
                                                                     | label_12:
    0x0002cdf4 ldr r3, [r5, 0x28]                                    |         r3 = *((r5 + 0x28));
    0x0002cdf6 orr r3, r3, 0x20                                      |         r3 |= 0x20;
    0x0002cdfa str r3, [r5, 0x28]                                    |         *((r5 + 0x28)) = r3;
    0x0002cdfc blx 0xe3d4                                            |         r0 = fcn_0000e3d4 ();
    0x0002ce00 ldr r0, [r0]                                          |         r0 = *(r0);
    0x0002ce02 bl 0x30b74                                            |         zbx_strerror ();
    0x0002ce06 ldr r1, [pc, 0x17c]                                   |         
    0x0002ce08 mov r2, r0                                            |         r2 = r0;
    0x0002ce0a movs r0, 0                                            |         r0 = 0;
    0x0002ce0c add r1, pc                                            |         r1 = 0x59d96;
    0x0002ce0e bl 0x44820                                            |         zbx_dsprintf ()
    0x0002ce12 b 0x2cd7a                                             |         goto label_3;
                                                                     | label_15:
    0x0002ce14 ldr r1, [r5, 0x28]                                    |         r1 = *((r5 + 0x28));
    0x0002ce16 mov r2, r0                                            |         r2 = r0;
    0x0002ce18 ldr r3, [pc, 0x16c]                                   |         
    0x0002ce1a ldr r0, [pc, 0x170]                                   |         
    0x0002ce1c orr r1, r1, 0x20                                      |         r1 |= 0x20;
    0x0002ce20 str r1, [r5, 0x28]                                    |         *((r5 + 0x28)) = r1;
    0x0002ce22 add r3, pc                                            |         r3 = 0x59dae;
    0x0002ce24 add r0, pc                                            |         r0 = 0x59db6;
    0x0002ce26 movw r1, 0x195                                        |         r1 = 0x195;
    0x0002ce2a bl 0x40ed8                                            |         zbx_strdup2 ();
    0x0002ce2e str r0, [r5, 0x20]                                    |         *((r5 + 0x20)) = r0;
    0x0002ce30 b 0x2cdea                                             |         
                                                                     |     } while (1);
                                                                     | label_14:
    0x0002ce32 ldr r3, [r5, 0x28]                                    |     r3 = *((r5 + 0x28));
    0x0002ce34 orr r3, r3, 0x20                                      |     r3 |= 0x20;
    0x0002ce38 str r3, [r5, 0x28]                                    |     *((r5 + 0x28)) = r3;
    0x0002ce3a blx 0xe3d4                                            |     r0 = fcn_0000e3d4 ();
    0x0002ce3e ldr r0, [r0]                                          |     r0 = *(r0);
    0x0002ce40 bl 0x30b74                                            |     zbx_strerror ();
    0x0002ce44 ldr r1, [pc, 0x148]                                   |     
    0x0002ce46 mov r2, r0                                            |     r2 = r0;
    0x0002ce48 movs r0, 0                                            |     r0 = 0;
    0x0002ce4a add r1, pc                                            |     r1 = 0x59dde;
    0x0002ce4c bl 0x44820                                            |     zbx_dsprintf ()
    0x0002ce50 str r0, [r5, 0x20]                                    |     *((r5 + 0x20)) = r0;
    0x0002ce52 b 0x2cdea                                             |     goto label_4;
                                                                     | label_17:
    0x0002ce54 mov r1, r7                                            |     r1 = r7;
    0x0002ce56 ldr r7, [sp, 0xc]                                     |     r7 = var_ch;
    0x0002ce58 adds r1, 1                                            |     r1++;
                                                                     |     if (r1 == 1) {
    0x0002ce5a beq 0x2cf2c                                           |         goto label_21;
                                                                     |     }
    0x0002ce5c ldr r3, [r4, -0x94]                                   |     r3 = *((r4 - 0x94));
    0x0002ce60 ldr r0, [r4, -0x9c]                                   |     r0 = *((r4 - 0x9c));
    0x0002ce64 cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x0002ce66 bne 0x2cf10                                           |         goto label_22;
                                                                     |     }
                                                                     | label_6:
    0x0002ce68 ldr r0, [r4, -0x9c]                                   |     r0 = *((r4 - 0x9c));
                                                                     |     if (r0 != 0) {
    0x0002ce6c cbz r0, 0x2ce78                                       |         
    0x0002ce6e blx 0xde30                                            |         fcn_0000de30 ();
    0x0002ce72 movs r3, 0                                            |         r3 = 0;
    0x0002ce74 str r3, [r4, -0x9c]                                   |         *((r4 - 0x9c)) = r3;
                                                                     |     }
    0x0002ce78 ldr r3, [pc, 0x118]                                   |     
    0x0002ce7a movs r2, 0                                            |     r2 = 0;
    0x0002ce7c ldr r0, [pc, 0x118]                                   |     
    0x0002ce7e movw r1, 0x1c3                                        |     r1 = 0x1c3;
    0x0002ce82 add r3, pc                                            |     r3 = 0x59e1a;
    0x0002ce84 add r0, pc                                            |     r0 = 0x59e20;
    0x0002ce86 bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0002ce8a str r0, [r4, -0x9c]                                   |     *((r4 - 0x9c)) = r0;
                                                                     | label_7:
    0x0002ce8e ldr r3, [r5, 0x28]                                    |     r3 = *((r5 + 0x28));
    0x0002ce90 str r0, [r5, 0x1c]                                    |     *((r5 + 0x1c)) = r0;
    0x0002ce92 orr r3, r3, 8                                         |     r3 |= 8;
    0x0002ce96 str r3, [r5, 0x28]                                    |     *((r5 + 0x28)) = r3;
    0x0002ce98 b 0x2cdec                                             |     goto label_5;
                                                                     | label_18:
    0x0002ce9a ldr r2, [r5, 0x28]                                    |     r2 = *((r5 + 0x28));
    0x0002ce9c movw r1, 0x1a5                                        |     r1 = 0x1a5;
    0x0002cea0 ldr r3, [pc, 0xf8]                                    |     
    0x0002cea2 ldr r0, [pc, 0xfc]                                    |     
    0x0002cea4 orr r2, r2, 0x20                                      |     r2 |= 0x20;
    0x0002cea8 add r3, pc                                            |     r3 = 0x59e48;
    0x0002ceaa str r2, [r5, 0x28]                                    |     *((r5 + 0x28)) = r2;
    0x0002ceac add r0, pc                                            |     r0 = 0x59e52;
    0x0002ceae movs r2, 0                                            |     r2 = 0;
    0x0002ceb0 bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0002ceb4 ldr r3, [r4, -0x9c]                                   |     r3 = *((r4 - 0x9c));
    0x0002ceb8 str r0, [r5, 0x20]                                    |     *((r5 + 0x20)) = r0;
    0x0002ceba cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0002cebc beq 0x2cdea                                           |         goto label_4;
                                                                     |     }
                                                                     |     do {
                                                                     | label_8:
    0x0002cebe mov r0, r3                                            |         r0 = r3;
    0x0002cec0 blx 0xde30                                            |         fcn_0000de30 ();
    0x0002cec4 movs r3, 0                                            |         r3 = 0;
    0x0002cec6 str r3, [r4, -0x9c]                                   |         *((r4 - 0x9c)) = r3;
    0x0002ceca b 0x2cdea                                             |         goto label_4;
                                                                     | label_19:
    0x0002cecc ldr r2, [r5, 0x28]                                    |         r2 = *((r5 + 0x28));
    0x0002cece mov.w r1, 0x1ac                                       |         r1 = 0x1ac;
    0x0002ced2 ldr r3, [pc, 0xd0]                                    |         
    0x0002ced4 ldr r0, [pc, 0xd0]                                    |         
    0x0002ced6 orr r2, r2, 0x20                                      |         r2 |= 0x20;
    0x0002ceda add r3, pc                                            |         r3 = 0x59e84;
    0x0002cedc str r2, [r5, 0x28]                                    |         *((r5 + 0x28)) = r2;
    0x0002cede add r0, pc                                            |         r0 = 0x59e8a;
    0x0002cee0 movs r2, 0                                            |         r2 = 0;
    0x0002cee2 bl 0x40ed8                                            |         zbx_strdup2 ();
    0x0002cee6 ldr r3, [r4, -0x9c]                                   |         r3 = *((r4 - 0x9c));
    0x0002ceea str r0, [r5, 0x20]                                    |         *((r5 + 0x20)) = r0;
    0x0002ceec cmp r3, 0                                             |         
    0x0002ceee bne 0x2cebe                                           |         
                                                                     |     } while (r3 != 0);
    0x0002cef0 b 0x2cdea                                             |     goto label_4;
                                                                     | label_16:
    0x0002cef2 ldr r1, [r5, 0x28]                                    |     r1 = *((r5 + 0x28));
    0x0002cef4 mov r2, r7                                            |     r2 = r7;
    0x0002cef6 ldr r3, [pc, 0xb4]                                    |     
    0x0002cef8 ldr r0, [pc, 0xb4]                                    |     
    0x0002cefa orr r1, r1, 0x20                                      |     r1 |= 0x20;
    0x0002cefe str r1, [r5, 0x28]                                    |     *((r5 + 0x28)) = r1;
    0x0002cf00 add r3, pc                                            |     r3 = 0x59eb2;
    0x0002cf02 add r0, pc                                            |     r0 = 0x59eb6;
    0x0002cf04 movw r1, 0x19b                                        |     r1 = 0x19b;
    0x0002cf08 bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0002cf0c str r0, [r5, 0x20]                                    |     *((r5 + 0x20)) = r0;
    0x0002cf0e b 0x2cdea                                             |     goto label_4;
                                                                     | label_22:
    0x0002cf10 ldr r1, [pc, 0xa0]                                    |     
    0x0002cf12 add r1, pc                                            |     r1 = 0x59eca;
    0x0002cf14 bl 0x444f4                                            |     zbx_rtrim ();
    0x0002cf18 ldr r3, [r4, -0x94]                                   |     r3 = *((r4 - 0x94));
    0x0002cf1c subs r3, r3, r0                                       |     r3 -= r0;
    0x0002cf1e str r3, [r4, -0x94]                                   |     *((r4 - 0x94)) = r3;
    0x0002cf22 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0002cf24 beq 0x2ce68                                           |         goto label_6;
                                                                     |     }
    0x0002cf26 ldr r0, [r4, -0x9c]                                   |     r0 = *((r4 - 0x9c));
    0x0002cf2a b 0x2ce8e                                             |     goto label_7;
                                                                     | label_21:
    0x0002cf2c ldr r2, [r5, 0x28]                                    |     r2 = *((r5 + 0x28));
    0x0002cf2e mov.w r1, 0x1b8                                       |     r1 = 0x1b8;
    0x0002cf32 ldr r3, [pc, 0x84]                                    |     
    0x0002cf34 ldr r0, [pc, 0x84]                                    |     
    0x0002cf36 orr r2, r2, 0x20                                      |     r2 |= 0x20;
    0x0002cf3a add r3, pc                                            |     r3 = 0x59ef8;
    0x0002cf3c str r2, [r5, 0x28]                                    |     *((r5 + 0x28)) = r2;
    0x0002cf3e add r0, pc                                            |     r0 = 0x59efe;
    0x0002cf40 movs r2, 0                                            |     r2 = 0;
    0x0002cf42 bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0002cf46 ldr r3, [r4, -0x9c]                                   |     r3 = *((r4 - 0x9c));
    0x0002cf4a str r0, [r5, 0x20]                                    |     *((r5 + 0x20)) = r0;
    0x0002cf4c cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x0002cf4e bne 0x2cebe                                           |         goto label_8;
                                                                     |     }
    0x0002cf50 b 0x2cdea                                             |     goto label_4;
                                                                     | label_20:
    0x0002cf52 blx 0xe158                                            |     fcn_0000e158 ();
    0x0002cf56 nop                                                   |     
    0x0002cf58 vaddl.s8 q8, d14, d2                                  |     __asm ("vaddl.s8 q8, d14, d2");
    0x0002cf5c lsls r4, r2, 0xe                                      |     r4 = r2 << 0xe;
    0x0002cf5e movs r0, r0                                           |     
    0x0002cf60 vaddl.s16 q0, d12, d2                                 |     __asm ("vaddl.s16 q0, d12, d2");
    0x0002cf64 lsls r4, r4, 0xc                                      |     r4 <<= 0xc;
    0x0002cf66 movs r0, r0                                           |     
    0x0002cf68 cmp r1, 0                                             |     
    0x0002cf6a movs r2, r0                                           |     r2 = r0;
    0x0002cf6c str r4, [r1, 0x74]                                    |     *((r1 + 0x74)) = r4;
    0x0002cf6e movs r2, r0                                           |     r2 = r0;
    0x0002cf70 cdp p0, 5, c0, c0, c2, 0                              |     __asm ("cdp p0, 5, c0, c0, c2, 0");
    0x0002cf74 cmp r0, 0x96                                          |     
    0x0002cf76 movs r2, r0                                           |     r2 = r0;
    0x0002cf78 str r2, [r7, 0x6c]                                    |     *((r7 + 0x6c)) = r2;
    0x0002cf7a movs r2, r0                                           |     r2 = r0;
    0x0002cf7c str r4, [r0, 0x6c]                                    |     *((r0 + 0x6c)) = r4;
    0x0002cf7e movs r2, r0                                           |     r2 = r0;
    0x0002cf80 str r2, [r4, 0x6c]                                    |     *((r4 + 0x6c)) = r2;
    0x0002cf82 movs r2, r0                                           |     r2 = r0;
    0x0002cf84 str r4, [r7, 0x64]                                    |     *((r7 + 0x64)) = r4;
    0x0002cf86 movs r2, r0                                           |     r2 = r0;
    0x0002cf88 str r2, [r7, 0x6c]                                    |     *((r7 + 0x6c)) = r2;
    0x0002cf8a movs r2, r0                                           |     r2 = r0;
    0x0002cf8c str r4, [r3, 0x68]                                    |     *((r3 + 0x68)) = r4;
    0x0002cf8e movs r2, r0                                           |     r2 = r0;
    0x0002cf90 str r6, [r3, 0x68]                                    |     *((r3 + 0x68)) = r6;
    0x0002cf92 movs r2, r0                                           |     r2 = r0;
    0x0002cf94 ldr r5, [pc, 0x2b8]                                   |     r5 = *(0x2d250);
    0x0002cf96 movs r2, r0                                           |     r2 = r0;
    0x0002cf98 str r4, [r7, 0x60]                                    |     *((r7 + 0x60)) = r4;
    0x0002cf9a movs r2, r0                                           |     r2 = r0;
    0x0002cf9c str r0, [r7, 0x5c]                                    |     *((r7 + 0x5c)) = r0;
    0x0002cf9e movs r2, r0                                           |     r2 = r0;
    0x0002cfa0 str r4, [r2, 0x60]                                    |     *((r2 + 0x60)) = r4;
    0x0002cfa2 movs r2, r0                                           |     r2 = r0;
    0x0002cfa4 str r2, [r0, 0x64]                                    |     *((r0 + 0x64)) = r2;
    0x0002cfa6 movs r2, r0                                           |     r2 = r0;
    0x0002cfa8 str r2, [r4, 0x5c]                                    |     *((r4 + 0x5c)) = r2;
    0x0002cfaa movs r2, r0                                           |     r2 = r0;
    0x0002cfac str r0, [r4, 0x58]                                    |     *((r4 + 0x58)) = r0;
    0x0002cfae movs r2, r0                                           |     r2 = r0;
    0x0002cfb0 str r6, [r7, 0x58]                                    |     *((r7 + 0x58)) = r6;
    0x0002cfb2 movs r2, r0                                           |     r2 = r0;
    0x0002cfb4 add r4, sp, 0x128                                     |     r4 += arg_128h;
    0x0002cfb6 movs r2, r0                                           |     r2 = r0;
    0x0002cfb8 strh r2, [r1, r5]                                     |     *((r1 + r5)) = r2;
    0x0002cfba movs r2, r0                                           |     r2 = r0;
    0x0002cfbc str r2, [r0, 0x58]                                    |     *((r0 + 0x58)) = r2;
    0x0002cfbe movs r2, r0                                           |     r2 = r0;
                                                                     | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x2ca04 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.VFS_FILE_EXISTS ()                           | void VFS_FILE_EXISTS (int16_t arg1, int16_t arg2) {
                                                             |     int16_t var_0h;
                                                             |     int16_t var_10h;
                                                             |     int16_t var_6ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x0002ca04 blmi 0x1d7f3dc                                |     __asm ("blmi 0x1d7f3dc");
    0x0002ca08 push.w {r4, r5, r6, r7, r8, sb, lr}           |     
    0x0002ca0c sub sp, 0x74                                  |     
    0x0002ca0e add r2, pc                                    |     r2 += pc;
    0x0002ca10 mov r4, r1                                    |     r4 = r1;
    0x0002ca12 ldr r3, [r2, r3]                              |     r3 = *((r2 + r3));
    0x0002ca14 ldr r3, [r3]                                  |     r3 = *(r3);
    0x0002ca16 str r3, [sp, 0x6c]                            |     var_6ch = r3;
    0x0002ca18 mov.w r3, 0                                   |     r3 = 0;
    0x0002ca1c ldr r3, [r0, 4]                               |     r3 = *((r0 + 4));
    0x0002ca1e cmp r3, 3                                     |     
                                                             |     if (r3 > 3) {
    0x0002ca20 bgt.w 0x2cb4e                                 |         goto label_4;
                                                             |     }
    0x0002ca24 cmp r3, 0                                     |     
                                                             |     if (r3 > 0) {
    0x0002ca26 ble 0x2cb16                                   |         
    0x0002ca28 ldr r2, [r0, 8]                               |         r2 = *((r0 + 8));
    0x0002ca2a mov r5, r0                                    |         r5 = r0;
    0x0002ca2c ldr r7, [r2]                                  |         r7 = *(r2);
    0x0002ca2e cmp r7, 0                                     |         
                                                             |         if (r7 == 0) {
    0x0002ca30 beq 0x2cb16                                   |             goto label_5;
                                                             |         }
    0x0002ca32 ldrb r1, [r7]                                 |         r1 = *(r7);
    0x0002ca34 cmp r1, 0                                     |         
                                                             |         if (r1 == 0) {
    0x0002ca36 beq 0x2cb16                                   |             goto label_5;
                                                             |         }
    0x0002ca38 cmp r3, 1                                     |         
    0x0002ca3a mov r1, r4                                    |         r1 = r4;
    0x0002ca3c ite ne                                        |         
                                                             |         if (r3 == 1) {
    0x0002ca3e ldrne r0, [r2, 4]                             |             r0 = *((r2 + 4));
                                                             |         }
                                                             |         if (r3 != 1) {
    0x0002ca40 moveq r0, 0                                   |             r0 = 0;
                                                             |         }
    0x0002ca42 bl 0x2ab30                                    |         r0 = zbx_etypes_to_mask ();
    0x0002ca46 cmp.w r0, -1                                  |         
    0x0002ca4a mov r8, r0                                    |         r8 = r0;
                                                             |         if (r0 == -1) {
    0x0002ca4c beq 0x2cb32                                   |             goto label_2;
                                                             |         }
    0x0002ca4e ldr r3, [r5, 4]                               |         r3 = *((r5 + 4));
    0x0002ca50 mov r1, r4                                    |         r1 = r4;
    0x0002ca52 cmp r3, 2                                     |         
    0x0002ca54 itet gt                                       |         
                                                             |         if (r3 <= 2) {
    0x0002ca56 ldrgt r3, [r5, 8]                             |             r3 = *((r5 + 8));
                                                             |         }
                                                             |         if (r3 > 2) {
    0x0002ca58 movle r0, 0                                   |             r0 = 0;
                                                             |         }
                                                             |         if (r3 <= 2) {
    0x0002ca5a ldrgt r0, [r3, 8]                             |             r0 = *((r3 + 8));
                                                             |         }
    0x0002ca5c bl 0x2ab30                                    |         r0 = zbx_etypes_to_mask ();
    0x0002ca60 adds r3, r0, 1                                |         r3 = r0 + 1;
    0x0002ca62 mov r5, r0                                    |         r5 = r0;
                                                             |         if (r3 == r0) {
    0x0002ca64 beq 0x2cb32                                   |             goto label_2;
                                                             |         }
    0x0002ca66 cmp.w r8, 0                                   |         
                                                             |         if (r8 == 0) {
    0x0002ca6a beq 0x2cb6c                                   |             goto label_6;
                                                             |         }
    0x0002ca6c orr.w r6, r8, r0                              |         r6 = r8 | r0;
    0x0002ca70 ands r6, r6, 4                                |         r6 &= 4;
                                                             |         if (r6 == r6) {
    0x0002ca74 beq.w 0x2cba2                                 |             goto label_7;
                                                             |         }
                                                             | label_0:
    0x0002ca78 mov sb, sp                                    |         sb = sp;
    0x0002ca7a mov r0, r7                                    |         r0 = r7;
    0x0002ca7c mov r1, sb                                    |         r1 = sb;
    0x0002ca7e blx 0xe1c4                                    |         r0 = fcn_0000e1c4 ();
    0x0002ca82 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0002ca84 bne.w 0x2cba6                                 |             goto label_8;
                                                             |         }
    0x0002ca88 ldr r6, [sp, 0x10]                            |         r6 = var_10h;
    0x0002ca8a and r6, r6, 0xf000                            |         r6 &= 0xf000;
    0x0002ca8e sub.w r6, r6, 0xa000                          |         r6 -= 0xa000;
    0x0002ca92 clz r6, r6                                    |         r6 &= r6;
    0x0002ca96 lsrs r6, r6, 5                                |         r6 >>= 5;
    0x0002ca98 lsls r6, r6, 2                                |         r6 <<= 2;
                                                             | label_3:
    0x0002ca9a mov r1, sb                                    |         r1 = sb;
    0x0002ca9c mov r0, r7                                    |         r0 = r7;
    0x0002ca9e blx 0xdec0                                    |         r0 = fcn_0000dec0 ();
    0x0002caa0 ands.w r8, r0, r0, lsl 8                      |         r8 = r0 & (r0 << 8);
                                                             |         if (r8 != r0) {
    0x0002caa4 bne 0x2cb74                                   |             goto label_9;
                                                             |         }
    0x0002caa6 ldr r3, [sp, 0x10]                            |         r3 = var_10h;
    0x0002caa8 and r3, r3, 0xf000                            |         r3 &= 0xf000;
    0x0002caac cmp.w r3, 0x8000                              |         
    0x0002cab0 it eq                                         |         
                                                             |         if (r3 != fcn.00000004) {
    0x0002cab2 orreq r6, r6, 1                               |             r6 |= 1;
                                                             |         }
    0x0002cab4 lsls r1, r0, 0x18                             |         r1 = r0 << 0x18;
                                                             |         if (r1 != r0) {
    0x0002cab6 beq 0x2caf2                                   |             
    0x0002cab8 cmp.w r3, 0x4000                              |             
    0x0002cabc it eq                                         |             
                                                             |             if (r3 != 0x4000) {
    0x0002cabe orreq r6, r6, 2                               |                 r6 |= 2;
                                                             |             }
                                                             |             if (r3 == 0x4000) {
    0x0002cac2 beq 0x2caf2                                   |                 goto label_1;
                                                             |             }
    0x0002cac4 cmp.w r3, 0xc000                              |             
    0x0002cac8 it eq                                         |             
                                                             |             if (r3 != 0xc000) {
    0x0002caca orreq r6, r6, 8                               |                 r6 |= 8;
                                                             |             }
                                                             |             if (r3 == 0xc000) {
    0x0002cace beq 0x2caf2                                   |                 goto label_1;
                                                             |             }
    0x0002cad0 cmp.w r3, 0x6000                              |             
    0x0002cad4 it eq                                         |             
                                                             |             if (r3 != 0x6000) {
    0x0002cad6 orreq r6, r6, 0x10                            |                 r6 |= 0x10;
                                                             |             }
                                                             |             if (r3 == 0x6000) {
    0x0002cada beq 0x2caf2                                   |                 goto label_1;
                                                             |             }
    0x0002cadc cmp.w r3, 0x2000                              |             
    0x0002cae0 it eq                                         |             
                                                             |             if (r3 != 0x2000) {
    0x0002cae2 orreq r6, r6, 0x20                            |                 r6 |= 0x20;
                                                             |             }
                                                             |             if (r3 == 0x2000) {
    0x0002cae6 beq 0x2caf2                                   |                 goto label_1;
                                                             |             }
    0x0002cae8 cmp.w r3, 0x1000                              |             
    0x0002caec it eq                                         |             
                                                             |             if (r3 == 0x1000) {
    0x0002caee orreq r6, r6, 0x40                            |                 r6 |= 0x40;
                                                             |                 goto label_1;
                                                             |             }
                                                             |         }
                                                             | label_1:
    0x0002caf2 ands r5, r6                                   |         r5 &= r6;
    0x0002caf4 ldr r3, [r4, 0x28]                            |         r3 = *((r4 + 0x28));
    0x0002caf6 itt ne                                        |         
                                                             |         if (r5 == r6) {
    0x0002caf8 movne r2, 0                                   |             r2 = 0;
                                                             |         }
                                                             |         if (r5 == r6) {
    0x0002cafa movne r5, r2                                  |             r5 = r2;
                                                             |         }
                                                             |         if (r5 == r6) {
    0x0002cafc bne 0x2cb08                                   |             
    0x0002cafe tst.w r8, r6                                  |             
    0x0002cb02 ite ne                                        |             
                                                             |             if ((r8 & r6) == 0) {
    0x0002cb04 movne r2, 1                                   |                 r2 = 1;
                                                             |             }
                                                             |             if ((r8 & r6) == 0) {
    0x0002cb06 moveq r2, 0                                   |                 r2 = 0;
                                                             |                 goto label_10;
                                                             |             }
                                                             |         }
                                                             | label_10:
    0x0002cb08 orr r3, r3, 1                                 |         r3 |= 1;
    0x0002cb0c movs r0, 0                                    |         r0 = 0;
    0x0002cb0e str r3, [r4, 0x28]                            |         *((r4 + 0x28)) = r3;
    0x0002cb10 strd r2, r5, [r4, 8]                          |         __asm ("strd r2, r5, [r4, 8]");
    0x0002cb14 b 0x2cb34                                     |         goto label_11;
                                                             |     }
                                                             | label_5:
    0x0002cb16 ldr r0, [r4, 0x28]                            |     r0 = *((r4 + 0x28));
    0x0002cb18 movs r2, 0                                    |     r2 = 0;
    0x0002cb1a ldr r3, [pc, 0xc4]                            |     
    0x0002cb1c mov.w r1, 0x11e                               |     r1 = 0x11e;
    0x0002cb20 orr r0, r0, 0x20                              |     r0 |= 0x20;
    0x0002cb24 str r0, [r4, 0x28]                            |     *((r4 + 0x28)) = r0;
    0x0002cb26 add r3, pc                                    |     r3 = 0x5970c;
    0x0002cb28 ldr r0, [pc, 0xb8]                            |     
    0x0002cb2a add r0, pc                                    |     r0 = 0x59712;
    0x0002cb2c bl 0x40ed8                                    |     zbx_strdup2 ();
    0x0002cb30 str r0, [r4, 0x20]                            |     *((r4 + 0x20)) = r0;
                                                             |     do {
                                                             | label_2:
    0x0002cb32 movs r0, 1                                    |         r0 = 1;
                                                             | label_11:
    0x0002cb34 ldr r2, [pc, 0xb0]                            |         
    0x0002cb36 ldr r3, [pc, 0xa4]                            |         r3 = *(0x2cbde);
    0x0002cb38 add r2, pc                                    |         r2 = 0x59724;
    0x0002cb3a ldr r3, [r2, r3]                              |         r3 = *(0x59724);
    0x0002cb3c ldr r2, [r3]                                  |         r2 = *(0x59724);
    0x0002cb3e ldr r3, [sp, 0x6c]                            |         r3 = var_6ch;
    0x0002cb40 eors r2, r3                                   |         r2 ^= r3;
    0x0002cb42 mov.w r3, 0                                   |         r3 = 0;
    0x0002cb44 lsls r0, r0, 0xc                              |         r0 <<= 0xc;
                                                             |         if (r0 != r0) {
    0x0002cb46 bne 0x2cbd4                                   |             goto label_12;
                                                             |         }
    0x0002cb48 add sp, 0x74                                  |         
    0x0002cb4a pop.w {r4, r5, r6, r7, r8, sb, pc}            |         
                                                             | label_4:
    0x0002cb4e ldr r0, [r1, 0x28]                            |         r0 = *((r1 + 0x28));
    0x0002cb50 movs r2, 0                                    |         r2 = 0;
    0x0002cb52 ldr r3, [pc, 0x98]                            |         
    0x0002cb54 mov.w r1, 0x116                               |         r1 = 0x116;
    0x0002cb58 orr r0, r0, 0x20                              |         r0 |= 0x20;
    0x0002cb5c str r0, [r4, 0x28]                            |         *((r4 + 0x28)) = r0;
    0x0002cb5e add r3, pc                                    |         r3 = 0x59750;
    0x0002cb60 ldr r0, [pc, 0x8c]                            |         
    0x0002cb62 add r0, pc                                    |         r0 = 0x59756;
    0x0002cb64 bl 0x40ed8                                    |         zbx_strdup2 ();
    0x0002cb68 str r0, [r4, 0x20]                            |         *((r4 + 0x20)) = r0;
    0x0002cb6a b 0x2cb32                                     |         
                                                             |     } while (1);
                                                             |     if (r0 == 0) {
                                                             | label_6:
    0x0002cb6c cbz r0, 0x2cb9c                               |         goto label_13;
                                                             |     }
    0x0002cb6e mov.w r8, 0x7f                                |     r8 = 0x7f;
    0x0002cb72 b 0x2ca78                                     |     goto label_0;
                                                             | label_9:
    0x0002cb74 blx 0xe3d4                                    |     r0 = fcn_0000e3d4 ();
    0x0002cb78 ldr r3, [r0]                                  |     r3 = *(r0);
    0x0002cb7a cmp r3, 2                                     |     
                                                             |     if (r3 == 2) {
    0x0002cb7c beq 0x2caf2                                   |         goto label_1;
                                                             |     }
    0x0002cb7e ldr r3, [r4, 0x28]                            |     r3 = *((r4 + 0x28));
    0x0002cb80 orr r3, r3, 0x20                              |     r3 |= 0x20;
    0x0002cb84 str r3, [r4, 0x28]                            |     *((r4 + 0x28)) = r3;
    0x0002cb86 ldr r0, [r0]                                  |     r0 = *(r0);
    0x0002cb88 bl 0x30b74                                    |     zbx_strerror ();
    0x0002cb8c ldr r1, [pc, 0x64]                            |     
    0x0002cb8e mov r2, r0                                    |     r2 = r0;
    0x0002cb90 movs r0, 0                                    |     r0 = 0;
    0x0002cb92 add r1, pc                                    |     r1 = 0x5978a;
    0x0002cb94 bl 0x44820                                    |     zbx_dsprintf ()
    0x0002cb98 str r0, [r4, 0x20]                            |     *((r4 + 0x20)) = r0;
    0x0002cb9a b 0x2cb32                                     |     goto label_2;
                                                             | label_13:
    0x0002cb9c mov r6, r8                                    |     r6 = r8;
    0x0002cb9e mov.w r8, 1                                   |     r8 = 1;
                                                             | label_7:
    0x0002cba2 mov sb, sp                                    |     sb = sp;
    0x0002cba4 b 0x2ca9a                                     |     goto label_3;
                                                             | label_8:
    0x0002cba6 blx 0xe3d4                                    |     r0 = fcn_0000e3d4 ();
    0x0002cbaa ldr r3, [r0]                                  |     r3 = *(r0);
    0x0002cbac cmp r3, 2                                     |     
    0x0002cbae it eq                                         |     
                                                             |     if (r3 == 2) {
    0x0002cbb0 moveq r6, 0                                   |         r6 = 0;
                                                             |         goto label_14;
                                                             |     }
                                                             |     if (r3 == 2) {
                                                             | label_14:
    0x0002cbb2 beq.w 0x2ca9a                                 |         goto label_3;
                                                             |     }
    0x0002cbb6 ldr r3, [r4, 0x28]                            |     r3 = *((r4 + 0x28));
    0x0002cbb8 orr r3, r3, 0x20                              |     r3 |= 0x20;
    0x0002cbbc str r3, [r4, 0x28]                            |     *((r4 + 0x28)) = r3;
    0x0002cbbe ldr r0, [r0]                                  |     r0 = *(r0);
    0x0002cbc0 bl 0x30b74                                    |     zbx_strerror ();
    0x0002cbc4 ldr r1, [pc, 0x30]                            |     
    0x0002cbc6 mov r2, r0                                    |     r2 = r0;
    0x0002cbc8 movs r0, 0                                    |     r0 = 0;
    0x0002cbca add r1, pc                                    |     r1 = 0x597c6;
    0x0002cbcc bl 0x44820                                    |     zbx_dsprintf ()
    0x0002cbd0 str r0, [r4, 0x20]                            |     *((r4 + 0x20)) = r0;
    0x0002cbd2 b 0x2cb32                                     |     goto label_2;
                                                             | label_12:
    0x0002cbd4 blx 0xe158                                    |     fcn_0000e158 ();
    0x0002cbd8 rsb.w r0, sl, 2                               |     r0 = 2 - sl;
    0x0002cbdc lsls r4, r2, 0xe                              |     r4 = r2 << 0xe;
    0x0002cbde movs r0, r0                                   |     
    0x0002cbe0 cmp r3, 0x4a                                  |     
    0x0002cbe2 movs r2, r0                                   |     r2 = r0;
    0x0002cbe4 ldr r6, [r2, 0x18]                            |     r6 = *((r2 + 0x18));
    0x0002cbe6 movs r2, r0                                   |     r2 = r0;
    0x0002cbe8 invalid                                       |     
                                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x2e318 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.VFS_FILE_GET ()                                  | void VFS_FILE_GET (int16_t arg_11ch, int16_t arg_84h, int16_t arg_dbch, int16_t arg_15c0h, int16_t arg_1000h, int16_t arg1, int16_t arg2) {
                                                                 |     int16_t var_20h_2;
                                                                 |     int16_t var_1000h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_11ch;
                                                                 |     int16_t var_16h;
                                                                 |     int16_t var_84h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 | label_0:
    0x0002e25c blmi 0xb00b0c                                     |     __asm ("blmi aav.0x0002d970");
    0x0002e260 push.w {r4, r5, r6, r7, r8, lr}                   |     
    0x0002e264 sub.w sp, sp, 0x1020                              |     
    0x0002e268 add r2, pc                                        |     r2 += pc;
    0x0002e26a add r7, sp, 0x20                                  |     r7 += var_20h_2;
    0x0002e26c mov r4, r1                                        |     r4 = r1;
    0x0002e26e add.w r1, sp, 0x1000                              |     r1 += var_1000h;
    0x0002e272 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x0002e274 sub.w r6, r7, 0x1c                                |     r6 = r7 - 0x1c;
    0x0002e278 mov r5, r0                                        |     r5 = r0;
    0x0002e27a mov.w r8, 0                                       |     r8 = 0;
    0x0002e27e adds r1, 0x1c                                     |     r1 += 0x1c;
    0x0002e280 mov r0, r6                                        |     r0 = r6;
    0x0002e282 ldr r3, [r3]                                      |     r3 = *(r3);
    0x0002e284 str r3, [r1]                                      |     *(r1) = r3;
    0x0002e286 mov.w r3, 0                                       |     r3 = 0;
    0x0002e28a mov.w r1, 0x1000                                  |     r1 = 0x1000;
    0x0002e28e str r8, [r7, -0x20]                               |     *((r7 - 0x20)) = r8;
    0x0002e292 bl 0x3aae4                                        |     zbx_json_init ();
    0x0002e296 mov r2, r8                                        |     r2 = r8;
    0x0002e298 mov r0, r5                                        |     r0 = r5;
    0x0002e29a mov r3, sp                                        |     r3 = sp;
    0x0002e29c mov r1, r6                                        |     r1 = r6;
    0x0002e29e bl 0x2dc94                                        |     r0 = zbx_vfs_file_info ();
                                                                 |     if (r0 == 0) {
    0x0002e2a2 cbz r0, 0x2e2e4                                   |         goto label_9;
                                                                 |     }
    0x0002e2a4 ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x0002e2a6 movs r5, 1                                        |     r5 = 1;
    0x0002e2a8 ldr r2, [r7, -0x20]                               |     r2 = *((r7 - 0x20));
    0x0002e2ac orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x0002e2b0 str r2, [r4, 0x20]                                |     *((r4 + 0x20)) = r2;
    0x0002e2b2 str r3, [r4, 0x28]                                |     *((r4 + 0x28)) = r3;
                                                                 |     do {
    0x0002e2b4 mov r0, r6                                        |         r0 = r6;
    0x0002e2b6 bl 0x3af6c                                        |         zbx_json_close ();
    0x0002e2ba mov r0, r6                                        |         r0 = r6;
    0x0002e2bc bl 0x3ac14                                        |         zbx_json_free ();
    0x0002e2c0 ldr r2, [pc, 0x4c]                                |         
    0x0002e2c2 add.w r1, sp, 0x1000                              |         r1 += var_1000h;
    0x0002e2c6 ldr r3, [pc, 0x44]                                |         r3 = *(0x2e30e);
    0x0002e2c8 adds r1, 0x1c                                     |         r1 += 0x1c;
    0x0002e2ca add r2, pc                                        |         r2 = 0x5c5de;
    0x0002e2cc ldr r3, [r2, r3]                                  |         r3 = *(0x5c5de);
    0x0002e2ce ldr r2, [r3]                                      |         r2 = *(0x5c5de);
    0x0002e2d0 ldr r3, [r1]                                      |         r3 = *(r1);
    0x0002e2d2 eors r2, r3                                       |         r2 ^= r3;
    0x0002e2d4 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0002e2d8 bne 0x2e304                                       |             goto label_10;
                                                                 |         }
    0x0002e2da mov r0, r5                                        |         r0 = r5;
    0x0002e2dc add.w sp, sp, 0x1020                              |         
    0x0002e2e0 pop.w {r4, r5, r6, r7, r8, pc}                    |         
                                                                 | label_9:
    0x0002e2e4 ldr r2, [r4, 0x28]                                |         r2 = *((r4 + 0x28));
    0x0002e2e6 mov r5, r0                                        |         r5 = r0;
    0x0002e2e8 ldr r3, [r7, -0x1c]                               |         r3 = *((r7 - 0x1c));
    0x0002e2ec movw r1, 0x6a7                                    |         r1 = 0x6a7;
    0x0002e2f0 orr r2, r2, 4                                     |         r2 |= 4;
    0x0002e2f4 str r2, [r4, 0x28]                                |         *((r4 + 0x28)) = r2;
    0x0002e2f6 mov r2, r0                                        |         r2 = r0;
    0x0002e2f8 ldr r0, [pc, 0x18]                                |         
    0x0002e2fa add r0, pc                                        |         r0 = 0x5c612;
    0x0002e2fc bl 0x40ed8                                        |         zbx_strdup2 ();
    0x0002e300 str r0, [r4, 0x18]                                |         *((r4 + 0x18)) = r0;
    0x0002e302 b 0x2e2b4                                         |         
                                                                 |     } while (1);
                                                                 | label_10:
    0x0002e304 blx 0xe158                                        |     fcn_0000e158 ();
                                                                 |     if (r2 >= r3) {
    0x0002e308 bls 0x2e3ec                                       |         
    0x0002e30a movs r2, r0                                       |         r2 = r0;
    0x0002e30c lsls r4, r2, 0xe                                  |         r4 = r2 << 0xe;
    0x0002e30e movs r0, r0                                       |         
                                                                 |         if (r0 >= r0) {
    0x0002e310 bls 0x2e330                                       |             
    0x0002e312 movs r2, r0                                       |             r2 = r0;
    0x0002e314 str r6, [r0, r7]                                  |             *((r0 + r7)) = r6;
    0x0002e316 movs r2, r0                                       |             r2 = r0;
    0x0002e318 ldr r3, [r0, 4]                                   |             r3 = *((r0 + 4));
    0x0002e31a push {r4, lr}                                     |             
    0x0002e31c mov r4, r1                                        |             r4 = r1;
    0x0002e31e cmp r3, 1                                         |             
                                                                 |             if (r3 > 1) {
    0x0002e320 bgt 0x2e34e                                       |                 goto label_11;
                                                                 |             }
                                                                 |             if (r3 == 1) {
    0x0002e322 bne 0x2e32e                                       |                 
    0x0002e324 ldr r3, [r0, 8]                                   |                 r3 = *((r0 + 8));
    0x0002e326 ldr r0, [r3]                                      |                 r0 = *(r3);
                                                                 |                 if (r0 == 0) {
    0x0002e328 cbz r0, 0x2e32e                                   |                     goto label_12;
                                                                 |                 }
    0x0002e32a ldrb r3, [r0]                                     |                 r3 = *(r0);
                                                                 |                 if (r3 != 0) {
    0x0002e32c cbnz r3, 0x2e36e                                  |                     goto label_13;
                                                                 |                 }
                                                                 |             }
                                                                 | label_12:
    0x0002e32e ldr r0, [r4, 0x28]                                |             r0 = *((r4 + 0x28));
                                                                 |         }
    0x0002e330 movs r2, 0                                        |         r2 = 0;
    0x0002e332 ldr r3, [pc, 0x40]                                |         
    0x0002e334 movw r1, 0x6c6                                    |         r1 = 0x6c6;
    0x0002e338 orr r0, r0, 0x20                                  |         r0 |= 0x20;
    0x0002e33c str r0, [r4, 0x28]                                |         *((r4 + 0x28)) = r0;
    0x0002e33e add r3, pc                                        |         r3 = 0x5c6b8;
    0x0002e340 ldr r0, [pc, 0x34]                                |         
    0x0002e342 add r0, pc                                        |         r0 = 0x5c6be;
    0x0002e344 bl 0x40ed8                                        |         zbx_strdup2 ();
    0x0002e348 str r0, [r4, 0x20]                                |         *((r4 + 0x20)) = r0;
    0x0002e34a movs r0, 1                                        |         r0 = 1;
    0x0002e34c pop {r4, pc}                                      |         
                                                                 | label_11:
    0x0002e34e ldr r0, [r1, 0x28]                                |         r0 = *((r1 + 0x28));
    0x0002e350 movs r2, 0                                        |         r2 = 0;
    0x0002e352 ldr r3, [pc, 0x28]                                |         
    0x0002e354 movw r1, 0x6be                                    |         r1 = 0x6be;
    0x0002e358 orr r0, r0, 0x20                                  |         r0 |= 0x20;
    0x0002e35c str r0, [r4, 0x28]                                |         *((r4 + 0x28)) = r0;
    0x0002e35e add r3, pc                                        |         r3 = 0x5c6e0;
    0x0002e360 ldr r0, [pc, 0x1c]                                |         
    0x0002e362 add r0, pc                                        |         r0 = 0x5c6e6;
    0x0002e364 bl 0x40ed8                                        |         zbx_strdup2 ();
    0x0002e368 str r0, [r4, 0x20]                                |         *((r4 + 0x20)) = r0;
    0x0002e36a movs r0, 1                                        |         r0 = 1;
    0x0002e36c pop {r4, pc}                                      |         
                                                                 | label_13:
    0x0002e36e pop.w {r4, lr}                                    |         
    0x0002e372 b 0x2e25c                                         |         goto label_0;
                                                                 |     }
    0x0002e3ec mov r2, r0                                        |     r2 = r0;
    0x0002e3ee strd r4, r4, [sp]                                 |     __asm ("strd r4, r4, [sp]");
    0x0002e3f2 mov r1, fp                                        |     r1 = fp;
    0x0002e3f4 mov r0, r5                                        |     r0 = r5;
    0x0002e3f6 bl 0x36a4c                                        |     r0 = zbx_tcp_send_ext ();
    0x0002e3fa clz r3, r0                                        |     r3 &= r0;
    0x0002e3fe mov r4, r0                                        |     r4 = r0;
                                                                 | label_3:
    0x0002e400 lsrs r3, r3, 5                                    |     r3 >>= 5;
    0x0002e402 cmp r6, 0                                         |     
    0x0002e404 ite eq                                            |     
                                                                 |     if (r6 != 0) {
    0x0002e406 moveq r2, 0                                       |         r2 = 0;
                                                                 |     }
                                                                 |     if (r6 == 0) {
    0x0002e408 andne r2, r3, 1                                   |         r2 = r3 & 1;
                                                                 |     }
                                                                 |     if (r2 != 0) {
    0x0002e40c cbnz r2, 0x2e46c                                  |         goto label_14;
                                                                 |     }
    0x0002e40e cmp.w sb, 0                                       |     
    0x0002e412 ite eq                                            |     
                                                                 |     if (sb != 0) {
    0x0002e414 moveq r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (sb == 0) {
    0x0002e416 andne r3, r3, 1                                   |         r3 &= 1;
                                                                 |     }
                                                                 |     if (r3 != 0) {
    0x0002e41a cbz r3, 0x2e432                                   |         
                                                                 | label_2:
    0x0002e41c mov r0, sb                                        |         r0 = sb;
    0x0002e41e blx 0xdf68                                        |         fcn_0000df68 ();
    0x0002e422 movs r3, 0                                        |         r3 = 0;
    0x0002e424 mov r2, r0                                        |         r2 = r0;
    0x0002e426 mov r1, sb                                        |         r1 = sb;
    0x0002e428 mov r0, r5                                        |         r0 = r5;
    0x0002e42a strd r3, r3, [sp]                                 |         __asm ("strd r3, r3, [sp]");
    0x0002e42e bl 0x36a4c                                        |         zbx_tcp_send_ext ();
                                                                 |     }
                                                                 |     if (r4 == 0) {
    0x0002e432 cbz r4, 0x2e494                                   |         goto label_15;
                                                                 |     }
    0x0002e434 mov r0, r5                                        |     r0 = r5;
    0x0002e436 bl 0x3681c                                        |     zbx_tcp_close ();
    0x0002e438 invalid                                           |     
    0x0002e43a ldr r3, [pc, 0x9c]                                |     
    0x0002e43c ldr r3, [r7, r3]                                  |     r3 = *((r7 + r3));
    0x0002e43e ldr r3, [r3]                                      |     r3 = *(0x2e4da);
    0x0002e440 cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x0002e442 bgt 0x2e47a                                       |         goto label_16;
                                                                 |     }
                                                                 | label_1:
    0x0002e444 ldr r2, [pc, 0x94]                                |     
    0x0002e446 ldr r3, [pc, 0x84]                                |     r3 = *(0x2e4ce);
    0x0002e448 add r2, pc                                        |     r2 = 0x5c928;
    0x0002e44a ldr r3, [r2, r3]                                  |     r3 = *(0x5c928);
    0x0002e44c ldr r2, [r3]                                      |     r2 = *(0x5c928);
    0x0002e44e ldr.w r3, [sp, 0xdbc]                             |     r3 = *(arg_dbch);
    0x0002e452 eors r2, r3                                       |     r2 ^= r3;
    0x0002e454 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x0002e458 bne 0x2e4c2                                       |         goto label_17;
                                                                 |     }
    0x0002e45a movs r0, 0                                        |     r0 = 0;
    0x0002e45c addw sp, sp, 0xdc4                                |     __asm ("addw sp, sp, 0xdc4");
    0x0002e460 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 |     do {
    0x0002e464 blx r6                                            |         r0 = uint32_t (*r6)() ();
                                                                 |         if (r0 == 0) {
    0x0002e466 cbz r0, 0x2e48c                                   |             goto label_18;
                                                                 |         }
    0x0002e468 adds r0, 1                                        |         r0++;
                                                                 |         if (r0 == 1) {
    0x0002e46a beq 0x2e4a2                                       |             goto label_19;
                                                                 |         }
                                                                 | label_14:
    0x0002e46c mov r0, r5                                        |         r0 = r5;
    0x0002e46e bl 0x37410                                        |         r0 = zbx_tcp_recv_line ();
    0x0002e472 mov sl, r0                                        |         sl = r0;
    0x0002e474 cmp r0, 0                                         |         
    0x0002e476 bne 0x2e464                                       |         
                                                                 |     } while (r0 != 0);
    0x0002e478 b 0x2e4ac                                         |     goto label_20;
                                                                 | label_16:
    0x0002e47a bl 0x36860                                        |     zbx_socket_strerror ();
    0x0002e47e ldr r1, [pc, 0x60]                                |     
    0x0002e480 mov r2, r0                                        |     r2 = r0;
    0x0002e482 movs r0, 4                                        |     r0 = 4;
    0x0002e484 add r1, pc                                        |     r1 = 0x5c96a;
    0x0002e486 bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x0002e48a b 0x2e444                                         |     goto label_1;
                                                                 | label_18:
    0x0002e48c cmp.w sb, 0                                       |     
                                                                 |     if (sb != 0) {
    0x0002e490 bne 0x2e41c                                       |         goto label_2;
                                                                 |     }
                                                                 |     if (r4 != 0) {
    0x0002e492 cbnz r4, 0x2e4ac                                  |         goto label_20;
                                                                 |     }
                                                                 | label_15:
    0x0002e494 movs r3, 1                                        |     r3 = 1;
    0x0002e496 mov r0, r5                                        |     r0 = r5;
    0x0002e498 str.w r3, [r8]                                    |     __asm ("str.w r3, [r8]");
    0x0002e49c bl 0x3681c                                        |     zbx_tcp_close ();
    0x0002e4a0 b 0x2e444                                         |     goto label_1;
                                                                 | label_19:
    0x0002e4a2 ldr r3, [pc, 0x34]                                |     
    0x0002e4a4 ldr r3, [r7, r3]                                  |     r3 = *((r7 + r3));
    0x0002e4a6 ldr r3, [r3]                                      |     r3 = *(0x2e4da);
    0x0002e4a8 cmp r3, 3                                         |     
    0x0002e4aa bgt 0x2e4b4                                       |     
                                                                 |     while (1) {
                                                                 | label_20:
    0x0002e4ac mov r0, r5                                        |         r0 = r5;
    0x0002e4ae bl 0x3681c                                        |         zbx_tcp_close ();
    0x0002e4b2 b 0x2e444                                         |         goto label_1;
    0x0002e4b4 ldr r1, [pc, 0x2c]                                |         
    0x0002e4b6 mov r2, sl                                        |         r2 = sl;
    0x0002e4b8 movs r0, 4                                        |         r0 = 4;
    0x0002e4ba add r1, pc                                        |         r1 = 0x5c9a2;
    0x0002e4bc bl 0x30d1c                                        |         zbx_zabbix_log ();
    0x0002e4c0 b 0x2e4ac                                         |         
                                                                 |     }
                                                                 | label_17:
    0x0002e4c2 blx 0xe158                                        |     fcn_0000e158 ();
    0x0002e4c6 nop                                               |     
                                                                 |     if (r0 > 4) {
    0x0002e4c8 bhi 0x2e548                                       |         goto label_21;
                                                                 |     }
    0x0002e4ca movs r2, r0                                       |     r2 = r0;
    0x0002e4cc lsls r4, r2, 0xe                                  |     r4 = r2 << 0xe;
    0x0002e4ce movs r0, r0                                       |     
                                                                 |     if (r0 <= r0) {
    0x0002e4d0 bhi 0x2e530                                       |         
    0x0002e4d2 movs r2, r0                                       |         r2 = r0;
    0x0002e4d4 lsls r0, r0, 0xf                                  |         r0 <<= 0xf;
    0x0002e4d6 movs r0, r0                                       |         
    0x0002e4d8 lsls r4, r7, 0xe                                  |         r4 = r7 << 0xe;
    0x0002e4da movs r0, r0                                       |         
    0x0002e4dc bvc 0x2e400                                       |         __asm ("bvc 0x2e400");
                                                                 |         goto label_3;
    0x0002e4de movs r2, r0                                       |         r2 = r0;
    0x0002e4e0 strb r0, [r5, r7]                                 |         *((r5 + r7)) = r0;
    0x0002e4e2 movs r2, r0                                       |         r2 = r0;
    0x0002e4e4 strb r2, [r1, r6]                                 |         *((r1 + r6)) = r2;
    0x0002e4e6 movs r2, r0                                       |         r2 = r0;
                                                                 |     }
    0x0002e530 ldrb.w fp, [r5, 0x377]                            |     fp = *((r5 + 0x377));
                                                                 |     if (r7 != 0) {
                                                                 |         do {
    0x0002e532 cbz r7, 0x2e592                                   |             
    0x0002e534 vmov.i64 d17, 0xffff                              |             __asm ("vmov.i64 d17, 0xffff");
    0x0002e538 add.w r6, sp, 0x16                                |             r6 += var_16h;
    0x0002e53c vmov.i32 d16, 0                                   |             __asm ("vmov.i32 d16, 0");
    0x0002e540 movs r3, 2                                        |             r3 = 2;
    0x0002e542 mov r0, r7                                        |             r0 = r7;
    0x0002e544 mov r2, r6                                        |             r2 = r6;
    0x0002e546 mov.w r1, -1                                      |             r1 = -1;
                                                                 | label_21:
    0x0002e548 adds r1, 0xff                                     |             r1 += 0xff;
    0x0002e54a vstr d17, [sp, 8]                                 |             __asm ("vstr d17, [sp, 8]");
    0x0002e54e vstr d16, [sp]                                    |             __asm ("vstr d16, [sp]");
    0x0002e552 bl 0x419a8                                        |             r0 = is_uint_n_range ();
    0x0002e556 mov r3, r0                                        |             r3 = r0;
                                                                 |             if (r0 == 0) {
    0x0002e558 cbnz r0, 0x2e592                                  |                 
    0x0002e55a ldr r2, [pc, 0xc4]                                |                 
    0x0002e55c mov r0, r8                                        |                 r0 = r8;
    0x0002e55e ldrh r1, [r6]                                     |                 r1 = *(r6);
    0x0002e560 ldr r2, [r5, r2]                                  |                 r2 = *((r5 + r2));
    0x0002e562 add r5, sp, 0x18                                  |                 r5 += var_18h;
    0x0002e564 strd r3, r3, [sp]                                 |                 __asm ("strd r3, r3, [sp]");
    0x0002e568 ldr r2, [r2]                                      |                 r2 = *(0x2e622);
    0x0002e56a str r5, [sp, 8]                                   |                 var_8h = r5;
    0x0002e56c bl 0x2e384                                        |                 r0 = tcp_expect ();
                                                                 |                 if (r0 != 0) {
    0x0002e570 cbnz r0, 0x2e5b0                                  |                     goto label_22;
                                                                 |                 }
    0x0002e572 ldr r3, [r5]                                      |                 r3 = *(r5);
    0x0002e574 ldr r2, [r4, 0x28]                                |                 r2 = *((r4 + 0x28));
    0x0002e576 str r3, [r4, 8]                                   |                 *((r4 + 8)) = r3;
    0x0002e578 asrs r3, r3, 0x1f                                 |                 r3 >>= 0x1f;
    0x0002e57a orr r2, r2, 1                                     |                 r2 |= 1;
    0x0002e57e str r2, [r4, 0x28]                                |                 *((r4 + 0x28)) = r2;
    0x0002e580 str r3, [r4, 0xc]                                 |                 *((r4 + 0xc)) = r3;
    0x0002e582 b 0x2e5b0                                         |                 
                                                                 |             }
                                                                 |         } else {
    0x0002e592 ldr r0, [r4, 0x28]                                |             r0 = *((r4 + 0x28));
    0x0002e594 movs r2, 0                                        |             r2 = 0;
    0x0002e596 ldr r3, [pc, 0x90]                                |             
    0x0002e598 movs r1, 0x64                                     |             r1 = 0x64;
    0x0002e59a orr r0, r0, 0x20                                  |             r0 |= 0x20;
    0x0002e59e str r0, [r4, 0x28]                                |             *((r4 + 0x28)) = r0;
    0x0002e5a0 add r3, pc                                        |             r3 = 0x5cbce;
    0x0002e5a2 ldr r0, [pc, 0x88]                                |             
    0x0002e5a4 add r0, pc                                        |             r0 = 0x5cbd6;
    0x0002e5a6 bl 0x40ed8                                        |             r0 = zbx_strdup2 ();
    0x0002e5aa mov r3, r0                                        |             r3 = r0;
                                                                 | label_4:
    0x0002e5ac movs r0, 1                                        |             r0 = 1;
    0x0002e5ae str r3, [r4, 0x20]                                |             *((r4 + 0x20)) = r3;
                                                                 |         }
                                                                 | label_22:
    0x0002e5b0 ldr r2, [pc, 0x7c]                                |         
    0x0002e5b2 ldr r3, [pc, 0x60]                                |         r3 = *(0x2e616);
    0x0002e5b4 add r2, pc                                        |         r2 = 0x5cbe8;
    0x0002e5b6 ldr r3, [r2, r3]                                  |         r3 = imp.__aeabi_unwind_cpp_pr0;
    0x0002e5b8 ldr r2, [r3]                                      |         r2 = imp.__aeabi_unwind_cpp_pr0;
    0x0002e5ba ldr r3, [sp, 0x11c]                               |         r3 = *(arg_11ch);
    0x0002e5bc eors r2, r3                                       |         r2 ^= r3;
    0x0002e5be mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0002e5c2 bne 0x2e60c                                       |             goto label_23;
                                                                 |         }
    0x0002e5c4 add sp, 0x120                                     |         
    0x0002e5c6 pop.w {r4, r5, r6, r7, r8, pc}                    |         
                                                                 | label_5:
    0x0002e5d0 strb r0, [r0, 0xa]                                |         *((r0 + 0xa)) = r0;
    0x0002e5d2 mov r0, r8                                        |         r0 = r8;
    0x0002e5d4 bl 0x4465c                                        |         zbx_strlcpy ();
    0x0002e5d8 b 0x2e532                                         |         
                                                                 |     } while (1);
                                                                 |     do {
    0x0002e5dc movs r2, 0                                        |         r2 = 0;
    0x0002e5de ldr r3, [pc, 0x54]                                |         
    0x0002e5e0 movs r1, 0x56                                     |         r1 = 0x56;
    0x0002e5e2 orr r0, r0, 0x20                                  |         r0 |= 0x20;
    0x0002e5e6 str r0, [r4, 0x28]                                |         *((r4 + 0x28)) = r0;
    0x0002e5e8 add r3, pc                                        |         r3 = 0x5cc22;
    0x0002e5ea ldr r0, [pc, 0x4c]                                |         
    0x0002e5ec add r0, pc                                        |         r0 = 0x5cc2a;
    0x0002e5ee bl 0x40ed8                                        |         r0 = zbx_strdup2 ();
    0x0002e5f2 mov r3, r0                                        |         r3 = r0;
    0x0002e5f4 b 0x2e5ac                                         |         goto label_4;
                                                                 | label_23:
    0x0002e60c blx 0xe158                                        |         fcn_0000e158 ();
    0x0002e610 bvs 0x2e5dc                                       |         __asm ("bvs 0x2e5dc");
                                                                 |     } while (1);
    0x0002e612 movs r2, r0                                       |     r2 = r0;
    0x0002e614 lsls r4, r2, 0xe                                  |     r4 = r2 << 0xe;
    0x0002e616 movs r0, r0                                       |     
    0x0002e618 bvs 0x2e5d0                                       |     __asm ("bvs 0x2e5d0");
                                                                 |     goto label_5;
    0x0002e61a movs r2, r0                                       |     r2 = r0;
    0x0002e61c strb r0, [r4, r5]                                 |     *((r4 + r5)) = r0;
    0x0002e61e movs r2, r0                                       |     r2 = r0;
    0x0002e620 lsls r4, r4, 0xc                                  |     r4 <<= 0xc;
    0x0002e622 movs r0, r0                                       |     
    0x0002e624 strb r0, [r0, r4]                                 |     *((r0 + r4)) = r0;
    0x0002e626 movs r2, r0                                       |     r2 = r0;
    0x0002e628 movs r7, 0xe8                                     |     r7 = 0xe8;
    0x0002e62a movs r2, r0                                       |     r2 = r0;
    0x0002e62c adds r0, 0x44                                     |     r0 += 0x44;
    0x0002e62e movs r2, r0                                       |     r2 = r0;
    0x0002e630 bvs 0x2e67c                                       |     __asm ("bvs 0x2e67c");
    0x0002e632 movs r2, r0                                       |     r2 = r0;
    0x0002e634 asrs r0, r6, 1                                    |     r0 = r6 >> 1;
    0x0002e636 movs r2, r0                                       |     r2 = r0;
    0x0002e638 cmp r7, 0xfc                                      |     
    0x0002e63a movs r2, r0                                       |     r2 = r0;
    0x0002e63c strb r0, [r1, r2]                                 |     *((r1 + r2)) = r0;
    0x0002e63e movs r2, r0                                       |     r2 = r0;
                                                                 |     do {
    0x0002e670 str r3, [r4, 0x28]                                |         *((r4 + 0x28)) = r3;
    0x0002e672 blx 0xe104                                        |         r0 = fcn_0000e104 ();
    0x0002e676 asrs r3, r0, 0x1f                                 |         r3 = r0 >> 0x1f;
    0x0002e678 strd r0, r3, [r4, 8]                              |         __asm ("strd r0, r3, [r4, 8]");
    0x0002e67c movs r0, 0                                        |         r0 = 0;
    0x0002e67e ldr r2, [pc, 0xd4]                                |         
    0x0002e680 ldr r3, [pc, 0xcc]                                |         r3 = *(0x2e750);
    0x0002e682 add r2, pc                                        |         r2 = 0x5cddc;
    0x0002e684 ldr r3, [r2, r3]                                  |         r3 = imp.__aeabi_unwind_cpp_pr0;
    0x0002e686 ldr r2, [r3]                                      |         r2 = imp.__aeabi_unwind_cpp_pr0;
    0x0002e688 ldr r3, [sp, 0x84]                                |         r3 = *(arg_84h);
    0x0002e68a eors r2, r3                                       |         r2 ^= r3;
    0x0002e68c mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 == r3) {
    0x0002e690 bne 0x2e746                                       |             
    0x0002e692 add sp, 0x8c                                      |             
    0x0002e694 pop {r4, r5, pc}                                  |             
                                                                 |         }
    0x0002e746 blx 0xe158                                        |         fcn_0000e158 ();
    0x0002e74a nop                                               |         
    0x0002e74c bpl 0x2e670                                       |         
                                                                 |     } while (r2 >= r3);
    0x0002e74e movs r2, r0                                       |     r2 = r0;
    0x0002e750 lsls r4, r2, 0xe                                  |     r4 = r2 << 0xe;
    0x0002e752 movs r0, r0                                       |     
                                                                 |     if (r0 < r0) {
    0x0002e754 bpl 0x2e804                                       |         
    0x0002e756 movs r2, r0                                       |         r2 = r0;
    0x0002e758 lsrs r4, r6, 0x1e                                 |         r4 = r6 >> 0x1e;
    0x0002e75a movs r2, r0                                       |         r2 = r0;
    0x0002e75c strh r0, [r6, r7]                                 |         *((r6 + r7)) = r0;
    0x0002e75e movs r2, r0                                       |         r2 = r0;
    0x0002e760 invalid                                           |         
                                                                 |     }
    0x0002e804 orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x0002e808 str r3, [r4, 0x28]                                |     *((r4 + 0x28)) = r3;
    0x0002e80a bl 0x36860                                        |     zbx_socket_strerror ();
    0x0002e80e ldr r1, [pc, 0x18c]                               |     
    0x0002e810 mov r2, r0                                        |     r2 = r0;
    0x0002e812 mov r0, r5                                        |     r0 = r5;
    0x0002e814 add r1, pc                                        |     r1 = 0x5d1b6;
    0x0002e816 bl 0x44820                                        |     zbx_dsprintf ()
    0x0002e818 invalid                                           |     
                                                                 |     do {
                                                                 | label_6:
    0x0002e81c mov r0, sb                                        |         r0 = sb;
    0x0002e81e bl 0x3681c                                        |         zbx_tcp_close ();
    0x0002e822 ldr r2, [pc, 0x17c]                               |         
    0x0002e824 add.w r1, sp, 0x15c0                              |         r1 += arg_15c0h;
    0x0002e828 ldr r3, [pc, 0x160]                               |         r3 = *(0x2e98c);
    0x0002e82a adds r1, 4                                        |         r1 += 4;
    0x0002e82c add r2, pc                                        |         r2 = 0x5d1d2;
    0x0002e82e ldr r3, [r2, r3]                                  |         r3 = imp.__aeabi_unwind_cpp_pr0;
    0x0002e830 ldr r2, [r3]                                      |         r2 = imp.__aeabi_unwind_cpp_pr0;
    0x0002e832 ldr r3, [r1]                                      |         r3 = *(r1);
    0x0002e834 eors r2, r3                                       |         r2 ^= r3;
    0x0002e836 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0002e83a bne.w 0x2e982                                     |             goto label_24;
                                                                 |         }
    0x0002e83e add.w sp, sp, 0x15c0                              |         
    0x0002e842 add sp, 8                                         |         
    0x0002e844 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |         
                                                                 | label_7:
    0x0002e8fc add r7, pc                                        |         r7 += pc;
    0x0002e8fe mov r1, r7                                        |         r1 = r7;
    0x0002e900 bl 0x3b3dc                                        |         zbx_json_value_by_name ();
    0x0002e904 ldr r3, [r4, 0x28]                                |         r3 = *((r4 + 0x28));
                                                                 |         if (r0 == 0) {
    0x0002e906 cbz r0, 0x2e91e                                   |             goto label_25;
                                                                 |         }
    0x0002e908 ldr r1, [pc, 0xb0]                                |         
    0x0002e90a orr r3, r3, 0x20                                  |         r3 |= 0x20;
    0x0002e90e mov r2, r7                                        |         r2 = r7;
    0x0002e910 mov r0, r5                                        |         r0 = r5;
    0x0002e912 str r3, [r4, 0x28]                                |         *((r4 + 0x28)) = r3;
    0x0002e914 add r1, pc                                        |         r1 = 0x5d2d4;
    0x0002e916 bl 0x44820                                        |         zbx_dsprintf ()
    0x0002e918 vsubl.u8 q3, d3, d16                              |         __asm ("vsubl.u8 q3, d3, d16");
    0x0002e91c b 0x2e81c                                         |         
                                                                 |     } while (1);
                                                                 | label_25:
    0x0002e91e ldr r1, [pc, 0xa0]                                |     
    0x0002e920 orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x0002e924 mov r2, r6                                        |     r2 = r6;
    0x0002e926 str r3, [r4, 0x28]                                |     *((r4 + 0x28)) = r3;
    0x0002e928 add r1, pc                                        |     r1 = 0x5d2ee;
    0x0002e92a bl 0x44820                                        |     zbx_dsprintf ()
    0x0002e92e str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x0002e930 b 0x2e81c                                         |     goto label_6;
                                                                 | label_24:
    0x0002e982 blx 0xe158                                        |     fcn_0000e158 ();
    0x0002e986 nop                                               |     
                                                                 |     if (r0 < 0) {
    0x0002e988 bmi 0x2ea0c                                       |         goto label_26;
                                                                 |     }
    0x0002e98a movs r2, r0                                       |     r2 = r0;
    0x0002e98c lsls r4, r2, 0xe                                  |     r4 = r2 << 0xe;
    0x0002e98e movs r0, r0                                       |     
                                                                 |     if (r0 < r0) {
    0x0002e990 bmi 0x2e9ec                                       |         goto label_27;
                                                                 |     }
    0x0002e992 movs r2, r0                                       |     r2 = r0;
    0x0002e994 lsls r0, r0, 0xf                                  |     r0 <<= 0xf;
    0x0002e996 movs r0, r0                                       |     
    0x0002e998 lsls r4, r4, 0xc                                  |     r4 <<= 0xc;
    0x0002e99a movs r0, r0                                       |     
    0x0002e99c strh r4, [r3, r5]                                 |     *((r3 + r5)) = r4;
    0x0002e99e movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 <= r0) {
    0x0002e9a0 blo 0x2e8fc                                       |         goto label_7;
                                                                 |     }
    0x0002e9a2 movs r2, r0                                       |     r2 = r0;
    0x0002e9a4 strh r0, [r0, r2]                                 |     *((r0 + r2)) = r0;
    0x0002e9a6 movs r2, r0                                       |     r2 = r0;
    0x0002e9a8 strh r2, [r7, r2]                                 |     *((r7 + r2)) = r2;
    0x0002e9aa movs r2, r0                                       |     r2 = r0;
    0x0002e9ac strh r4, [r4, r3]                                 |     *((r4 + r3)) = r4;
    0x0002e9ae movs r2, r0                                       |     r2 = r0;
    0x0002e9b0 strh r0, [r1, r3]                                 |     *((r1 + r3)) = r0;
    0x0002e9b2 movs r2, r0                                       |     r2 = r0;
    0x0002e9b4 invalid                                           |     
                                                                 | label_8:
    0x0002e9b8 sbcs r0, r4, 0x810000                             |     __asm ("sbcs r0, r4, 0x810000");
    0x0002e9bc strh r4, [r0, r1]                                 |     *((r0 + r1)) = r4;
    0x0002e9be movs r2, r0                                       |     r2 = r0;
    0x0002e9c0 strh r0, [r1, r1]                                 |     *((r1 + r1)) = r0;
    0x0002e9c2 movs r2, r0                                       |     r2 = r0;
    0x0002e9c4 str r4, [r3, r7]                                  |     *((r3 + r7)) = r4;
    0x0002e9c6 movs r2, r0                                       |     r2 = r0;
    0x0002e9c8 str r2, [r1, r7]                                  |     *((r1 + r7)) = r2;
    0x0002e9ca movs r2, r0                                       |     r2 = r0;
    0x0002e9cc str r2, [r4, r7]                                  |     *((r4 + r7)) = r2;
    0x0002e9ce movs r2, r0                                       |     r2 = r0;
                                                                 | label_27:
    0x0002e9ec ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x0002e9ee mov.w r1, 0x1000                                  |     r1 = 0x1000;
    0x0002e9f2 ldr r3, [r3]                                      |     r3 = *(r3);
    0x0002e9f4 str r3, [r0]                                      |     *(r0) = r3;
    0x0002e9f6 mov.w r3, 0                                       |     r3 = 0;
    0x0002e9fa mov r0, r4                                        |     r0 = r4;
    0x0002e9fc bl 0x3aae4                                        |     zbx_json_init ();
    0x0002ea00 ldr r2, [pc, 0x54]                                |     r2 = *(0x2ea58);
    0x0002ea02 movs r3, 1                                        |     r3 = 1;
    0x0002ea04 ldr r1, [pc, 0x54]                                |     r1 = *(0x2ea5c);
    0x0002ea06 mov r0, r4                                        |     r0 = r4;
    0x0002ea08 movs r0, r0                                       |     
    0x0002ea0a asrs r0, r0, 0x20                                 |     r0 >>= 0x20;
                                                                 | label_26:
    0x0002ea0c bl 0x3ac9c                                        |     zbx_json_addstring ();
    0x0002ea10 mov r3, r5                                        |     r3 = r5;
    0x0002ea12 mov r2, r7                                        |     r2 = r7;
    0x0002ea14 mov r1, r6                                        |     r1 = r6;
    0x0002ea16 mov r0, r4                                        |     r0 = r4;
    0x0002ea18 bl 0x2e780                                        |     fcn_0002e780 (r0, r1, r2, r3);
    0x0002ea1c mov r0, r4                                        |     r0 = r4;
    0x0002ea1e bl 0x3ac14                                        |     zbx_json_free ();
    0x0002ea22 ldr r2, [pc, 0x3c]                                |     
    0x0002ea24 add.w r1, sp, 0x1000                              |     r1 += arg_1000h;
    0x0002ea28 ldr r3, [pc, 0x28]                                |     r3 = *(0x2ea54);
    0x0002ea2a adds r1, 0x1c                                     |     r1 += 0x1c;
    0x0002ea2c ldr r0, [r5, 0x28]                                |     r0 = *((r5 + 0x28));
    0x0002ea2e add r2, pc                                        |     r2 = 0x5d494;
    0x0002ea30 ldr r3, [r2, r3]                                  |     r3 = imp.__aeabi_unwind_cpp_pr0;
    0x0002ea32 sbfx r0, r0, 5, 1                                 |     __asm ("sbfx r0, r0, 5, 1");
    0x0002ea36 ldr r2, [r3]                                      |     r2 = imp.__aeabi_unwind_cpp_pr0;
    0x0002ea38 ldr r3, [r1]                                      |     r3 = *(r1);
    0x0002ea3a eors r2, r3                                       |     r2 ^= r3;
                                                                 |     do {
    0x0002ea3c mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 == r3) {
    0x0002ea40 bne 0x2ea4a                                       |             
    0x0002ea42 add.w sp, sp, 0x1020                              |             
    0x0002ea46 add sp, 4                                         |             
    0x0002ea48 pop {r4, r5, r6, r7, pc}                          |             
                                                                 |         }
    0x0002ea4a blx 0xe158                                        |         fcn_0000e158 ();
    0x0002ea4e nop                                               |         
    0x0002ea50 bne 0x2ea3c                                       |         
                                                                 |     } while (r2 != r3);
    0x0002ea52 movs r2, r0                                       |     r2 = r0;
    0x0002ea54 lsls r4, r2, 0xe                                  |     r4 = r2 << 0xe;
    0x0002ea56 movs r0, r0                                       |     
    0x0002ea58 mov r0, lr                                        |     r0 = lr;
    0x0002ea5a movs r2, r0                                       |     r2 = r0;
    0x0002ea5c adcs r0, sl, 1                                    |     __asm ("adcs r0, sl, 1");
                                                                 |     if (r2 != r0) {
    0x0002ea60 bne 0x2e9b8                                       |         goto label_8;
                                                                 |     }
    0x0002ea62 movs r2, r0                                       |     r2 = r0;
                                                                 | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x2d7c0 */
                                                                     | #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_6ch;
                                                                     |     int16_t var_70h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     | label_2:
    0x0002bf0c ldr r2, [pc, 0x1c0]                                   |     
    0x0002bf0e ldr r3, [pc, 0x1c4]                                   |     r3 = *(0x2c0d6);
    0x0002bf10 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0002bf14 mov r8, r1                                            |     r8 = r1;
    0x0002bf16 add r2, pc                                            |     r2 = 0x57fea;
    0x0002bf18 vpush {d8, d9}                                        |     __asm ("vpush {d8, d9}");
    0x0002bf1c sub.w sp, sp, 0x4000                                  |     
    0x0002bf20 mov r4, r0                                            |     r4 = r0;
    0x0002bf22 ldr r3, [r2, r3]                                      |     
    0x0002bf24 sub sp, 0x74                                          |     
    0x0002bf26 add.w r1, sp, 0x4000                                  |     r1 += arg_4000h;
    0x0002bf2a adds r1, 0x6c                                         |     r1 += 0x6c;
    0x0002bf2c ldr r3, [r3]                                          |     r3 = *(0x57fea);
    0x0002bf2e str r3, [r1]                                          |     *(r1) = r3;
    0x0002bf30 mov.w r3, 0                                           |     r3 = 0;
    0x0002bf34 bl 0x3ffc0                                            |     zbx_time ();
    0x0002bf38 movs r1, 0                                            |     r1 = 0;
    0x0002bf3a mov r0, r4                                            |     r0 = r4;
    0x0002bf3c vmov.f64 d9, d0                                       |     __asm ("vmov.f64 d9, d0");
    0x0002bf40 blx 0xe030                                            |     fcntl64 ();
    0x0002bf44 ldr r3, [pc, 0x190]                                   |     
    0x0002bf46 adds r2, r0, 1                                        |     r2 = r0 + 1;
    0x0002bf48 add r3, pc                                            |     r3 = 0x58024;
                                                                     |     if (r2 == r0) {
    0x0002bf4a beq.w 0x2c080                                         |         goto label_3;
                                                                     |     }
    0x0002bf4e ldr r2, [pc, 0x18c]                                   |     r2 = *(0x2c0de);
    0x0002bf50 mov r6, r0                                            |     r6 = r0;
    0x0002bf52 ldr r7, [r3, r2]                                      |     r7 = *((r3 + r2));
    0x0002bf54 vldr s15, [r7]                                        |     __asm ("vldr s15, [r7]");
    0x0002bf58 vcvt.f64.s32 d8, s15                                  |     __asm ("vcvt.f64.s32 d8, s15");
    0x0002bf5c bl 0x3ffc0                                            |     zbx_time ();
    0x0002bf60 vsub.f64 d0, d0, d9                                   |     __asm ("vsub.f64 d0, d0, d9");
    0x0002bf64 vcmpe.f64 d8, d0                                      |     __asm ("vcmpe.f64 d8, d0");
    0x0002bf68 vmrs apsr_nzcv, fpscr                                 |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                     |     if (r2 < r0) {
    0x0002bf6c bmi 0x2c00c                                           |         goto label_4;
                                                                     |     }
    0x0002bf6e add.w sl, sp, 0x70                                    |     sl += var_70h;
    0x0002bf72 add r5, sp, 0x6c                                      |     r5 += var_6ch;
    0x0002bf74 sub.w sb, sl, 0x6c                                    |     sb = sl - 0x6c;
    0x0002bf78 mov r0, sb                                            |     r0 = sb;
    0x0002bf7a bl 0x4a220                                            |     zbx_md5_init ();
    0x0002bf7e b 0x2bfa4                                             |     
                                                                     |     while (r4 > r0) {
    0x0002bf80 vldr s15, [r7]                                        |         __asm ("vldr s15, [r7]");
    0x0002bf84 vcvt.f64.s32 d8, s15                                  |         __asm ("vcvt.f64.s32 d8, s15");
    0x0002bf88 bl 0x3ffc0                                            |         zbx_time ();
    0x0002bf8c vsub.f64 d0, d0, d9                                   |         __asm ("vsub.f64 d0, d0, d9");
    0x0002bf90 vcmpe.f64 d8, d0                                      |         __asm ("vcmpe.f64 d8, d0");
    0x0002bf94 vmrs apsr_nzcv, fpscr                                 |         __asm ("vmrs apsr_nzcv, fpscr");
                                                                     |         if (r2 < r0) {
    0x0002bf98 bmi 0x2c060                                           |             goto label_5;
                                                                     |         }
    0x0002bf9a mov r2, r4                                            |         r2 = r4;
    0x0002bf9c mov r1, r5                                            |         r1 = r5;
    0x0002bf9e mov r0, sb                                            |         r0 = sb;
    0x0002bfa0 bl 0x4a250                                            |         zbx_md5_append ();
    0x0002bfa4 mov.w r2, 0x4000                                      |         r2 = 0x4000;
    0x0002bfa8 mov r1, r5                                            |         r1 = r5;
    0x0002bfaa mov r0, r6                                            |         r0 = r6;
    0x0002bfac blx 0xde54                                            |         r0 = fcn_0000de54 ();
    0x0002bfb0 subs r4, r0, 0                                        |         r4 = r0 - 0;
    0x0002bfb2 bgt 0x2bf80                                           |         
                                                                     |     }
    0x0002bfb4 mov r0, sb                                            |     r0 = sb;
    0x0002bfb6 sub.w r1, sl, 0x14                                    |     r1 = sl - 0x14;
    0x0002bfba bl 0x4a318                                            |     zbx_md5_finish ();
    0x0002bfbe cmp r4, 0                                             |     
                                                                     |     if (r4 != 0) {
    0x0002bfc0 bne 0x2c0aa                                           |         goto label_6;
                                                                     |     }
    0x0002bfc2 ldr r0, [pc, 0x11c]                                   |     
    0x0002bfc4 sub.w r7, sl, 0x15                                    |     r7 = sl - 0x15;
    0x0002bfc8 ldr.w sl, [pc, 0x118]                                 |     
    0x0002bfcc movs r3, 0x21                                         |     r3 = 0x21;
    0x0002bfce mov r2, r4                                            |     r2 = r4;
    0x0002bfd0 movw r1, 0x2e9                                        |     r1 = 0x2e9;
    0x0002bfd4 add r0, pc                                            |     r0 = 0x580ba;
    0x0002bfd6 movs r5, 0x21                                         |     r5 = 0x21;
    0x0002bfd8 bl 0x40dd8                                            |     zbx_malloc2 ();
    0x0002bfdc add sl, pc                                            |     sl = 0x580c4;
    0x0002bfde mov fp, r0                                            |     
    0x0002bfe0 add.w sb, r0, r5                                      |     sb = r0 + r5;
                                                                     |     do {
    0x0002bfe4 mov r1, r5                                            |         r1 = r5;
    0x0002bfe6 sub.w r0, sb, r5                                      |         r0 = sb - r5;
    0x0002bfea ldrb r3, [r7, 1]!                                     |         r3 = *((r7 += 1));
    0x0002bfee subs r5, 2                                            |         r5 -= 2;
    0x0002bff0 mov r2, sl                                            |         r2 = sl;
    0x0002bff2 bl 0x43f38                                            |         zbx_snprintf ();
    0x0002bff6 cmp r5, 1                                             |         
    0x0002bff8 bne 0x2bfe4                                           |         
                                                                     |     } while (r5 != 1);
    0x0002bffa ldr.w r3, [r8, 0x28]                                  |     r3 = *((r8 + 0x28));
    0x0002bffe str.w fp, [r8, 0x18]                                  |     __asm ("str.w fp, [r8, 0x18]");
    0x0002c002 orr r3, r3, 4                                         |     r3 |= 4;
    0x0002c006 str.w r3, [r8, 0x28]                                  |     __asm ("str.w r3, [r8, 0x28]");
    0x0002c00a b 0x2c030                                             |     goto label_7;
                                                                     | label_4:
    0x0002c00c ldr.w r1, [r8, 0x28]                                  |     r1 = *((r8 + 0x28));
    0x0002c010 movs r2, 0                                            |     r2 = 0;
    0x0002c012 ldr r3, [pc, 0xd4]                                    |     
    0x0002c014 ldr r0, [pc, 0xd4]                                    |     
    0x0002c016 orr r1, r1, 0x20                                      |     r1 |= 0x20;
    0x0002c01a str.w r1, [r8, 0x28]                                  |     __asm ("str.w r1, [r8, 0x28]");
    0x0002c01e add r3, pc                                            |     r3 = 0x5810c;
    0x0002c020 add r0, pc                                            |     r0 = 0x58110;
    0x0002c022 movw r1, 0x2cd                                        |     r1 = 0x2cd;
    0x0002c026 bl 0x40ed8                                            |     zbx_strdup2 ();
                                                                     |     do {
                                                                     | label_1:
    0x0002c02a movs r4, 1                                            |         r4 = 1;
    0x0002c02c str.w r0, [r8, 0x20]                                  |         __asm ("str.w r0, [r8, 0x20]");
                                                                     | label_7:
    0x0002c030 mov r0, r6                                            |         r0 = r6;
    0x0002c032 blx 0xe0ac                                            |         fcn_0000e0ac ();
                                                                     | label_0:
    0x0002c036 ldr r2, [pc, 0xb8]                                    |         
    0x0002c038 add.w r1, sp, 0x4000                                  |         r1 += arg_4000h;
    0x0002c03c ldr r3, [pc, 0x94]                                    |         r3 = *(0x2c0d4);
    0x0002c03e adds r1, 0x6c                                         |         r1 += 0x6c;
    0x0002c040 add r2, pc                                            |         r2 = 0x58136;
    0x0002c042 ldr r3, [r2, r3]                                      |         r3 = imp.__aeabi_unwind_cpp_pr0;
    0x0002c044 ldr r2, [r3]                                          |         r2 = imp.__aeabi_unwind_cpp_pr0;
    0x0002c046 ldr r3, [r1]                                          |         r3 = *(r1);
    0x0002c048 eors r2, r3                                           |         r2 ^= r3;
    0x0002c04a mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x0002c04e bne 0x2c0ca                                           |             goto label_8;
                                                                     |         }
    0x0002c050 mov r0, r4                                            |         r0 = r4;
    0x0002c052 add.w sp, sp, 0x4000                                  |         
    0x0002c056 add sp, 0x74                                          |         
    0x0002c058 vpop {d8, d9}                                         |         __asm ("vpop {d8, d9}");
    0x0002c05c pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_5:
    0x0002c060 ldr.w r1, [r8, 0x28]                                  |         r1 = *((r8 + 0x28));
    0x0002c064 movs r2, 0                                            |         r2 = 0;
    0x0002c066 ldr r3, [pc, 0x8c]                                    |         
    0x0002c068 ldr r0, [pc, 0x8c]                                    |         
    0x0002c06a orr r1, r1, 0x20                                      |         r1 |= 0x20;
    0x0002c06e str.w r1, [r8, 0x28]                                  |         __asm ("str.w r1, [r8, 0x28]");
    0x0002c072 add r3, pc                                            |         r3 = 0x5816c;
    0x0002c074 movw r1, 0x2d7                                        |         r1 = 0x2d7;
    0x0002c078 add r0, pc                                            |         r0 = 0x58174;
    0x0002c07a bl 0x40ed8                                            |         zbx_strdup2 ();
    0x0002c07e b 0x2c02a                                             |         
                                                                     |     } while (1);
                                                                     | label_3:
    0x0002c080 ldr.w r3, [r8, 0x28]                                  |     r3 = *((r8 + 0x28));
    0x0002c084 movs r4, 1                                            |     r4 = 1;
    0x0002c086 orr r3, r3, 0x20                                      |     r3 |= 0x20;
    0x0002c08a str.w r3, [r8, 0x28]                                  |     __asm ("str.w r3, [r8, 0x28]");
    0x0002c08e blx 0xe3d4                                            |     r0 = fcn_0000e3d4 ();
    0x0002c092 ldr r0, [r0]                                          |     r0 = *(r0);
    0x0002c094 bl 0x30b74                                            |     zbx_strerror ();
    0x0002c098 ldr r1, [pc, 0x60]                                    |     
    0x0002c09a mov r2, r0                                            |     r2 = r0;
    0x0002c09c movs r0, 0                                            |     r0 = 0;
    0x0002c09e add r1, pc                                            |     r1 = 0x5819e;
    0x0002c0a0 bl 0x44820                                            |     zbx_dsprintf ()
    0x0002c0a4 str.w r0, [r8, 0x20]                                  |     __asm ("str.w r0, [r8, 0x20]");
    0x0002c0a8 b 0x2c036                                             |     goto label_0;
                                                                     | label_6:
    0x0002c0aa ldr.w r1, [r8, 0x28]                                  |     r1 = *((r8 + 0x28));
    0x0002c0ae movs r2, 0                                            |     r2 = 0;
    0x0002c0b0 ldr r3, [pc, 0x4c]                                    |     
    0x0002c0b2 ldr r0, [pc, 0x50]                                    |     
    0x0002c0b4 orr r1, r1, 0x20                                      |     r1 |= 0x20;
    0x0002c0b8 str.w r1, [r8, 0x28]                                  |     __asm ("str.w r1, [r8, 0x28]");
    0x0002c0bc add r3, pc                                            |     r3 = 0x581c0;
    0x0002c0be movw r1, 0x2e2                                        |     r1 = 0x2e2;
    0x0002c0c2 add r0, pc                                            |     r0 = 0x581cc;
    0x0002c0c4 bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0002c0c8 b 0x2c02a                                             |     goto label_1;
                                                                     | label_8:
    0x0002c0ca blx 0xe158                                            |     fcn_0000e158 ();
    0x0002c0ce nop                                                   |     
    0x0002c0d0 stc2l p0, c0, [r2], {2}                               |     __asm ("stc2l p0, c0, [r2], {2}");
    0x0002c0d4 lsls r4, r2, 0xe                                      |     r4 = r2 << 0xe;
    0x0002c0d6 movs r0, r0                                           |     
    0x0002c0d8 ldc2 p0, c0, [r0], {2}                                |     __asm ("ldc2 p0, c0, [r0], {2}");
    0x0002c0dc lsls r4, r4, 0xc                                      |     r4 <<= 0xc;
    0x0002c0de movs r0, r0                                           |     
    0x0002c0e0 strb r4, [r5, 0x13]                                   |     *((r5 + 0x13)) = r4;
    0x0002c0e2 movs r2, r0                                           |     r2 = r0;
    0x0002c0e4 strb r4, [r5, 0x13]                                   |     *((r5 + 0x13)) = r4;
    0x0002c0e6 movs r2, r0                                           |     r2 = r0;
    0x0002c0e8 strb r2, [r0, 0x12]                                   |     *((r0 + 0x12)) = r2;
    0x0002c0ea movs r2, r0                                           |     r2 = r0;
    0x0002c0ec strb r0, [r4, 0x12]                                   |     *((r4 + 0x12)) = r0;
    0x0002c0ee movs r2, r0                                           |     r2 = r0;
    0x0002c0f0 invalid                                               |     
    0x0002d7c0 ldr r3, [r0, 4]                                       |     r3 = *((r0 + 4));
    0x0002d7c2 push {r4, lr}                                         |     
    0x0002d7c4 mov r4, r1                                            |     r4 = r1;
    0x0002d7c6 cmp r3, 1                                             |     
                                                                     |     if (r3 <= 1) {
    0x0002d7c8 bgt 0x2d7f6                                           |         
                                                                     |         if (r3 == 1) {
    0x0002d7ca bne 0x2d7d6                                           |             
    0x0002d7cc ldr r3, [r0, 8]                                       |             r3 = *((r0 + 8));
    0x0002d7ce ldr r0, [r3]                                          |             r0 = *(r3);
                                                                     |             if (r0 == 0) {
    0x0002d7d0 cbz r0, 0x2d7d6                                       |                 goto label_9;
                                                                     |             }
    0x0002d7d2 ldrb r3, [r0]                                         |             r3 = *(r0);
                                                                     |             if (r3 != 0) {
    0x0002d7d4 cbnz r3, 0x2d816                                      |                 goto label_10;
                                                                     |             }
                                                                     |         }
                                                                     | label_9:
    0x0002d7d6 ldr r0, [r4, 0x28]                                    |         r0 = *((r4 + 0x28));
    0x0002d7d8 movs r2, 0                                            |         r2 = 0;
    0x0002d7da ldr r3, [pc, 0x44]                                    |         
    0x0002d7dc movw r1, 0x306                                        |         r1 = 0x306;
    0x0002d7e0 orr r0, r0, 0x20                                      |         r0 |= 0x20;
    0x0002d7e4 str r0, [r4, 0x28]                                    |         *((r4 + 0x28)) = r0;
    0x0002d7e6 add r3, pc                                            |         r3 = 0x5b00c;
    0x0002d7e8 ldr r0, [pc, 0x38]                                    |         
    0x0002d7ea add r0, pc                                            |         r0 = 0x5b012;
    0x0002d7ec bl 0x40ed8                                            |         zbx_strdup2 ();
    0x0002d7f0 str r0, [r4, 0x20]                                    |         *((r4 + 0x20)) = r0;
    0x0002d7f2 movs r0, 1                                            |         r0 = 1;
    0x0002d7f4 pop {r4, pc}                                          |         
                                                                     |     }
    0x0002d7f6 ldr r0, [r1, 0x28]                                    |     r0 = *((r1 + 0x28));
    0x0002d7f8 movs r2, 0                                            |     r2 = 0;
    0x0002d7fa ldr r3, [pc, 0x2c]                                    |     
    0x0002d7fc movw r1, 0x2fe                                        |     r1 = 0x2fe;
    0x0002d800 orr r0, r0, 0x20                                      |     r0 |= 0x20;
    0x0002d804 str r0, [r4, 0x28]                                    |     *((r4 + 0x28)) = r0;
    0x0002d806 add r3, pc                                            |     r3 = 0x5b034;
    0x0002d808 ldr r0, [pc, 0x20]                                    |     
    0x0002d80a add r0, pc                                            |     r0 = 0x5b03a;
    0x0002d80c bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0002d810 str r0, [r4, 0x20]                                    |     *((r4 + 0x20)) = r0;
    0x0002d812 movs r0, 1                                            |     r0 = 1;
    0x0002d814 pop {r4, pc}                                          |     
                                                                     | label_10:
    0x0002d816 pop.w {r4, lr}                                        |     
    0x0002d81a b.w 0x2bf0c                                           |     goto label_2;
                                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x2d924 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.VFS_FILE_OWNER ()                                | void VFS_FILE_OWNER (int16_t arg_98h, int16_t arg_d4h, int16_t arg_ech, int16_t arg1, int16_t arg2) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h;
                                                                 |     int32_t var_20h_2;
                                                                 |     int16_t var_28h;
                                                                 |     int32_t var_28h_2;
                                                                 |     int16_t var_30h;
                                                                 |     int32_t var_30h_2;
                                                                 |     int16_t var_3ch;
                                                                 |     int16_t var_6ch;
                                                                 |     int16_t var_78h;
                                                                 |     int16_t var_80h;
                                                                 |     int16_t var_84h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0002d924 ldr r2, [pc, 0x21c]                               |     
    0x0002d926 ldr r3, [pc, 0x220]                               |     r3 = *(0x2db4a);
    0x0002d928 push {r4, r5, r6, r7, lr}                         |     
    0x0002d92a sub sp, 0x74                                      |     
    0x0002d92c add r2, pc                                        |     r2 = 0x5b474;
    0x0002d92e mov r4, r1                                        |     r4 = r1;
    0x0002d930 ldr r3, [r2, r3]                                  |     
    0x0002d932 ldr r3, [r3]                                      |     r3 = *(0x5b474);
    0x0002d934 str r3, [sp, 0x6c]                                |     var_6ch = r3;
    0x0002d936 mov.w r3, 0                                       |     r3 = 0;
    0x0002d93a ldr r3, [r0, 4]                                   |     r3 = *((r0 + 4));
    0x0002d93c cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x0002d93e bgt 0x2d9ec                                       |         goto label_13;
                                                                 |     }
    0x0002d940 cmp r3, 0                                         |     
                                                                 |     if (r3 > 0) {
    0x0002d942 ble 0x2d9b2                                       |         
    0x0002d944 ldr r2, [r0, 8]                                   |         r2 = *((r0 + 8));
    0x0002d946 cmp r3, 1                                         |         
    0x0002d948 ldr r0, [r2]                                      |         r0 = *(r2);
                                                                 |         if (r3 == 1) {
    0x0002d94a beq.w 0x2da8c                                     |             goto label_14;
                                                                 |         }
    0x0002d94e cmp r3, 3                                         |         
    0x0002d950 ldr r6, [r2, 4]                                   |         r6 = *((r2 + 4));
    0x0002d952 it ne                                             |         
                                                                 |         if (r3 == 3) {
    0x0002d954 movne r7, 0                                       |             r7 = 0;
                                                                 |         }
                                                                 |         if (r3 == 3) {
    0x0002d956 bne 0x2d95a                                       |             
    0x0002d958 ldr r7, [r2, 8]                                   |             r7 = *((r2 + 8));
                                                                 |         }
                                                                 |         if (r0 == 0) {
                                                                 | label_2:
    0x0002d95a cbz r0, 0x2d9b2                                   |             goto label_15;
                                                                 |         }
    0x0002d95c ldrb r3, [r0]                                     |         r3 = *(r0);
                                                                 |         if (r3 == 0) {
    0x0002d95e cbz r3, 0x2d9b2                                   |             goto label_15;
                                                                 |         }
    0x0002d960 mov r1, sp                                        |         r1 = sp;
    0x0002d962 blx 0xe1c4                                        |         r0 = fcn_0000e1c4 ();
    0x0002d966 mov r5, r0                                        |         r5 = r0;
    0x0002d968 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x0002d96a bne 0x2da6c                                       |             goto label_16;
                                                                 |         }
                                                                 |         if (r6 != 0) {
    0x0002d96c cbz r6, 0x2d984                                   |             
    0x0002d96e ldr r1, [pc, 0x1dc]                               |             
    0x0002d970 mov r0, r6                                        |             r0 = r6;
    0x0002d972 add r1, pc                                        |             r1 = 0x5b4c4;
    0x0002d974 blx 0xe3b0                                        |             r0 = fcn_0000e3b0 ();
    0x0002d978 cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x0002d97a beq 0x2da38                                       |                 goto label_17;
                                                                 |             }
    0x0002d97c ldrb r3, [r6]                                     |             r3 = *(r6);
    0x0002d97e cmp r3, 0                                         |             
                                                                 |             if (r3 != 0) {
    0x0002d980 bne.w 0x2dab8                                     |                 goto label_18;
                                                                 |             }
                                                                 |         }
                                                                 | label_3:
    0x0002d984 cmp r7, 0                                         |         
                                                                 |         if (r7 == 0) {
    0x0002d986 beq 0x2da0e                                       |             goto label_6;
                                                                 |         }
    0x0002d988 ldrb r3, [r7]                                     |         r3 = *(r7);
    0x0002d98a cmp r3, 0x69                                      |         
                                                                 |         if (r3 != 0x69) {
    0x0002d98c bne 0x2da08                                       |             goto label_19;
                                                                 |         }
    0x0002d98e ldrb r3, [r7, 1]                                  |         r3 = *((r7 + 1));
    0x0002d990 cmp r3, 0x64                                      |         
                                                                 |         if (r3 != 0x64) {
    0x0002d992 bne 0x2da08                                       |             goto label_19;
                                                                 |         }
    0x0002d994 ldrb r3, [r7, 2]                                  |         r3 = *((r7 + 2));
    0x0002d996 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x0002d998 bne 0x2da08                                       |             goto label_19;
                                                                 |         }
    0x0002d99a ldr r1, [r4, 0x28]                                |         r1 = *((r4 + 0x28));
    0x0002d99c movs r3, 0                                        |         r3 = 0;
    0x0002d99e ldr r2, [sp, 0x18]                                |         r2 = var_18h;
    0x0002d9a0 mov r0, r3                                        |         r0 = r3;
    0x0002d9a2 orr r1, r1, 4                                     |         r1 |= 4;
    0x0002d9a6 str r1, [r4, 0x28]                                |         *((r4 + 0x28)) = r1;
    0x0002d9a8 ldr r1, [pc, 0x1a4]                               |         
    0x0002d9aa add r1, pc                                        |         r1 = 0x5b4fe;
    0x0002d9ac bl 0x44820                                        |         zbx_dsprintf ()
    0x0002d9b0 b 0x2da34                                         |         goto label_5;
                                                                 |     }
                                                                 | label_15:
    0x0002d9b2 ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x0002d9b4 movs r2, 0                                        |     r2 = 0;
    0x0002d9b6 ldr r3, [pc, 0x19c]                               |     
    0x0002d9b8 movw r1, 0x45e                                    |     r1 = 0x45e;
    0x0002d9bc orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x0002d9c0 str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x0002d9c2 add r3, pc                                        |     r3 = 0x5b51c;
    0x0002d9c4 ldr r0, [pc, 0x190]                               |     
    0x0002d9c6 add r0, pc                                        |     r0 = 0x5b522;
    0x0002d9c8 bl 0x40ed8                                        |     zbx_strdup2 ();
                                                                 |     do {
                                                                 | label_1:
    0x0002d9cc movs r5, 1                                        |         r5 = 1;
    0x0002d9ce str r0, [r4, 0x20]                                |         *((r4 + 0x20)) = r0;
                                                                 | label_0:
    0x0002d9d0 ldr r2, [pc, 0x188]                               |         
    0x0002d9d2 ldr r3, [pc, 0x174]                               |         r3 = *(0x2db4a);
    0x0002d9d4 add r2, pc                                        |         r2 = 0x5b534;
    0x0002d9d6 ldr r3, [r2, r3]                                  |         r3 = *(0x5b534);
    0x0002d9d8 ldr r2, [r3]                                      |         r2 = *(0x5b534);
    0x0002d9da ldr r3, [sp, 0x6c]                                |         r3 = var_6ch;
    0x0002d9dc eors r2, r3                                       |         r2 ^= r3;
    0x0002d9de mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0002d9e2 bne.w 0x2db40                                     |             goto label_20;
                                                                 |         }
    0x0002d9e6 mov r0, r5                                        |         r0 = r5;
    0x0002d9e8 add sp, 0x74                                      |         
    0x0002d9ea pop {r4, r5, r6, r7, pc}                          |         
                                                                 | label_13:
    0x0002d9ec ldr r0, [r1, 0x28]                                |         r0 = *((r1 + 0x28));
    0x0002d9ee movs r2, 0                                        |         r2 = 0;
    0x0002d9f0 ldr r3, [pc, 0x16c]                               |         
    0x0002d9f2 movw r1, 0x454                                    |         r1 = 0x454;
    0x0002d9f6 orr r0, r0, 0x20                                  |         r0 |= 0x20;
    0x0002d9fa str r0, [r4, 0x28]                                |         *((r4 + 0x28)) = r0;
    0x0002d9fc add r3, pc                                        |         r3 = 0x5b560;
    0x0002d9fe ldr r0, [pc, 0x164]                               |         
    0x0002da00 add r0, pc                                        |         r0 = 0x5b56a;
    0x0002da02 bl 0x40ed8                                        |         zbx_strdup2 ();
    0x0002da06 b 0x2d9cc                                         |         
                                                                 |     } while (1);
                                                                 | label_19:
    0x0002da08 ldrb r3, [r7]                                     |     r3 = *(r7);
    0x0002da0a cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0002da0c bne 0x2db06                                       |         goto label_21;
                                                                 |     }
                                                                 | label_6:
    0x0002da0e ldr r0, [sp, 0x18]                                |     r0 = var_18h;
    0x0002da10 blx 0xdf9c                                        |     r0 = fcn_0000df9c ();
    0x0002da14 mov r3, r0                                        |     r3 = r0;
    0x0002da16 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002da18 beq.w 0x2db2c                                     |         goto label_22;
                                                                 |     }
    0x0002da1c ldr r1, [r4, 0x28]                                |     r1 = *((r4 + 0x28));
    0x0002da1e movs r2, 0                                        |     r2 = 0;
    0x0002da20 ldr r3, [r0]                                      |     r3 = *(r0);
    0x0002da22 ldr r0, [pc, 0x144]                               |     
    0x0002da24 orr r1, r1, 4                                     |     r1 |= 4;
    0x0002da28 str r1, [r4, 0x28]                                |     *((r4 + 0x28)) = r1;
    0x0002da2a movw r1, 0x48f                                    |     r1 = 0x48f;
    0x0002da2e add r0, pc                                        |     r0 = 0x5b59c;
    0x0002da30 bl 0x40ed8                                        |     zbx_strdup2 ();
                                                                 |     do {
                                                                 | label_5:
    0x0002da34 str r0, [r4, 0x18]                                |         *((r4 + 0x18)) = r0;
    0x0002da36 b 0x2d9d0                                         |         goto label_0;
                                                                 |         if (r7 != 0) {
                                                                 | label_17:
    0x0002da38 cbz r7, 0x2da92                                   |             
    0x0002da3a ldrb r3, [r7]                                     |             r3 = *(r7);
    0x0002da3c cmp r3, 0x69                                      |             
                                                                 |             if (r3 == 0x69) {
    0x0002da3e beq 0x2dae4                                       |                 goto label_23;
                                                                 |             }
                                                                 | label_4:
    0x0002da40 ldrb r3, [r7]                                     |             r3 = *(r7);
                                                                 |             if (r3 == 0) {
    0x0002da42 cbz r3, 0x2da92                                   |                 goto label_24;
                                                                 |             }
    0x0002da44 ldr r1, [pc, 0x124]                               |             
    0x0002da46 mov r0, r7                                        |             r0 = r7;
    0x0002da48 add r1, pc                                        |             r1 = 0x5b5b8;
    0x0002da4a blx 0xe3b0                                        |             r0 = fcn_0000e3b0 ();
                                                                 |             if (r0 == 0) {
    0x0002da4e cbz r0, 0x2da92                                   |                 goto label_24;
                                                                 |             }
                                                                 | label_7:
    0x0002da50 ldr r0, [r4, 0x28]                                |             r0 = *((r4 + 0x28));
    0x0002da52 movs r2, 0                                        |             r2 = 0;
    0x0002da54 ldr r3, [pc, 0x118]                               |             
    0x0002da56 movw r1, 0x494                                    |             r1 = 0x494;
    0x0002da5a orr r0, r0, 0x20                                  |             r0 |= 0x20;
    0x0002da5e str r0, [r4, 0x28]                                |             *((r4 + 0x28)) = r0;
    0x0002da60 add r3, pc                                        |             r3 = 0x5b5d4;
    0x0002da62 ldr r0, [pc, 0x110]                               |             
    0x0002da64 add r0, pc                                        |             r0 = 0x5b5de;
    0x0002da66 bl 0x40ed8                                        |             zbx_strdup2 ();
    0x0002da6a b 0x2d9cc                                         |             goto label_1;
                                                                 | label_16:
    0x0002da6c ldr r3, [r4, 0x28]                                |             r3 = *((r4 + 0x28));
    0x0002da6e orr r3, r3, 0x20                                  |             r3 |= 0x20;
    0x0002da72 str r3, [r4, 0x28]                                |             *((r4 + 0x28)) = r3;
    0x0002da74 blx 0xe3d4                                        |             r0 = fcn_0000e3d4 ();
    0x0002da78 ldr r0, [r0]                                      |             r0 = *(r0);
    0x0002da7a bl 0x30b74                                        |             zbx_strerror ();
    0x0002da7e ldr r1, [pc, 0xf8]                                |             
    0x0002da80 mov r2, r0                                        |             r2 = r0;
    0x0002da82 movs r0, 0                                        |             r0 = 0;
    0x0002da84 add r1, pc                                        |             r1 = 0x5b602;
    0x0002da86 bl 0x44820                                        |             zbx_dsprintf ()
    0x0002da8a b 0x2d9cc                                         |             goto label_1;
                                                                 | label_14:
    0x0002da8c movs r6, 0                                        |             r6 = 0;
    0x0002da8e mov r7, r6                                        |             r7 = r6;
    0x0002da90 b 0x2d95a                                         |             goto label_2;
                                                                 |         }
                                                                 | label_24:
    0x0002da92 ldr r0, [sp, 0x1c]                                |         r0 = var_1ch;
    0x0002da94 blx 0xe1b8                                        |         r0 = fcn_0000e1b8 ();
    0x0002da98 mov r3, r0                                        |         r3 = r0;
    0x0002da9a cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0002da9c beq 0x2db18                                       |             goto label_25;
                                                                 |         }
    0x0002da9e ldr r1, [r4, 0x28]                                |         r1 = *((r4 + 0x28));
    0x0002daa0 movs r2, 0                                        |         r2 = 0;
    0x0002daa2 ldr r3, [r0]                                      |         r3 = *(r0);
    0x0002daa4 ldr r0, [pc, 0xd4]                                |         
    0x0002daa6 orr r1, r1, 4                                     |         r1 |= 4;
    0x0002daaa str r1, [r4, 0x28]                                |         *((r4 + 0x28)) = r1;
    0x0002daac movw r1, 0x486                                    |         r1 = 0x486;
    0x0002dab0 add r0, pc                                        |         r0 = 0x5b630;
    0x0002dab2 bl 0x40ed8                                        |         zbx_strdup2 ();
    0x0002dab6 b 0x2da34                                         |         
                                                                 |     } while (1);
                                                                 | label_18:
    0x0002dab8 ldr r1, [pc, 0xc4]                                |     
    0x0002daba mov r0, r6                                        |     r0 = r6;
    0x0002dabc add r1, pc                                        |     r1 = 0x5b640;
    0x0002dabe blx 0xe3b0                                        |     r0 = fcn_0000e3b0 ();
    0x0002dac2 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002dac4 beq.w 0x2d984                                     |         goto label_3;
                                                                 |     }
    0x0002dac8 ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x0002daca mov r2, r5                                        |     r2 = r5;
    0x0002dacc ldr r3, [pc, 0xb4]                                |     
    0x0002dace movw r1, 0x472                                    |     r1 = 0x472;
    0x0002dad2 orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x0002dad6 str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x0002dad8 add r3, pc                                        |     r3 = 0x5b660;
    0x0002dada ldr r0, [pc, 0xac]                                |     
    0x0002dadc add r0, pc                                        |     r0 = 0x5b66a;
    0x0002dade bl 0x40ed8                                        |     zbx_strdup2 ();
    0x0002dae2 b 0x2d9cc                                         |     goto label_1;
                                                                 | label_23:
    0x0002dae4 ldrb r3, [r7, 1]                                  |     r3 = *((r7 + 1));
    0x0002dae6 cmp r3, 0x64                                      |     
                                                                 |     if (r3 != 0x64) {
    0x0002dae8 bne 0x2da40                                       |         goto label_4;
                                                                 |     }
    0x0002daea ldrb r3, [r7, 2]                                  |     r3 = *((r7 + 2));
    0x0002daec cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0002daee bne 0x2da40                                       |         goto label_4;
                                                                 |     }
    0x0002daf0 ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x0002daf2 ldr r1, [pc, 0x98]                                |     
    0x0002daf4 ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x0002daf6 orr r3, r3, 4                                     |     r3 |= 4;
    0x0002dafa str r3, [r4, 0x28]                                |     *((r4 + 0x28)) = r3;
    0x0002dafc add r1, pc                                        |     r1 = 0x5b68e;
    0x0002dafe mov r3, r5                                        |     r3 = r5;
    0x0002db00 bl 0x44820                                        |     zbx_dsprintf ()
    0x0002db04 b 0x2da34                                         |     goto label_5;
                                                                 | label_21:
    0x0002db06 ldr r1, [pc, 0x88]                                |     
    0x0002db08 mov r0, r7                                        |     r0 = r7;
    0x0002db0a add r1, pc                                        |     r1 = 0x5b6a0;
    0x0002db0c blx 0xe3b0                                        |     r0 = fcn_0000e3b0 ();
    0x0002db10 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002db12 beq.w 0x2da0e                                     |         goto label_6;
                                                                 |     }
    0x0002db16 b 0x2da50                                         |     goto label_7;
                                                                 | label_25:
    0x0002db18 ldr r2, [r4, 0x28]                                |     r2 = *((r4 + 0x28));
    0x0002db1a ldr r1, [pc, 0x78]                                |     
    0x0002db1c orr r2, r2, 4                                     |     r2 |= 4;
    0x0002db20 str r2, [r4, 0x28]                                |     *((r4 + 0x28)) = r2;
    0x0002db22 add r1, pc                                        |     r1 = 0x5b6bc;
    0x0002db24 ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x0002db26 bl 0x44820                                        |     zbx_dsprintf ()
    0x0002db2a b 0x2da34                                         |     goto label_5;
                                                                 | label_22:
    0x0002db2c ldr r2, [r4, 0x28]                                |     r2 = *((r4 + 0x28));
    0x0002db2e ldr r1, [pc, 0x68]                                |     
    0x0002db30 orr r2, r2, 4                                     |     r2 |= 4;
    0x0002db34 str r2, [r4, 0x28]                                |     *((r4 + 0x28)) = r2;
    0x0002db36 add r1, pc                                        |     r1 = 0x5b6d4;
    0x0002db38 ldr r2, [sp, 0x18]                                |     r2 = var_18h;
    0x0002db3a bl 0x44820                                        |     zbx_dsprintf ()
    0x0002db3e b 0x2da34                                         |     goto label_5;
                                                                 | label_20:
    0x0002db40 blx 0xe158                                        |     fcn_0000e158 ();
    0x0002db44 b 0x2e0a0                                         |     goto label_26;
                                                                 | label_12:
    0x0002ddb8 ldr r2, [sp, 0x78]                                |     r2 = var_78h;
    0x0002ddba movs r0, 0                                        |     r0 = 0;
    0x0002ddbc ldr r1, [pc, 0x3dc]                               |     
    0x0002ddbe and r3, r2, 7                                     |     r3 = r2 & 7;
    0x0002ddc2 str r3, [sp, 4]                                   |     var_4h = r3;
    0x0002ddc4 ubfx r3, r2, 3, 3                                 |     r3 = (r2 >> 3) & ((1 << 3) - 1);
    0x0002ddc8 add r1, pc                                        |     r1 = 0x5bf68;
    0x0002ddca str r3, [sp]                                      |     *(sp) = r3;
    0x0002ddcc ubfx r3, r2, 6, 3                                 |     r3 = (r2 >> 6) & ((1 << 3) - 1);
    0x0002ddd0 ubfx r2, r2, 9, 3                                 |     r2 = (r2 >> 9) & ((1 << 3) - 1);
    0x0002ddd4 bl 0x44820                                        |     zbx_dsprintf ()
    0x0002ddd8 ldr r1, [pc, 0x3c4]                               |     
    0x0002ddda mov r7, r0                                        |     r7 = r0;
    0x0002dddc mov r2, r0                                        |     r2 = r0;
    0x0002ddde movs r3, 1                                        |     r3 = 1;
    0x0002dde0 mov r0, r4                                        |     r0 = r4;
    0x0002dde2 add r1, pc                                        |     r1 = 0x5bf86;
    0x0002dde4 bl 0x3ac9c                                        |     zbx_json_addstring ();
                                                                 |     if (r7 != 0) {
    0x0002dde8 cbz r7, 0x2ddf0                                   |         
    0x0002ddea mov r0, r7                                        |         r0 = r7;
    0x0002ddec blx 0xde30                                        |         fcn_0000de30 ();
                                                                 |     }
    0x0002ddf0 ldr r1, [pc, 0x3b0]                               |     
    0x0002ddf2 movs r3, 0                                        |     r3 = 0;
    0x0002ddf4 ldr r2, [sp, 0x80]                                |     r2 = var_80h;
    0x0002ddf6 mov r0, r4                                        |     r0 = r4;
    0x0002ddf8 add r1, pc                                        |     r1 = 0x5bfa0;
    0x0002ddfa bl 0x3ae40                                        |     zbx_json_adduint64 ();
    0x0002ddfe ldr r1, [pc, 0x3a8]                               |     
    0x0002de00 movs r3, 0                                        |     r3 = 0;
    0x0002de02 ldr r2, [sp, 0x84]                                |     r2 = var_84h;
    0x0002de04 mov r0, r4                                        |     r0 = r4;
    0x0002de06 add r1, pc                                        |     r1 = 0x5bfb4;
    0x0002de08 bl 0x3ae40                                        |     zbx_json_adduint64 ();
    0x0002de0c ldr r1, [pc, 0x39c]                               |     
    0x0002de0e mov r0, r4                                        |     r0 = r4;
    0x0002de10 ldrd r2, r3, [sp, 0x98]                           |     __asm ("ldrd r2, r3, [arg_98h]");
    0x0002de14 add r1, pc                                        |     r1 = 0x5bfc4;
    0x0002de16 bl 0x3ae40                                        |     zbx_json_adduint64 ();
    0x0002de1a ldr r1, [pc, 0x394]                               |     
    0x0002de1c mov r0, r4                                        |     r0 = r4;
    0x0002de1e add r1, pc                                        |     r1 = 0x5bfd4;
    0x0002de20 bl 0x3ac94                                        |     zbx_json_addobject ();
    0x0002de24 ldrd r2, r3, [sp, 0x28]                           |     __asm ("ldrd r2, r3, [var_28h]");
    0x0002de28 cmp r2, 1                                         |     
    0x0002de2a sbcs r3, r3, 0                                    |     __asm ("sbcs r3, r3, 0");
                                                                 |     if (r2 < 1) {
    0x0002de2e blt.w 0x2e018                                     |         goto label_27;
                                                                 |     }
    0x0002de32 ldr r0, [pc, 0x380]                               |     
    0x0002de34 movs r3, 0x1a                                     |     r3 = 0x1a;
    0x0002de36 movw r1, 0x4d5                                    |     r1 = 0x4d5;
    0x0002de3a add.w r8, sp, 0x3c                                |     r8 += var_3ch;
    0x0002de3e str r2, [sp, 0x1c]                                |     var_1ch = r2;
    0x0002de40 movs r2, 0                                        |     r2 = 0;
    0x0002de42 add r0, pc                                        |     r0 = 0x5bffc;
    0x0002de44 bl 0x40dd8                                        |     zbx_malloc2 ();
    0x0002de48 mov r1, r8                                        |     r1 = r8;
    0x0002de4a mov r7, r0                                        |     r7 = r0;
    0x0002de4c add r0, sp, 0x1c                                  |     r0 += var_1ch;
    0x0002de4e blx 0xdb9c                                        |     fcn_0000db9c ();
    0x0002de52 ldr r2, [pc, 0x364]                               |     
    0x0002de54 mov r3, r8                                        |     r3 = r8;
    0x0002de56 movs r1, 0x1a                                     |     r1 = 0x1a;
    0x0002de58 mov r0, r7                                        |     r0 = r7;
    0x0002de5a add r2, pc                                        |     r2 = 0x5c018;
    0x0002de5c blx 0xe214                                        |     fcn_0000e214 ();
    0x0002de60 ldr r1, [pc, 0x358]                               |     
    0x0002de62 movs r3, 1                                        |     r3 = 1;
    0x0002de64 mov r2, r7                                        |     r2 = r7;
    0x0002de66 mov r0, r4                                        |     r0 = r4;
    0x0002de68 add r1, pc                                        |     r1 = CONFIG_REFRESH_ACTIVE_CHECKS;
    0x0002de6a bl 0x3ac9c                                        |     zbx_json_addstring ();
                                                                 |     if (r7 != 0) {
    0x0002de6e cbz r7, 0x2de76                                   |         
    0x0002de70 mov r0, r7                                        |         r0 = r7;
    0x0002de72 blx 0xde30                                        |         fcn_0000de30 ();
                                                                 |     }
                                                                 | label_9:
    0x0002de76 ldrd r2, r3, [sp, 0x20]                           |     __asm ("ldrd r2, r3, [var_20h]");
    0x0002de7a cmp r2, 1                                         |     
    0x0002de7c sbcs r3, r3, 0                                    |     __asm ("sbcs r3, r3, 0");
                                                                 |     if (r2 < 1) {
    0x0002de80 blt.w 0x2dfec                                     |         goto label_28;
                                                                 |     }
    0x0002de84 ldr r0, [pc, 0x338]                               |     
    0x0002de86 movs r3, 0x1a                                     |     r3 = 0x1a;
    0x0002de88 movw r1, 0x4d5                                    |     r1 = 0x4d5;
    0x0002de8c add.w r8, sp, 0x3c                                |     r8 += var_3ch;
    0x0002de90 str r2, [sp, 0x1c]                                |     var_1ch = r2;
    0x0002de92 movs r2, 0                                        |     r2 = 0;
    0x0002de94 add r0, pc                                        |     r0 = 0x5c058;
    0x0002de96 bl 0x40dd8                                        |     zbx_malloc2 ();
    0x0002de9a mov r1, r8                                        |     r1 = r8;
    0x0002de9c mov r7, r0                                        |     r7 = r0;
    0x0002de9e add r0, sp, 0x1c                                  |     r0 += var_1ch;
    0x0002dea0 blx 0xdb9c                                        |     fcn_0000db9c ();
    0x0002dea4 ldr r2, [pc, 0x31c]                               |     
    0x0002dea6 mov r3, r8                                        |     r3 = r8;
    0x0002dea8 movs r1, 0x1a                                     |     r1 = 0x1a;
    0x0002deaa mov r0, r7                                        |     r0 = r7;
    0x0002deac add r2, pc                                        |     r2 = 0x5c074;
    0x0002deae blx 0xe214                                        |     fcn_0000e214 ();
    0x0002deb2 ldr r1, [pc, 0x314]                               |     
    0x0002deb4 movs r3, 1                                        |     r3 = 1;
    0x0002deb6 mov r2, r7                                        |     r2 = r7;
    0x0002deb8 mov r0, r4                                        |     r0 = r4;
    0x0002deba add r1, pc                                        |     r1 = 0x5c088;
    0x0002debc bl 0x3ac9c                                        |     zbx_json_addstring ();
                                                                 |     if (r7 != 0) {
    0x0002dec0 cbz r7, 0x2dec8                                   |         
    0x0002dec2 mov r0, r7                                        |         r0 = r7;
    0x0002dec4 blx 0xde30                                        |         fcn_0000de30 ();
                                                                 |     }
    0x0002dec8 ldrd r2, r3, [sp, 0x30]                           |     __asm ("ldrd r2, r3, [var_30h]");
    0x0002decc cmp r2, 1                                         |     
    0x0002dece sbcs r3, r3, 0                                    |     __asm ("sbcs r3, r3, 0");
                                                                 |     if (r2 < 1) {
    0x0002ded2 blt.w 0x2e008                                     |         goto label_29;
                                                                 |     }
                                                                 |     do {
    0x0002ded6 ldr r0, [pc, 0x2f4]                               |         
    0x0002ded8 movs r3, 0x1a                                     |         r3 = 0x1a;
    0x0002deda movw r1, 0x4d5                                    |         r1 = 0x4d5;
    0x0002dede add.w r8, sp, 0x3c                                |         r8 += var_3ch;
    0x0002dee2 str r2, [sp, 0x1c]                                |         var_1ch = r2;
    0x0002dee4 movs r2, 0                                        |         r2 = 0;
    0x0002dee6 add r0, pc                                        |         r0 = 0x5c0b8;
    0x0002dee8 bl 0x40dd8                                        |         zbx_malloc2 ();
    0x0002deec mov r1, r8                                        |         r1 = r8;
    0x0002deee mov r7, r0                                        |         r7 = r0;
    0x0002def0 add r0, sp, 0x1c                                  |         r0 += var_1ch;
    0x0002def2 blx 0xdb9c                                        |         fcn_0000db9c ();
    0x0002def6 ldr r2, [pc, 0x2d8]                               |         
    0x0002def8 mov r3, r8                                        |         r3 = r8;
    0x0002defa movs r1, 0x1a                                     |         r1 = 0x1a;
    0x0002defc mov r0, r7                                        |         r0 = r7;
    0x0002defe add r2, pc                                        |         r2 = 0x5c0d4;
    0x0002df00 blx 0xe214                                        |         fcn_0000e214 ();
    0x0002df04 ldr r1, [pc, 0x2cc]                               |         
    0x0002df06 movs r3, 1                                        |         r3 = 1;
    0x0002df08 mov r2, r7                                        |         r2 = r7;
    0x0002df0a mov r0, r4                                        |         r0 = r4;
    0x0002df0c add r1, pc                                        |         r1 = 0x5c0e4;
    0x0002df0e bl 0x3ac9c                                        |         zbx_json_addstring ();
                                                                 |         if (r7 != 0) {
    0x0002df12 cbz r7, 0x2df1a                                   |             
    0x0002df14 mov r0, r7                                        |             r0 = r7;
    0x0002df16 blx 0xde30                                        |             fcn_0000de30 ();
                                                                 |         }
                                                                 | label_8:
    0x0002df1a mov r0, r4                                        |         r0 = r4;
    0x0002df1c bl 0x3af6c                                        |         zbx_json_close ();
    0x0002df20 ldr r1, [pc, 0x2b4]                               |         
    0x0002df22 mov r0, r4                                        |         r0 = r4;
    0x0002df24 add r1, pc                                        |         r1 = 0x5c100;
    0x0002df26 bl 0x3ac94                                        |         zbx_json_addobject ();
    0x0002df2a ldrd r2, r3, [sp, 0x28]                           |         __asm ("ldrd r2, r3, [var_28h]");
    0x0002df2c movs r3, 0xa                                      |         r3 = 0xa;
    0x0002df2e cmp r2, 1                                         |         
    0x0002df30 sbcs r1, r3, 0                                    |         __asm ("sbcs r1, r3, 0");
                                                                 |         if (r2 < 1) {
    0x0002df34 blt.w 0x2e048                                     |             goto label_30;
                                                                 |         }
    0x0002df38 ldr r1, [pc, 0x2a0]                               |         
    0x0002df3a mov r0, r4                                        |         r0 = r4;
    0x0002df3c add r1, pc                                        |         r1 = 0x5c11c;
    0x0002df3e bl 0x3ae40                                        |         zbx_json_adduint64 ();
                                                                 | label_11:
    0x0002df42 ldrd r2, r3, [sp, 0x20]                           |         __asm ("ldrd r2, r3, [var_20h]");
    0x0002df46 cmp r2, 1                                         |         
    0x0002df48 sbcs r1, r3, 0                                    |         __asm ("sbcs r1, r3, 0");
                                                                 |         if (r2 < 1) {
    0x0002df4c blt 0x2e038                                       |             goto label_31;
                                                                 |         }
    0x0002df4e ldr r1, [pc, 0x290]                               |         
    0x0002df50 mov r0, r4                                        |         r0 = r4;
    0x0002df52 add r1, pc                                        |         r1 = 0x5c138;
    0x0002df54 bl 0x3ae40                                        |         zbx_json_adduint64 ();
                                                                 | label_10:
    0x0002df58 ldrd r2, r3, [sp, 0x30]                           |         __asm ("ldrd r2, r3, [var_30h]");
    0x0002df5c cmp r2, 1                                         |         
    0x0002df5e sbcs r1, r3, 0                                    |         __asm ("sbcs r1, r3, 0");
                                                                 |         if (r2 < 1) {
    0x0002df62 blt 0x2e028                                       |             goto label_32;
                                                                 |         }
    0x0002df64 ldr r1, [pc, 0x27c]                               |         
    0x0002df66 mov r0, r4                                        |         r0 = r4;
    0x0002df68 add r1, pc                                        |         r1 = usage_message;
    0x0002df6a bl 0x3ae40                                        |         zbx_json_adduint64 ();
    0x0002df6e mov r0, r4                                        |         r0 = r4;
    0x0002df70 bl 0x3af6c                                        |         zbx_json_close ();
    0x0002df74 mov r0, r4                                        |         r0 = r4;
    0x0002df76 bl 0x3af6c                                        |         zbx_json_close ();
                                                                 |         if (r5 != 0) {
    0x0002df7a cbz r5, 0x2df82                                   |             
    0x0002df7c mov r0, r5                                        |             r0 = r5;
    0x0002df7e blx 0xde30                                        |             fcn_0000de30 ();
                                                                 |         }
    0x0002df82 cmp.w fp, 0                                       |         
                                                                 |         if (fp != 0) {
    0x0002df86 beq 0x2df8e                                       |             
    0x0002df88 mov r0, fp                                        |             r0 = fp;
    0x0002df8a blx 0xde30                                        |             fcn_0000de30 ();
    0x0002df8c invalid                                           |             
                                                                 |         }
    0x0002df8e cmp.w sl, 0                                       |         
                                                                 |         if (sl != 0) {
    0x0002df92 beq 0x2df9a                                       |             
    0x0002df94 mov r0, sl                                        |             r0 = sl;
    0x0002df96 blx 0xde30                                        |             fcn_0000de30 ();
                                                                 |         }
    0x0002df9a cmp.w sb, 0                                       |         
                                                                 |         if (sb != 0) {
    0x0002df9e beq 0x2dfa6                                       |             
    0x0002dfa0 mov r0, sb                                        |             r0 = sb;
    0x0002dfa2 blx 0xde30                                        |             fcn_0000de30 ();
                                                                 |         }
    0x0002dfa6 ldr r2, [pc, 0x240]                               |         
    0x0002dfa8 ldr r3, [pc, 0x1d4]                               |         r3 = *(0x2e180);
    0x0002dfaa add r2, pc                                        |         r2 = my_diskstat_shmid;
    0x0002dfac ldr r3, [r2, r3]                                  |         r3 = my_diskstat_shmid;
    0x0002dfae ldr r2, [r3]                                      |         r2 = my_diskstat_shmid;
    0x0002dfb0 ldr r3, [sp, 0xec]                                |         r3 = *(arg_ech);
    0x0002dfb2 eors r2, r3                                       |         r2 ^= r3;
    0x0002dfb4 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0002dfb8 bne.w 0x2e176                                     |             goto label_33;
                                                                 |         }
    0x0002dfbc mov r0, r6                                        |         r0 = r6;
    0x0002dfbe add sp, 0xf4                                      |         
    0x0002dfc0 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_28:
    0x0002dfec ldr r1, [pc, 0x204]                               |         
    0x0002dfee movs r3, 1                                        |         r3 = 1;
    0x0002dff0 movs r2, 0                                        |         r2 = 0;
    0x0002dff2 mov r0, r4                                        |         r0 = r4;
    0x0002dff4 add r1, pc                                        |         r1 = 0x5c1ec;
    0x0002dff6 bl 0x3ac9c                                        |         zbx_json_addstring ();
    0x0002dffa ldrd r2, r3, [sp, 0x30]                           |         __asm ("ldrd r2, r3, [var_30h]");
    0x0002dffe cmp r2, 1                                         |         
    0x0002e000 sbcs r3, r3, 0                                    |         __asm ("sbcs r3, r3, 0");
    0x0002e004 bge.w 0x2ded6                                     |         
                                                                 |     } while (r2 >= 1);
                                                                 | label_29:
    0x0002e008 ldr r1, [pc, 0x1ec]                               |     
    0x0002e00a movs r3, 1                                        |     r3 = 1;
    0x0002e00c movs r2, 0                                        |     r2 = 0;
    0x0002e00e mov r0, r4                                        |     r0 = r4;
    0x0002e010 add r1, pc                                        |     r1 = 0x5c20c;
    0x0002e012 bl 0x3ac9c                                        |     zbx_json_addstring ();
    0x0002e016 b 0x2df1a                                         |     goto label_8;
                                                                 | label_27:
    0x0002e018 ldr r1, [pc, 0x1e0]                               |     
    0x0002e01a movs r3, 1                                        |     r3 = 1;
    0x0002e01c movs r2, 0                                        |     r2 = 0;
    0x0002e01e mov r0, r4                                        |     r0 = r4;
    0x0002e020 add r1, pc                                        |     r1 = 0x5c220;
    0x0002e022 bl 0x3ac9c                                        |     zbx_json_addstring ();
    0x0002e026 b 0x2de76                                         |     goto label_9;
                                                                 | label_32:
    0x0002e028 ldr r1, [pc, 0x1d4]                               |     
    0x0002e02a movs r3, 1                                        |     r3 = 1;
    0x0002e02c movs r2, 0                                        |     r2 = 0;
    0x0002e02e mov r0, r4                                        |     r0 = r4;
    0x0002e030 add r1, pc                                        |     r1 = 0x5c234;
    0x0002e032 bl 0x3ac9c                                        |     zbx_json_addstring ();
    0x0002e034 mrc2 p7, 1, lr, c3, c10, 4                        |     __asm ("mrc2 p7, 1, lr, c3, c10, 4");
                                                                 | label_31:
    0x0002e038 ldr r1, [pc, 0x1c8]                               |     
    0x0002e03a movs r3, 1                                        |     r3 = 1;
    0x0002e03c movs r2, 0                                        |     r2 = 0;
    0x0002e03e mov r0, r4                                        |     r0 = r4;
    0x0002e040 add r1, pc                                        |     r1 = 0x5c248;
    0x0002e042 bl 0x3ac9c                                        |     zbx_json_addstring ();
    0x0002e046 b 0x2df58                                         |     goto label_10;
                                                                 | label_30:
    0x0002e048 ldr r1, [pc, 0x1bc]                               |     
    0x0002e04a movs r3, 1                                        |     r3 = 1;
    0x0002e04c movs r2, 0                                        |     r2 = 0;
    0x0002e04e mov r0, r4                                        |     r0 = r4;
    0x0002e050 add r1, pc                                        |     r1 = 0x5c25c;
    0x0002e052 bl 0x3ac9c                                        |     zbx_json_addstring ();
    0x0002e056 b 0x2df42                                         |     goto label_11;
                                                                 | label_26:
    0x0002e0a0 add r7, sp, 0xd4                                  |     r7 += arg_d4h;
    0x0002e0a2 ldr r2, [pc, 0x180]                               |     
    0x0002e0a4 movs r1, 0x15                                     |     r1 = 0x15;
    0x0002e0a6 str r0, [sp, 4]                                   |     var_4h = r0;
    0x0002e0a8 mov r0, r7                                        |     r0 = r7;
    0x0002e0aa str r3, [sp]                                      |     *(sp) = r3;
    0x0002e0ac add r2, pc                                        |     r2 = 0x5c2d6;
    0x0002e0ae bl 0x43f38                                        |     zbx_snprintf ();
    0x0002e0b0 invalid                                           |     
    0x0002e0b4 mov r2, r7                                        |     r2 = r7;
    0x0002e0b6 movs r3, 1                                        |     r3 = 1;
    0x0002e0b8 mov r0, r4                                        |     r0 = r4;
    0x0002e0ba add r1, pc                                        |     r1 += pc;
    0x0002e0bc bl 0x3ac9c                                        |     zbx_json_addstring ();
    0x0002e0c0 b 0x2ddb8                                         |     goto label_12;
                                                                 | label_33:
    0x0002e176 blx 0xe158                                        |     fcn_0000e158 ();
    0x0002e17a nop                                               |     
    0x0002e17c svc 0x2c                                          |     __asm ("svc 0x2c");
    0x0002e17e movs r2, r0                                       |     r2 = r0;
    0x0002e180 lsls r4, r2, 0xe                                  |     r4 = r2 << 0xe;
    0x0002e182 movs r0, r0                                       |     
    0x0002e184 ldr r0, [r7, r2]                                  |     r0 = *((r7 + r2));
    0x0002e186 movs r2, r0                                       |     r2 = r0;
    0x0002e188 ldr r4, [r6, r2]                                  |     r4 = *((r6 + r2));
    0x0002e18a movs r2, r0                                       |     r2 = r0;
    0x0002e18c ldr r0, [r6, r2]                                  |     r0 = *((r6 + r2));
    0x0002e18e movs r2, r0                                       |     r2 = r0;
    0x0002e190 str r0, [r0, 0x70]                                |     *((r0 + 0x70)) = r0;
    0x0002e192 movs r2, r0                                       |     r2 = r0;
    0x0002e194 adcs r4, r0                                       |     __asm ("adcs r4, r0");
    0x0002e196 movs r2, r0                                       |     r2 = r0;
    0x0002e198 asrs r2, r2                                       |     r2 >>= r2;
    0x0002e19a movs r2, r0                                       |     r2 = r0;
    0x0002e19c ldrsb r0, [r4, r7]                                |     r0 = *((r4 + r7));
    0x0002e19e movs r2, r0                                       |     r2 = r0;
    0x0002e1a0 ldr r2, [r0, r1]                                  |     r2 = *((r0 + r1));
    0x0002e1a2 movs r2, r0                                       |     r2 = r0;
    0x0002e1a4 lsrs r4, r2                                       |     r4 >>= r2;
    0x0002e1a6 movs r2, r0                                       |     r2 = r0;
    0x0002e1a8 lsrs r2, r1                                       |     r2 >>= r1;
    0x0002e1aa movs r2, r0                                       |     r2 = r0;
    0x0002e1ac adds r5, 0x40                                     |     r5 += 0x40;
    0x0002e1ae movs r2, r0                                       |     r2 = r0;
    0x0002e1b0 str r6, [r3, r1]                                  |     *((r3 + r1)) = r6;
    0x0002e1b2 movs r2, r0                                       |     r2 = r0;
    0x0002e1b4 ldrsb r6, [r7, r1]                                |     r6 = *((r7 + r1));
    0x0002e1b6 movs r2, r0                                       |     r2 = r0;
    0x0002e1b8 ldrsb r6, [r2, r7]                                |     r6 = *((r2 + r7));
    0x0002e1ba movs r2, r0                                       |     r2 = r0;
    0x0002e1bc ldrsb r4, [r4, r2]                                |     r4 = *((r4 + r2));
    0x0002e1be movs r2, r0                                       |     r2 = r0;
    0x0002e1c0 ldrsb r4, [r5, r0]                                |     r4 = *((r5 + r0));
    0x0002e1c2 movs r2, r0                                       |     r2 = r0;
    0x0002e1c4 ldrsb r4, [r0, r6]                                |     r4 = *((r0 + r6));
    0x0002e1c6 movs r2, r0                                       |     r2 = r0;
    0x0002e1c8 str r2, [r2, r0]                                  |     *((r2 + r0)) = r2;
    0x0002e1ca movs r2, r0                                       |     r2 = r0;
    0x0002e1cc strb r2, [r3, r7]                                 |     *((r3 + r7)) = r2;
    0x0002e1ce movs r2, r0                                       |     r2 = r0;
    0x0002e1d0 ldrsb r2, [r6, r4]                                |     r2 = *((r6 + r4));
    0x0002e1d2 movs r2, r0                                       |     r2 = r0;
    0x0002e1d4 ldrsb r0, [r1, r0]                                |     r0 = *((r1 + r0));
    0x0002e1d6 movs r2, r0                                       |     r2 = r0;
    0x0002e1d8 cdp2 p0, 0xc, c0, c4, c1, 0                       |     __asm ("cdp2 p0, 0xc, c0, c4, c1, 0");
    0x0002e1dc strb r0, [r2, r7]                                 |     *((r2 + r7)) = r0;
    0x0002e1de movs r2, r0                                       |     r2 = r0;
    0x0002e1e0 ldr r7, [pc, 0x1e8]                               |     r7 = *(0x2e3cc);
    0x0002e1e2 movs r2, r0                                       |     r2 = r0;
    0x0002e1e4 strb r4, [r5, r6]                                 |     *((r5 + r6)) = r4;
    0x0002e1e6 movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 <= r0) {
    0x0002e1e8 bgt 0x2e248                                       |         
    0x0002e1ea movs r2, r0                                       |         r2 = r0;
    0x0002e1ec ldrsb r2, [r1, r0]                                |         r2 = *((r1 + r0));
    0x0002e1ee movs r2, r0                                       |         r2 = r0;
    0x0002e1f0 strb r4, [r5, r3]                                 |         *((r5 + r3)) = r4;
    0x0002e1f2 movs r2, r0                                       |         r2 = r0;
    0x0002e1f4 ldr r6, [pc, 0x360]                               |         r6 = *(0x2e558);
    0x0002e1f6 movs r2, r0                                       |         r2 = r0;
    0x0002e1f8 strb r4, [r0, r4]                                 |         *((r0 + r4)) = r4;
    0x0002e1fa movs r2, r0                                       |         r2 = r0;
    0x0002e1fc strb r4, [r5, r3]                                 |         *((r5 + r3)) = r4;
    0x0002e1fe movs r2, r0                                       |         r2 = r0;
    0x0002e200 strb r4, [r4, r3]                                 |         *((r4 + r3)) = r4;
    0x0002e202 movs r2, r0                                       |         r2 = r0;
    0x0002e204 ldr r6, [pc, 0x230]                               |         r6 = *(0x2e438);
    0x0002e206 movs r2, r0                                       |         r2 = r0;
    0x0002e208 strb r4, [r7, r2]                                 |         *((r7 + r2)) = r4;
    0x0002e20a movs r2, r0                                       |         r2 = r0;
    0x0002e20c strb r4, [r2, r5]                                 |         *((r2 + r5)) = r4;
    0x0002e20e movs r2, r0                                       |         r2 = r0;
    0x0002e210 strb r6, [r3, r1]                                 |         *((r3 + r1)) = r6;
    0x0002e212 movs r2, r0                                       |         r2 = r0;
    0x0002e214 strb r0, [r1, r5]                                 |         *((r1 + r5)) = r0;
    0x0002e216 movs r2, r0                                       |         r2 = r0;
    0x0002e218 strb r2, [r1, r1]                                 |         *((r1 + r1)) = r2;
    0x0002e21a movs r2, r0                                       |         r2 = r0;
    0x0002e21c asrs r2, r1, 0x14                                 |         r2 = r1 >> 0x14;
    0x0002e21e movs r2, r0                                       |         r2 = r0;
    0x0002e220 strb r4, [r5, r0]                                 |         *((r5 + r0)) = r4;
    0x0002e222 movs r2, r0                                       |         r2 = r0;
    0x0002e224 add ip, sl                                        |         
    0x0002e226 movs r2, r0                                       |         r2 = r0;
    0x0002e228 subs r6, 0xa                                      |         r6 -= 0xa;
    0x0002e22a movs r2, r0                                       |         r2 = r0;
    0x0002e22c add r8, r6                                        |         r8 += r6;
    0x0002e22e movs r2, r0                                       |         r2 = r0;
    0x0002e230 subs r5, 0xfe                                     |         r5 -= 0xfe;
    0x0002e232 movs r2, r0                                       |         r2 = r0;
    0x0002e234 strh r6, [r5, r7]                                 |         *((r5 + r7)) = r6;
    0x0002e236 movs r2, r0                                       |         r2 = r0;
    0x0002e238 strb r2, [r5, r2]                                 |         *((r5 + r2)) = r2;
    0x0002e23a movs r2, r0                                       |         r2 = r0;
    0x0002e23c strh r0, [r6, r6]                                 |         *((r6 + r6)) = r0;
    0x0002e23e movs r2, r0                                       |         r2 = r0;
    0x0002e240 strb r2, [r4, r2]                                 |         *((r4 + r2)) = r2;
    0x0002e242 movs r2, r0                                       |         r2 = r0;
    0x0002e244 strh r4, [r3, r6]                                 |         *((r3 + r6)) = r4;
    0x0002e246 movs r2, r0                                       |         r2 = r0;
                                                                 |     }
    0x0002e248 strb r6, [r2, r2]                                 |     *((r2 + r2)) = r6;
    0x0002e24a movs r2, r0                                       |     r2 = r0;
    0x0002e24c strh r0, [r1, r6]                                 |     *((r1 + r6)) = r0;
    0x0002e24e movs r2, r0                                       |     r2 = r0;
    0x0002e250 strb r2, [r1, r2]                                 |     *((r1 + r2)) = r2;
    0x0002e252 movs r2, r0                                       |     r2 = r0;
    0x0002e254 strh r4, [r6, r5]                                 |     *((r6 + r5)) = r4;
    0x0002e256 movs r2, r0                                       |     r2 = r0;
    0x0002e258 strh r6, [r7, r5]                                 |     *((r7 + r5)) = r6;
    0x0002e25a movs r2, r0                                       |     r2 = r0;
                                                                 | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x2db9c */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.VFS_FILE_PERMISSIONS ()          | void VFS_FILE_PERMISSIONS (int16_t arg1, int16_t arg2) {
                                                 |     int16_t var_0h;
                                                 |     int16_t var_4h;
                                                 |     int16_t var_8h;
                                                 |     int16_t var_18h;
                                                 |     int16_t var_74h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x0002db9c ldr r2, [pc, 0xd0]                |     
    0x0002db9e ldr r3, [pc, 0xd4]                |     r3 = *(0x2dc76);
    0x0002dba0 push {r4, r5, lr}                 |     
    0x0002dba2 sub sp, 0x7c                      |     
    0x0002dba4 add r2, pc                        |     r2 = 0x5b818;
    0x0002dba6 mov r4, r1                        |     r4 = r1;
    0x0002dba8 ldr r3, [r2, r3]                  |     
    0x0002dbaa ldr r3, [r3]                      |     r3 = *(0x5b818);
    0x0002dbac str r3, [sp, 0x74]                |     var_74h = r3;
    0x0002dbae mov.w r3, 0                       |     r3 = 0;
    0x0002dbb2 ldr r3, [r0, 4]                   |     r3 = *((r0 + 4));
    0x0002dbb4 cmp r3, 1                         |     
                                                 |     if (r3 > 1) {
    0x0002dbb6 bgt 0x2dbfc                       |         goto label_2;
                                                 |     }
                                                 |     if (r3 == 1) {
    0x0002dbb8 bne 0x2dbc4                       |         
    0x0002dbba ldr r3, [r0, 8]                   |         r3 = *((r0 + 8));
    0x0002dbbc ldr r0, [r3]                      |         r0 = *(r3);
                                                 |         if (r0 == 0) {
    0x0002dbbe cbz r0, 0x2dbc4                   |             goto label_3;
                                                 |         }
    0x0002dbc0 ldrb r3, [r0]                     |         r3 = *(r0);
                                                 |         if (r3 != 0) {
    0x0002dbc2 cbnz r3, 0x2dc18                  |             goto label_4;
                                                 |         }
                                                 |     }
                                                 | label_3:
    0x0002dbc4 ldr r0, [r4, 0x28]                |     r0 = *((r4 + 0x28));
    0x0002dbc6 movs r2, 0                        |     r2 = 0;
    0x0002dbc8 ldr r3, [pc, 0xac]                |     
    0x0002dbca movw r1, 0x4bd                    |     r1 = 0x4bd;
    0x0002dbce orr r0, r0, 0x20                  |     r0 |= 0x20;
    0x0002dbd2 str r0, [r4, 0x28]                |     *((r4 + 0x28)) = r0;
    0x0002dbd4 add r3, pc                        |     r3 = 0x5b850;
    0x0002dbd6 ldr r0, [pc, 0xa4]                |     
    0x0002dbd8 add r0, pc                        |     r0 = 0x5b85a;
    0x0002dbda bl 0x40ed8                        |     zbx_strdup2 ();
                                                 |     do {
                                                 | label_1:
    0x0002dbde movs r5, 1                        |         r5 = 1;
    0x0002dbe0 str r0, [r4, 0x20]                |         *((r4 + 0x20)) = r0;
                                                 | label_0:
    0x0002dbe2 ldr r2, [pc, 0x9c]                |         
    0x0002dbe4 ldr r3, [pc, 0x8c]                |         r3 = *(0x2dc74);
    0x0002dbe6 add r2, pc                        |         r2 = 0x5b86c;
    0x0002dbe8 ldr r3, [r2, r3]                  |         r3 = *(0x5b86c);
    0x0002dbea ldr r2, [r3]                      |         r2 = *(0x5b86c);
    0x0002dbec ldr r3, [sp, 0x74]                |         r3 = var_74h;
    0x0002dbee eors r2, r3                       |         r2 ^= r3;
    0x0002dbf0 mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x0002dbf4 bne 0x2dc6c                       |             goto label_5;
                                                 |         }
    0x0002dbf6 mov r0, r5                        |         r0 = r5;
    0x0002dbf8 add sp, 0x7c                      |         
    0x0002dbfa pop {r4, r5, pc}                  |         
                                                 | label_2:
    0x0002dbfc ldr r0, [r1, 0x28]                |         r0 = *((r1 + 0x28));
    0x0002dbfe movs r2, 0                        |         r2 = 0;
    0x0002dc00 ldr r3, [pc, 0x80]                |         
    0x0002dc02 movw r1, 0x4b5                    |         r1 = 0x4b5;
    0x0002dc06 orr r0, r0, 0x20                  |         r0 |= 0x20;
    0x0002dc0a str r0, [r4, 0x28]                |         *((r4 + 0x28)) = r0;
    0x0002dc0c add r3, pc                        |         r3 = 0x5b894;
    0x0002dc0e ldr r0, [pc, 0x78]                |         
    0x0002dc10 add r0, pc                        |         r0 = 0x5b89e;
    0x0002dc12 bl 0x40ed8                        |         zbx_strdup2 ();
    0x0002dc16 b 0x2dbde                         |         
                                                 |     } while (1);
                                                 | label_4:
    0x0002dc18 add r1, sp, 8                     |     r1 += var_8h;
    0x0002dc1a blx 0xdec0                        |     fcn_0000dec0 ();
    0x0002dc1c ldrd r4, r6, [r2, -0x14]          |     __asm ("ldrd r4, r6, [r2, -0x14]");
                                                 |     if (r0 == 0) {
    0x0002dc20 cbnz r0, 0x2dc4c                  |         
    0x0002dc22 ldr r3, [r4, 0x28]                |         r3 = *((r4 + 0x28));
    0x0002dc24 ldr r2, [sp, 0x18]                |         r2 = var_18h;
    0x0002dc26 ldr r1, [pc, 0x64]                |         
    0x0002dc28 orr r3, r3, 4                     |         r3 |= 4;
    0x0002dc2c str r3, [r4, 0x28]                |         *((r4 + 0x28)) = r3;
    0x0002dc2e and r3, r2, 7                     |         r3 = r2 & 7;
    0x0002dc32 str r3, [sp, 4]                   |         var_4h = r3;
    0x0002dc34 ubfx r3, r2, 3, 3                 |         r3 = (r2 >> 3) & ((1 << 3) - 1);
    0x0002dc38 str r3, [sp]                      |         *(sp) = r3;
    0x0002dc3a add r1, pc                        |         r1 = 0x5b8cc;
    0x0002dc3c ubfx r3, r2, 6, 3                 |         r3 = (r2 >> 6) & ((1 << 3) - 1);
    0x0002dc40 ubfx r2, r2, 9, 3                 |         r2 = (r2 >> 9) & ((1 << 3) - 1);
    0x0002dc44 bl 0x44820                        |         zbx_dsprintf ()
    0x0002dc48 str r0, [r4, 0x18]                |         *((r4 + 0x18)) = r0;
    0x0002dc4a b 0x2dbe2                         |         goto label_0;
                                                 |     }
    0x0002dc4c ldr r3, [r4, 0x28]                |     r3 = *((r4 + 0x28));
    0x0002dc4e orr r3, r3, 0x20                  |     r3 |= 0x20;
    0x0002dc52 str r3, [r4, 0x28]                |     *((r4 + 0x28)) = r3;
    0x0002dc54 blx 0xe3d4                        |     r0 = fcn_0000e3d4 ();
    0x0002dc58 ldr r0, [r0]                      |     r0 = *(r0);
    0x0002dc5a bl 0x30b74                        |     zbx_strerror ();
    0x0002dc5e ldr r1, [pc, 0x30]                |     
    0x0002dc60 mov r2, r0                        |     r2 = r0;
    0x0002dc62 movs r0, 0                        |     r0 = 0;
    0x0002dc64 add r1, pc                        |     r1 = 0x5b8fa;
    0x0002dc66 bl 0x44820                        |     zbx_dsprintf ()
    0x0002dc6a b 0x2dbde                         |     goto label_1;
                                                 | label_5:
    0x0002dc6c blx 0xe158                        |     fcn_0000e158 ();
    0x0002dc70 b 0x2dcdc                         |     return void (*0x2dcdc)() ();
                                                 | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x2cfc0 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.VFS_FILE_REGEXP ()                                   | void VFS_FILE_REGEXP (int16_t arg_10000h_2, int16_t arg1, int16_t arg2) {
                                                                     |     int16_t var_10h;
                                                                     |     int16_t var_14h;
                                                                     |     int16_t var_18h;
                                                                     |     int16_t var_1ch;
                                                                     |     int16_t var_2ch;
                                                                     |     int16_t var_4ch;
                                                                     |     int16_t var_50h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
    0x0002cfc0 ldr r2, [pc, 0x3b0]                                   |     
    0x0002cfc2 ldr r3, [pc, 0x3b4]                                   |     r3 = *(0x2d37a);
    0x0002cfc4 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0002cfc8 mov r5, r1                                            |     r5 = r1;
    0x0002cfca vpush {d8, d9}                                        |     __asm ("vpush {d8, d9}");
    0x0002cfce add r2, pc                                            |     r2 = 0x5a346;
    0x0002cfd0 sub.w sp, sp, 0x10000                                 |     
    0x0002cfd4 mov r6, r0                                            |     r6 = r0;
    0x0002cfd6 ldr r3, [r2, r3]                                      |     
    0x0002cfd8 sub sp, 0x54                                          |     
    0x0002cfda add.w r1, sp, 0x10000                                 |     r1 += arg_10000h_2;
    0x0002cfde add r4, sp, 0x50                                      |     r4 += var_50h;
    0x0002cfe0 mov.w fp, 0                                           |     
    0x0002cfe4 adds r1, 0x4c                                         |     r1 += 0x4c;
    0x0002cfe6 ldr r3, [r3]                                          |     r3 = *(0x5a346);
    0x0002cfe8 str r3, [r1]                                          |     *(r1) = r3;
    0x0002cfea mov.w r3, 0                                           |     r3 = 0;
    0x0002cfee str fp, [r4, -0x30]                                   |     *((r4 - 0x30)) = fp;
    0x0002cff2 bl 0x3ffc0                                            |     zbx_time ();
    0x0002cff6 ldr r3, [r6, 4]                                       |     r3 = *((r6 + 4));
    0x0002cff8 ldr r7, [pc, 0x380]                                   |     
    0x0002cffa cmp r3, 6                                             |     
    0x0002cffc add r7, pc                                            |     r7 = 0x5a37c;
                                                                     |     if (r3 > 6) {
    0x0002cffe bgt.w 0x2d1ce                                         |         goto label_10;
                                                                     |     }
    0x0002d002 cmp r3, 0                                             |     
                                                                     |     if (r3 <= 0) {
    0x0002d004 ble.w 0x2d1ae                                         |         goto label_11;
                                                                     |     }
    0x0002d008 ldr r0, [r6, 8]                                       |     r0 = *((r6 + 8));
    0x0002d00a cmp r3, 1                                             |     
    0x0002d00c vmov.f64 d9, d0                                       |     __asm ("vmov.f64 d9, d0");
    0x0002d010 ldr r6, [r0]                                          |     r6 = *(r0);
                                                                     |     if (r3 == 1) {
    0x0002d012 beq.w 0x2d22a                                         |         goto label_12;
                                                                     |     }
    0x0002d016 cmp r3, 2                                             |     
    0x0002d018 ldr.w sl, [r0, 4]                                     |     sl = *((r0 + 4));
                                                                     |     if (r3 == 2) {
    0x0002d01c beq.w 0x2d21e                                         |         goto label_13;
                                                                     |     }
    0x0002d020 cmp r3, 3                                             |     
    0x0002d022 ldr r1, [r0, 8]                                       |     r1 = *((r0 + 8));
                                                                     |     if (r3 == 3) {
    0x0002d024 beq.w 0x2d214                                         |         goto label_14;
                                                                     |     }
    0x0002d028 cmp r3, 4                                             |     
    0x0002d02a ldr.w sb, [r0, 0xc]                                   |     sb = *((r0 + 0xc));
                                                                     |     if (r3 == 4) {
    0x0002d02e beq.w 0x2d20c                                         |         goto label_15;
                                                                     |     }
    0x0002d032 cmp r3, 6                                             |     
    0x0002d034 ldr.w r8, [r0, 0x10]                                  |     r8 = *((r0 + 0x10));
    0x0002d038 it ne                                                 |     
                                                                     |     if (r3 == 6) {
    0x0002d03a strne fp, [sp, 0x14]                                  |         var_14h = fp;
                                                                     |     }
                                                                     |     if (r3 == 6) {
    0x0002d03e bne 0x2d044                                           |         
    0x0002d040 ldr r3, [r0, 0x14]                                    |         r3 = *((r0 + 0x14));
    0x0002d042 str r3, [sp, 0x14]                                    |         var_14h = r3;
                                                                     |     }
                                                                     | label_3:
    0x0002d044 cmp r6, 0                                             |     
                                                                     |     if (r6 == 0) {
    0x0002d046 beq.w 0x2d1ae                                         |         goto label_11;
                                                                     |     }
    0x0002d04a ldrb r3, [r6]                                         |     r3 = *(r6);
    0x0002d04c cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0002d04e beq.w 0x2d1ae                                         |         goto label_11;
                                                                     |     }
    0x0002d052 cmp.w sl, 0                                           |     
                                                                     |     if (sl == 0) {
    0x0002d056 beq.w 0x2d1f0                                         |         goto label_16;
                                                                     |     }
    0x0002d058 strh r3, [r1, 6]                                      |     *((r1 + 6)) = r3;
    0x0002d05a ldrb.w r3, [sl]                                       |     r3 = *(sl);
    0x0002d05e cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0002d060 beq.w 0x2d1f0                                         |         goto label_16;
                                                                     |     }
    0x0002d064 cmp r1, 0                                             |     
                                                                     |     if (r1 == 0) {
    0x0002d066 beq.w 0x2d1ea                                         |         goto label_17;
                                                                     |     }
    0x0002d06a movs r2, 0x20                                         |     r2 = 0x20;
    0x0002d06c sub.w r0, r4, 0x24                                    |     r0 = r4 - 0x24;
    0x0002d070 bl 0x4465c                                            |     zbx_strlcpy ();
                                                                     | label_2:
    0x0002d074 cmp.w sb, 0                                           |     
                                                                     |     if (sb != 0) {
    0x0002d078 beq 0x2d084                                           |         
    0x0002d07a ldrb.w r3, [sb]                                       |         r3 = *(sb);
    0x0002d07e cmp r3, 0                                             |         
                                                                     |         if (r3 != 0) {
    0x0002d080 bne.w 0x2d238                                         |             goto label_18;
                                                                     |         }
                                                                     |     }
    0x0002d084 movs r3, 0                                            |     r3 = 0;
    0x0002d086 str r3, [r4, -0x2c]                                   |     *((r4 - 0x2c)) = r3;
                                                                     | label_4:
    0x0002d08a cmp.w r8, 0                                           |     
                                                                     |     if (r8 != 0) {
    0x0002d08e beq 0x2d09a                                           |         
    0x0002d090 ldrb.w r3, [r8]                                       |         r3 = *(r8);
    0x0002d094 cmp r3, 0                                             |         
                                                                     |         if (r3 != 0) {
    0x0002d096 bne.w 0x2d27a                                         |             goto label_19;
                                                                     |         }
    0x0002d098 strh r0, [r6, 6]                                      |         *((r6 + 6)) = r0;
                                                                     |     }
    0x0002d09a mov.w r3, -1                                          |     r3 = -1;
    0x0002d09e str r3, [r4, -0x28]                                   |     *((r4 - 0x28)) = r3;
                                                                     | label_5:
    0x0002d0a2 mov r0, r6                                            |     r0 = r6;
    0x0002d0a4 movs r1, 0                                            |     r1 = 0;
    0x0002d0a6 blx 0xe030                                            |     r0 = fcntl64 ();
    0x0002d0aa mov r3, r0                                            |     r3 = r0;
    0x0002d0ac str r0, [sp, 0x10]                                    |     var_10h = r0;
    0x0002d0ae adds r3, 1                                            |     r3++;
                                                                     |     if (r3 == 1) {
    0x0002d0b0 beq.w 0x2d2f0                                         |         goto label_20;
                                                                     |     }
    0x0002d0b4 ldr r3, [pc, 0x2c8]                                   |     r3 = *(0x2d380);
    0x0002d0b6 ldr.w fp, [r7, r3]                                    |     fp = *((r7 + r3));
    0x0002d0ba vldr s15, [fp]                                        |     __asm ("vldr s15, [fp]");
    0x0002d0be vcvt.f64.s32 d8, s15                                  |     __asm ("vcvt.f64.s32 d8, s15");
    0x0002d0c2 bl 0x3ffc0                                            |     zbx_time ();
    0x0002d0c4 invalid                                               |     
    0x0002d0c8 lsrs r1, r1, 0xd                                      |     r1 >>= 0xd;
    0x0002d0ca vcmpe.f64 d8, d0                                      |     __asm ("vcmpe.f64 d8, d0");
    0x0002d0ce vmrs apsr_nzcv, fpscr                                 |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                     |     if (r1 < r1) {
    0x0002d0d2 bmi.w 0x2d310                                         |         goto label_21;
                                                                     |     }
    0x0002d0d6 ldr r3, [pc, 0x2ac]                                   |     
    0x0002d0d8 movs r6, 0                                            |     r6 = 0;
    0x0002d0da add.w sb, sp, 0x2c                                    |     sb += var_2ch;
    0x0002d0dc lsrs r4, r5, 4                                        |     r4 = r5 >> 4;
    0x0002d0de add.w r8, sp, 0x4c                                    |     r8 += var_4ch;
    0x0002d0e0 lsrs r4, r1, 1                                        |     r4 = r1 >> 1;
    0x0002d0e2 add r3, pc                                            |     r3 = 0x5a46c;
    0x0002d0e4 str r3, [sp, 0x18]                                    |     var_18h = r3;
    0x0002d0e6 sub.w r3, r4, 0x30                                    |     r3 = r4 - 0x30;
    0x0002d0ea str r3, [sp, 0x1c]                                    |     var_1ch = r3;
                                                                     |     do {
                                                                     | label_0:
    0x0002d0ec ldr r0, [sp, 0x10]                                    |         r0 = var_10h;
    0x0002d0ee mov r3, sb                                            |         r3 = sb;
    0x0002d0f0 mov.w r2, 0x10000                                     |         r2 = 0x10000;
    0x0002d0f4 mov r1, r8                                            |         r1 = r8;
    0x0002d0f6 bl 0x3fa5c                                            |         r0 = zbx_read ();
    0x0002d0fa subs r7, r0, 0                                        |         r7 = r0 - 0;
                                                                     |         if (r7 <= r0) {
    0x0002d0fc ble.w 0x2d2c4                                         |             goto label_22;
                                                                     |         }
    0x0002d100 vldr s15, [fp]                                        |         __asm ("vldr s15, [fp]");
    0x0002d104 vcvt.f64.s32 d8, s15                                  |         __asm ("vcvt.f64.s32 d8, s15");
    0x0002d108 bl 0x3ffc0                                            |         zbx_time ();
    0x0002d10c vsub.f64 d0, d0, d9                                   |         __asm ("vsub.f64 d0, d0, d9");
    0x0002d110 vcmpe.f64 d8, d0                                      |         __asm ("vcmpe.f64 d8, d0");
    0x0002d114 vmrs apsr_nzcv, fpscr                                 |         __asm ("vmrs apsr_nzcv, fpscr");
                                                                     |         if (r7 < r0) {
    0x0002d118 bmi.w 0x2d2d0                                         |             goto label_23;
                                                                     |         }
    0x0002d11c ldr r3, [r4, -0x2c]                                   |         r3 = *((r4 - 0x2c));
    0x0002d120 adds r6, 1                                            |         r6++;
    0x0002d122 cmp r3, r6                                            |         
    0x0002d124 bhi 0x2d0ec                                           |         
                                                                     |     } while (r3 > r6);
    0x0002d126 mov r1, r7                                            |     r1 = r7;
    0x0002d128 mov r2, sb                                            |     r2 = sb;
    0x0002d12a mov r0, r8                                            |     r0 = r8;
    0x0002d12c bl 0x4587c                                            |     convert_to_utf8 ();
    0x0002d130 ldr r1, [sp, 0x18]                                    |     r1 = var_18h;
    0x0002d132 mov r7, r0                                            |     r7 = r0;
    0x0002d134 bl 0x444f4                                            |     zbx_rtrim ();
    0x0002d138 ldr r3, [sp, 0x1c]                                    |     r3 = var_1ch;
    0x0002d13a mov r1, sl                                            |     r1 = sl;
    0x0002d13c ldr r2, [sp, 0x14]                                    |     r2 = var_14h;
    0x0002d13e mov r0, r7                                            |     r0 = r7;
    0x0002d140 bl 0x31b24                                            |     zbx_regexp_sub ();
                                                                     |     if (r7 != 0) {
    0x0002d144 cbz r7, 0x2d14c                                       |         
    0x0002d146 mov r0, r7                                            |         r0 = r7;
    0x0002d148 blx 0xde30                                            |         fcn_0000de30 ();
                                                                     |     }
    0x0002d14c ldr r3, [r4, -0x30]                                   |     r3 = *((r4 - 0x30));
    0x0002d150 cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x0002d152 bne.w 0x2d32c                                         |         goto label_24;
                                                                     |     }
    0x0002d156 ldr r3, [r4, -0x28]                                   |     r3 = *((r4 - 0x28));
    0x0002d15a cmp r3, r6                                            |     
                                                                     |     if (r3 > r6) {
    0x0002d15c bhi 0x2d0ec                                           |         goto label_0;
                                                                     |     }
                                                                     | label_7:
    0x0002d15e ldr r1, [r5, 0x28]                                    |     r1 = *((r5 + 0x28));
    0x0002d160 movs r2, 0                                            |     r2 = 0;
    0x0002d162 ldr r3, [pc, 0x224]                                   |     
    0x0002d164 ldr r0, [pc, 0x224]                                   |     
    0x0002d166 orr r1, r1, 4                                         |     r1 |= 4;
    0x0002d16a str r1, [r5, 0x28]                                    |     *((r5 + 0x28)) = r1;
    0x0002d16c add r3, pc                                            |     r3 = 0x5a4fa;
    0x0002d16e add r0, pc                                            |     r0 = 0x5a4fe;
    0x0002d170 movw r1, 0x23f                                        |     r1 = 0x23f;
    0x0002d174 bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0002d178 str r0, [r5, 0x18]                                    |     *((r5 + 0x18)) = r0;
                                                                     | label_6:
    0x0002d17a movs r4, 0                                            |     r4 = 0;
                                                                     | label_8:
    0x0002d17c ldr r0, [sp, 0x10]                                    |     r0 = var_10h;
    0x0002d17e blx 0xe0ac                                            |     fcn_0000e0ac ();
                                                                     |     do {
    0x0002d182 ldr r2, [pc, 0x20c]                                   |         
    0x0002d184 add.w r1, sp, 0x10000                                 |         r1 += arg_10000h_2;
    0x0002d188 ldr r3, [pc, 0x1ec]                                   |         r3 = *(0x2d378);
    0x0002d18a adds r1, 0x4c                                         |         r1 += 0x4c;
    0x0002d18c add r2, pc                                            |         r2 = 0x5a522;
    0x0002d18e ldr r3, [r2, r3]                                      |         r3 = *(0x5a522);
    0x0002d190 ldr r2, [r3]                                          |         r2 = *(0x5a522);
    0x0002d192 ldr r3, [r1]                                          |         r3 = *(r1);
    0x0002d194 eors r2, r3                                           |         r2 ^= r3;
    0x0002d196 mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x0002d19a bne.w 0x2d370                                         |             goto label_25;
                                                                     |         }
    0x0002d19e mov r0, r4                                            |         r0 = r4;
    0x0002d1a0 add.w sp, sp, 0x10000                                 |         
    0x0002d1a4 add sp, 0x54                                          |         
    0x0002d1a6 vpop {d8, d9}                                         |         __asm ("vpop {d8, d9}");
    0x0002d1aa pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_11:
    0x0002d1ae ldr r0, [r5, 0x28]                                    |         r0 = *((r5 + 0x28));
    0x0002d1b0 movs r2, 0                                            |         r2 = 0;
    0x0002d1b2 ldr r3, [pc, 0x1e0]                                   |         
    0x0002d1b4 movw r1, 0x1e9                                        |         r1 = 0x1e9;
    0x0002d1b8 orr r0, r0, 0x20                                      |         r0 |= 0x20;
    0x0002d1bc str r0, [r5, 0x28]                                    |         *((r5 + 0x28)) = r0;
    0x0002d1be add r3, pc                                            |         r3 = 0x5a558;
    0x0002d1c0 ldr r0, [pc, 0x1d4]                                   |         
    0x0002d1c2 add r0, pc                                            |         r0 = 0x5a55e;
    0x0002d1c4 bl 0x40ed8                                            |         zbx_strdup2 ();
                                                                     | label_1:
    0x0002d1c8 movs r4, 1                                            |         r4 = 1;
    0x0002d1ca str r0, [r5, 0x20]                                    |         *((r5 + 0x20)) = r0;
    0x0002d1cc b 0x2d182                                             |         
                                                                     |     } while (1);
                                                                     | label_10:
    0x0002d1ce ldr r0, [r5, 0x28]                                    |     r0 = *((r5 + 0x28));
    0x0002d1d0 mov r2, fp                                            |     r2 = fp;
    0x0002d1d2 ldr r3, [pc, 0x1c8]                                   |     
    0x0002d1d4 mov.w r1, 0x1dc                                       |     r1 = 0x1dc;
    0x0002d1d8 orr r0, r0, 0x20                                      |     r0 |= 0x20;
    0x0002d1dc str r0, [r5, 0x28]                                    |     *((r5 + 0x28)) = r0;
    0x0002d1de add r3, pc                                            |     r3 = 0x5a580;
    0x0002d1e0 ldr r0, [pc, 0x1bc]                                   |     
    0x0002d1e2 add r0, pc                                            |     r0 = 0x5a586;
    0x0002d1e4 bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0002d1e8 b 0x2d1c8                                             |     goto label_1;
                                                                     | label_17:
    0x0002d1ea strb r1, [r4, -0x24]                                  |     *((r4 - 0x24)) = r1;
    0x0002d1ee b 0x2d074                                             |     goto label_2;
                                                                     | label_16:
    0x0002d1f0 ldr r0, [r5, 0x28]                                    |     r0 = *((r5 + 0x28));
    0x0002d1f2 movs r2, 0                                            |     r2 = 0;
    0x0002d1f4 ldr r3, [pc, 0x1ac]                                   |     
    0x0002d1f6 movw r1, 0x1ef                                        |     r1 = 0x1ef;
    0x0002d1fa orr r0, r0, 0x20                                      |     r0 |= 0x20;
    0x0002d1fe str r0, [r5, 0x28]                                    |     *((r5 + 0x28)) = r0;
    0x0002d200 add r3, pc                                            |     r3 = 0x5a5a8;
    0x0002d202 ldr r0, [pc, 0x1a4]                                   |     
    0x0002d204 add r0, pc                                            |     r0 = 0x5a5b2;
    0x0002d206 bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0002d20a b 0x2d1c8                                             |     goto label_1;
                                                                     | label_15:
    0x0002d20c mov r8, fp                                            |     r8 = fp;
    0x0002d20e str.w fp, [sp, 0x14]                                  |     __asm ("str.w fp, [var_14h]");
    0x0002d212 b 0x2d044                                             |     goto label_3;
                                                                     | label_14:
    0x0002d214 mov r8, fp                                            |     r8 = fp;
    0x0002d216 mov sb, fp                                            |     sb = fp;
    0x0002d218 str.w fp, [sp, 0x14]                                  |     __asm ("str.w fp, [var_14h]");
    0x0002d21c b 0x2d044                                             |     goto label_3;
                                                                     | label_13:
    0x0002d21e mov r8, fp                                            |     r8 = fp;
    0x0002d220 mov sb, fp                                            |     sb = fp;
    0x0002d222 mov r1, fp                                            |     r1 = fp;
    0x0002d224 str.w fp, [sp, 0x14]                                  |     __asm ("str.w fp, [var_14h]");
    0x0002d228 b 0x2d044                                             |     goto label_3;
                                                                     | label_12:
    0x0002d22a mov r8, fp                                            |     r8 = fp;
    0x0002d22c mov sb, fp                                            |     sb = fp;
    0x0002d22e mov r1, fp                                            |     r1 = fp;
    0x0002d230 mov sl, fp                                            |     sl = fp;
    0x0002d232 str.w fp, [sp, 0x14]                                  |     __asm ("str.w fp, [var_14h]");
    0x0002d236 b 0x2d044                                             |     goto label_3;
                                                                     | label_18:
    0x0002d238 vmov.i64 d17, 0xffffffff                              |     __asm ("vmov.i64 d17, 0xffffffff");
    0x0002d23c mov r0, sb                                            |     r0 = sb;
    0x0002d23e vmov.i32 d16, 0                                       |     __asm ("vmov.i32 d16, 0");
    0x0002d242 movs r3, 4                                            |     r3 = 4;
    0x0002d244 sub.w r2, r4, 0x2c                                    |     r2 = r4 - 0x2c;
    0x0002d248 mov.w r1, -1                                          |     r1 = -1;
    0x0002d24c vstr d17, [sp, 8]                                     |     __asm ("vstr d17, [sp, 8]");
    0x0002d250 vstr d16, [sp]                                        |     __asm ("vstr d16, [sp]");
    0x0002d254 bl 0x419a8                                            |     is_uint_n_range ();
    0x0002d258 adds r0, 1                                            |     r0++;
                                                                     |     if (r0 != 1) {
    0x0002d25a bne.w 0x2d08a                                         |         goto label_4;
                                                                     |     }
    0x0002d25e ldr r0, [r5, 0x28]                                    |     r0 = *((r5 + 0x28));
    0x0002d260 movs r2, 0                                            |     r2 = 0;
    0x0002d262 ldr r3, [pc, 0x148]                                   |     
    0x0002d264 mov.w r1, 0x1fc                                       |     r1 = 0x1fc;
    0x0002d268 orr r0, r0, 0x20                                      |     r0 |= 0x20;
    0x0002d26c str r0, [r5, 0x28]                                    |     *((r5 + 0x28)) = r0;
    0x0002d26e add r3, pc                                            |     r3 = 0x5a620;
    0x0002d270 ldr r0, [pc, 0x13c]                                   |     
    0x0002d272 add r0, pc                                            |     r0 = 0x5a626;
    0x0002d274 bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0002d278 b 0x2d1c8                                             |     goto label_1;
                                                                     | label_19:
    0x0002d27a vmov.i64 d17, 0xffffffff                              |     __asm ("vmov.i64 d17, 0xffffffff");
    0x0002d27e mov r0, r8                                            |     r0 = r8;
    0x0002d280 vmov.i32 d16, 0                                       |     __asm ("vmov.i32 d16, 0");
    0x0002d284 movs r3, 4                                            |     r3 = 4;
    0x0002d286 sub.w r2, r4, 0x28                                    |     r2 = r4 - 0x28;
    0x0002d28a mov.w r1, -1                                          |     r1 = -1;
    0x0002d28e vstr d17, [sp, 8]                                     |     __asm ("vstr d17, [sp, 8]");
    0x0002d292 vstr d16, [sp]                                        |     __asm ("vstr d16, [sp]");
    0x0002d296 bl 0x419a8                                            |     is_uint_n_range ();
    0x0002d29a adds r0, 1                                            |     r0++;
                                                                     |     if (r0 == 1) {
    0x0002d29c beq 0x2d354                                           |         goto label_26;
                                                                     |     }
    0x0002d29e ldrd r2, r3, [r4, -0x2c]                              |     __asm ("ldrd r2, r3, [r4, -0x2c]");
    0x0002d2a2 cmp r2, r3                                            |     
                                                                     |     if (r2 < r3) {
    0x0002d2a4 bls.w 0x2d0a2                                         |         goto label_5;
                                                                     |     }
    0x0002d2a8 ldr r0, [r5, 0x28]                                    |     r0 = *((r5 + 0x28));
    0x0002d2aa movs r2, 0                                            |     r2 = 0;
    0x0002d2ac ldr r3, [pc, 0x104]                                   |     
    0x0002d2ae movw r1, 0x20a                                        |     r1 = 0x20a;
    0x0002d2b2 orr r0, r0, 0x20                                      |     r0 |= 0x20;
    0x0002d2b6 str r0, [r5, 0x28]                                    |     *((r5 + 0x28)) = r0;
    0x0002d2b8 add r3, pc                                            |     r3 = 0x5a670;
    0x0002d2ba ldr r0, [pc, 0xfc]                                    |     
    0x0002d2bc add r0, pc                                            |     r0 = 0x5a67a;
    0x0002d2be bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0002d2c2 b 0x2d1c8                                             |     goto label_1;
                                                                     | label_22:
    0x0002d2c4 adds r3, r7, 1                                        |     r3 = r7 + 1;
                                                                     |     if (r3 == r7) {
    0x0002d2c6 beq 0x2d338                                           |         goto label_27;
                                                                     |     }
    0x0002d2c8 cmp r7, 0                                             |     
                                                                     |     if (r7 != 0) {
    0x0002d2ca bne.w 0x2d17a                                         |         goto label_6;
                                                                     |     }
    0x0002d2ce b 0x2d15e                                             |     goto label_7;
                                                                     | label_23:
    0x0002d2d0 ldr r1, [r5, 0x28]                                    |     r1 = *((r5 + 0x28));
    0x0002d2d2 movs r2, 0                                            |     r2 = 0;
    0x0002d2d4 ldr r3, [pc, 0xe4]                                    |     
    0x0002d2d6 ldr r0, [pc, 0xe8]                                    |     
    0x0002d2d8 orr r1, r1, 0x20                                      |     r1 |= 0x20;
    0x0002d2dc str r1, [r5, 0x28]                                    |     *((r5 + 0x28)) = r1;
    0x0002d2de add r3, pc                                            |     r3 = 0x5a69e;
    0x0002d2e0 add r0, pc                                            |     r0 = 0x5a6a6;
    0x0002d2e2 movw r1, 0x21e                                        |     r1 = 0x21e;
    0x0002d2e6 bl 0x40ed8                                            |     zbx_strdup2 ();
                                                                     |     do {
                                                                     | label_9:
    0x0002d2ea movs r4, 1                                            |         r4 = 1;
    0x0002d2ec str r0, [r5, 0x20]                                    |         *((r5 + 0x20)) = r0;
    0x0002d2ee b 0x2d17c                                             |         goto label_8;
                                                                     | label_20:
    0x0002d2f0 ldr r3, [r5, 0x28]                                    |         r3 = *((r5 + 0x28));
    0x0002d2f2 orr r3, r3, 0x20                                      |         r3 |= 0x20;
    0x0002d2f6 str r3, [r5, 0x28]                                    |         *((r5 + 0x28)) = r3;
    0x0002d2f8 blx 0xe3d4                                            |         r0 = fcn_0000e3d4 ();
    0x0002d2fc ldr r0, [r0]                                          |         r0 = *(r0);
    0x0002d2fe bl 0x30b74                                            |         zbx_strerror ();
    0x0002d302 ldr r1, [pc, 0xc0]                                    |         
    0x0002d304 mov r2, r0                                            |         r2 = r0;
    0x0002d306 movs r0, 0                                            |         r0 = 0;
    0x0002d308 add r1, pc                                            |         r1 = 0x5a6d2;
    0x0002d30a bl 0x44820                                            |         zbx_dsprintf ()
    0x0002d30e b 0x2d1c8                                             |         goto label_1;
                                                                     | label_21:
    0x0002d310 ldr r1, [r5, 0x28]                                    |         r1 = *((r5 + 0x28));
    0x0002d312 movs r2, 0                                            |         r2 = 0;
    0x0002d314 ldr r3, [pc, 0xb0]                                    |         
    0x0002d316 ldr r0, [pc, 0xb4]                                    |         
    0x0002d318 orr r1, r1, 0x20                                      |         r1 |= 0x20;
    0x0002d31c str r1, [r5, 0x28]                                    |         *((r5 + 0x28)) = r1;
    0x0002d31e add r3, pc                                            |         r3 = 0x5a6ea;
    0x0002d320 movw r1, 0x216                                        |         r1 = 0x216;
    0x0002d324 add r0, pc                                            |         r0 = 0x5a6f6;
    0x0002d326 bl 0x40ed8                                            |         zbx_strdup2 ();
    0x0002d32a b 0x2d2ea                                             |         
                                                                     |     } while (1);
                                                                     | label_24:
    0x0002d32c ldr r2, [r5, 0x28]                                    |     r2 = *((r5 + 0x28));
    0x0002d32e str r3, [r5, 0x18]                                    |     *((r5 + 0x18)) = r3;
    0x0002d330 orr r2, r2, 4                                         |     r2 |= 4;
    0x0002d334 str r2, [r5, 0x28]                                    |     *((r5 + 0x28)) = r2;
    0x0002d336 b 0x2d17a                                             |     goto label_6;
                                                                     | label_27:
    0x0002d338 ldr r1, [r5, 0x28]                                    |     r1 = *((r5 + 0x28));
    0x0002d33a movs r2, 0                                            |     r2 = 0;
    0x0002d33c ldr r3, [pc, 0x90]                                    |     
    0x0002d33e ldr r0, [pc, 0x94]                                    |     
    0x0002d340 orr r1, r1, 0x20                                      |     r1 |= 0x20;
    0x0002d344 str r1, [r5, 0x28]                                    |     *((r5 + 0x28)) = r1;
    0x0002d346 add r3, pc                                            |     r3 = 0x5a71a;
    0x0002d348 movw r1, 0x23a                                        |     r1 = 0x23a;
    0x0002d34c add r0, pc                                            |     r0 = 0x5a726;
    0x0002d34e bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0002d352 b 0x2d2ea                                             |     goto label_9;
                                                                     | label_26:
    0x0002d354 ldr r0, [r5, 0x28]                                    |     r0 = *((r5 + 0x28));
    0x0002d356 movs r2, 0                                            |     r2 = 0;
    0x0002d358 ldr r3, [pc, 0x7c]                                    |     
    0x0002d35a mov.w r1, 0x204                                       |     r1 = 0x204;
    0x0002d35e orr r0, r0, 0x20                                      |     r0 |= 0x20;
    0x0002d362 str r0, [r5, 0x28]                                    |     *((r5 + 0x28)) = r0;
    0x0002d364 add r3, pc                                            |     r3 = 0x5a740;
    0x0002d366 ldr r0, [pc, 0x74]                                    |     
    0x0002d368 add r0, pc                                            |     r0 = 0x5a74a;
    0x0002d36a bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0002d36e b 0x2d1c8                                             |     goto label_1;
                                                                     | label_25:
    0x0002d370 blx 0xe158                                            |     fcn_0000e158 ();
    0x0002d374 invalid                                               |     
                                                                     | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x2d3e0 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.VFS_FILE_REGMATCH ()                                 | void VFS_FILE_REGMATCH (int16_t arg_10000h, int16_t arg1, int16_t arg2) {
                                                                     |     int16_t var_10000h;
                                                                     |     int16_t var_14h;
                                                                     |     int16_t var_18h;
                                                                     |     int16_t var_1ch;
                                                                     |     int16_t var_2ch;
                                                                     |     int16_t var_4ch;
                                                                     |     int16_t var_50h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
    0x0002d3e0 blmi 0xff7fff60                                       |     __asm ("blmi 0xff7fff60");
    0x0002d3e4 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0002d3e8 mov r4, r1                                            |     r4 = r1;
    0x0002d3ea vpush {d8, d9}                                        |     __asm ("vpush {d8, d9}");
    0x0002d3ee add r2, pc                                            |     r2 += pc;
    0x0002d3f0 sub.w sp, sp, 0x10000                                 |     
    0x0002d3f4 mov r5, r0                                            |     r5 = r0;
    0x0002d3f6 ldr r3, [r2, r3]                                      |     r3 = *((r2 + r3));
    0x0002d3f8 sub sp, 0x54                                          |     
    0x0002d3fa add.w r1, sp, 0x10000                                 |     r1 += arg_10000h;
    0x0002d3fe ldr r6, [pc, 0x364]                                   |     
    0x0002d400 adds r1, 0x4c                                         |     r1 += 0x4c;
    0x0002d402 ldr r3, [r3]                                          |     r3 = *(r3);
    0x0002d404 str r3, [r1]                                          |     *(r1) = r3;
    0x0002d406 mov.w r3, 0                                           |     r3 = 0;
    0x0002d40a bl 0x3ffc0                                            |     zbx_time ();
    0x0002d40e ldr r3, [r5, 4]                                       |     r3 = *((r5 + 4));
    0x0002d410 add r6, pc                                            |     r6 = 0x5ab7a;
    0x0002d412 cmp r3, 5                                             |     
                                                                     |     if (r3 > 5) {
    0x0002d414 bgt.w 0x2d5ca                                         |         goto label_10;
                                                                     |     }
    0x0002d418 cmp r3, 0                                             |     
                                                                     |     if (r3 <= 0) {
    0x0002d41a ble.w 0x2d5aa                                         |         goto label_11;
                                                                     |     }
    0x0002d41e ldr r2, [r5, 8]                                       |     r2 = *((r5 + 8));
    0x0002d420 cmp r3, 1                                             |     
    0x0002d422 vmov.f64 d9, d0                                       |     __asm ("vmov.f64 d9, d0");
    0x0002d426 ldr r5, [r2]                                          |     r5 = *(r2);
                                                                     |     if (r3 == 1) {
    0x0002d428 beq.w 0x2d61a                                         |         goto label_12;
                                                                     |     }
    0x0002d42c cmp r3, 2                                             |     
    0x0002d42e ldr.w r8, [r2, 4]                                     |     r8 = *((r2 + 4));
                                                                     |     if (r3 == 2) {
    0x0002d432 beq.w 0x2d610                                         |         goto label_13;
                                                                     |     }
    0x0002d436 cmp r3, 3                                             |     
    0x0002d438 ldr r1, [r2, 8]                                       |     r1 = *((r2 + 8));
                                                                     |     if (r3 == 3) {
    0x0002d43a beq.w 0x2d608                                         |         goto label_14;
                                                                     |     }
    0x0002d43e cmp r3, 5                                             |     
    0x0002d440 ldr.w sb, [r2, 0xc]                                   |     sb = *((r2 + 0xc));
    0x0002d444 it ne                                                 |     
                                                                     |     if (r3 == 5) {
    0x0002d446 movne sl, 0                                           |         sl = 0;
                                                                     |     }
                                                                     |     if (r3 == 5) {
    0x0002d44a bne 0x2d450                                           |         
    0x0002d44c ldr.w sl, [r2, 0x10]                                  |         sl = *((r2 + 0x10));
                                                                     |     }
                                                                     | label_3:
    0x0002d450 cmp r5, 0                                             |     
                                                                     |     if (r5 == 0) {
    0x0002d452 beq.w 0x2d5aa                                         |         goto label_11;
                                                                     |     }
    0x0002d456 ldrb r3, [r5]                                         |     r3 = *(r5);
    0x0002d458 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0002d45a beq.w 0x2d5aa                                         |         goto label_11;
                                                                     |     }
    0x0002d45e cmp.w r8, 0                                           |     
                                                                     |     if (r8 == 0) {
    0x0002d462 beq.w 0x2d5ec                                         |         goto label_15;
                                                                     |     }
    0x0002d466 ldrb.w r3, [r8]                                       |     r3 = *(r8);
    0x0002d46a cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0002d46c beq.w 0x2d5ec                                         |         goto label_15;
                                                                     |     }
    0x0002d470 add r7, sp, 0x50                                      |     r7 += var_50h;
    0x0002d472 cmp r1, 0                                             |     
                                                                     |     if (r1 == 0) {
    0x0002d474 beq.w 0x2d5e6                                         |         goto label_16;
                                                                     |     }
    0x0002d478 movs r2, 0x20                                         |     r2 = 0x20;
    0x0002d47a sub.w r0, r7, 0x24                                    |     r0 = r7 - 0x24;
    0x0002d47e bl 0x4465c                                            |     zbx_strlcpy ();
                                                                     | label_2:
    0x0002d482 cmp.w sb, 0                                           |     
                                                                     |     if (sb != 0) {
    0x0002d486 beq 0x2d492                                           |         
    0x0002d488 ldrb.w r3, [sb]                                       |         r3 = *(sb);
    0x0002d48c cmp r3, 0                                             |         
                                                                     |         if (r3 != 0) {
    0x0002d48e bne.w 0x2d626                                         |             goto label_17;
                                                                     |         }
                                                                     |     }
    0x0002d492 movs r3, 0                                            |     r3 = 0;
    0x0002d494 str r3, [r7, -0x2c]                                   |     *((r7 - 0x2c)) = r3;
                                                                     | label_4:
    0x0002d498 cmp.w sl, 0                                           |     
                                                                     |     if (sl != 0) {
    0x0002d49c beq 0x2d4a8                                           |         
    0x0002d49e ldrb.w r3, [sl]                                       |         r3 = *(sl);
    0x0002d4a2 cmp r3, 0                                             |         
                                                                     |         if (r3 != 0) {
    0x0002d4a4 bne.w 0x2d668                                         |             goto label_18;
                                                                     |         }
                                                                     |     }
    0x0002d4a8 mov.w r3, -1                                          |     r3 = -1;
    0x0002d4ac str r3, [r7, -0x28]                                   |     *((r7 - 0x28)) = r3;
                                                                     | label_5:
    0x0002d4b0 mov r0, r5                                            |     r0 = r5;
    0x0002d4b2 movs r1, 0                                            |     r1 = 0;
    0x0002d4b4 blx 0xe030                                            |     r0 = fcntl64 ();
    0x0002d4b8 mov r3, r0                                            |     r3 = r0;
    0x0002d4ba str r0, [sp, 0x14]                                    |     var_14h = r0;
    0x0002d4bc adds r3, 1                                            |     r3++;
                                                                     |     if (r3 == 1) {
    0x0002d4be beq.w 0x2d6b2                                         |         goto label_19;
                                                                     |     }
    0x0002d4c2 ldr r3, [pc, 0x2a4]                                   |     r3 = *(0x2d76a);
    0x0002d4c4 ldr.w fp, [r6, r3]                                    |     fp = *((r6 + r3));
    0x0002d4c8 vldr s15, [fp]                                        |     __asm ("vldr s15, [fp]");
    0x0002d4cc vcvt.f64.s32 d8, s15                                  |     __asm ("vcvt.f64.s32 d8, s15");
    0x0002d4d0 bl 0x3ffc0                                            |     zbx_time ();
    0x0002d4d4 vsub.f64 d0, d0, d9                                   |     __asm ("vsub.f64 d0, d0, d9");
    0x0002d4d8 vcmpe.f64 d8, d0                                      |     __asm ("vcmpe.f64 d8, d0");
    0x0002d4dc vmrs apsr_nzcv, fpscr                                 |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                     |     if (r3 < 1) {
    0x0002d4e0 bmi.w 0x2d6f2                                         |         goto label_20;
                                                                     |     }
    0x0002d4e4 ldr r3, [pc, 0x284]                                   |     
    0x0002d4e6 movs r5, 0                                            |     r5 = 0;
    0x0002d4e8 add.w sl, sp, 0x2c                                    |     sl += var_2ch;
    0x0002d4ec add.w sb, sp, 0x4c                                    |     sb += var_4ch;
    0x0002d4f0 add r3, pc                                            |     r3 = 0x5ac60;
    0x0002d4f2 str r3, [sp, 0x18]                                    |     var_18h = r3;
                                                                     |     do {
                                                                     | label_0:
    0x0002d4f4 ldr r0, [sp, 0x14]                                    |         r0 = var_14h;
    0x0002d4f6 mov r3, sl                                            |         r3 = sl;
    0x0002d4f8 mov.w r2, 0x10000                                     |         r2 = 0x10000;
    0x0002d4fc mov r1, sb                                            |         r1 = sb;
    0x0002d4fe bl 0x3fa5c                                            |         r0 = zbx_read ();
    0x0002d502 subs r6, r0, 0                                        |         r6 = r0 - 0;
                                                                     |         if (r6 <= r0) {
    0x0002d504 ble.w 0x2d716                                         |             goto label_21;
                                                                     |         }
    0x0002d508 vldr s15, [fp]                                        |         __asm ("vldr s15, [fp]");
    0x0002d50c vcvt.f64.s32 d8, s15                                  |         __asm ("vcvt.f64.s32 d8, s15");
    0x0002d510 bl 0x3ffc0                                            |         zbx_time ();
    0x0002d514 vsub.f64 d0, d0, d9                                   |         __asm ("vsub.f64 d0, d0, d9");
    0x0002d518 vcmpe.f64 d8, d0                                      |         __asm ("vcmpe.f64 d8, d0");
    0x0002d51c vmrs apsr_nzcv, fpscr                                 |         __asm ("vmrs apsr_nzcv, fpscr");
                                                                     |         if (r6 < r0) {
    0x0002d520 bmi.w 0x2d6d2                                         |             goto label_22;
                                                                     |         }
    0x0002d524 ldr r3, [r7, -0x2c]                                   |         r3 = *((r7 - 0x2c));
    0x0002d528 adds r5, 1                                            |         r5++;
    0x0002d52a cmp r3, r5                                            |         
    0x0002d52c bhi 0x2d4f4                                           |         
                                                                     |     } while (r3 > r5);
    0x0002d52e mov r1, r6                                            |     r1 = r6;
    0x0002d530 mov r2, sl                                            |     r2 = sl;
    0x0002d532 mov r0, sb                                            |     r0 = sb;
    0x0002d534 bl 0x4587c                                            |     convert_to_utf8 ();
    0x0002d538 ldr r1, [sp, 0x18]                                    |     r1 = var_18h;
    0x0002d53a mov r6, r0                                            |     r6 = r0;
    0x0002d53c bl 0x444f4                                            |     zbx_rtrim ();
    0x0002d540 movs r2, 0                                            |     r2 = 0;
    0x0002d542 mov r1, r8                                            |     r1 = r8;
    0x0002d544 mov r0, r6                                            |     r0 = r6;
    0x0002d546 bl 0x31a84                                            |     r0 = zbx_regexp_match ();
    0x0002d54a mov r3, r0                                            |     r3 = r0;
                                                                     |     if (r6 != 0) {
    0x0002d54c cbz r6, 0x2d558                                       |         
    0x0002d54e str r0, [sp, 0x1c]                                    |         var_1ch = r0;
    0x0002d550 mov r0, r6                                            |         r0 = r6;
    0x0002d552 blx 0xde30                                            |         fcn_0000de30 ();
    0x0002d556 ldr r3, [sp, 0x1c]                                    |         r3 = var_1ch;
                                                                     |     }
    0x0002d558 ldr r2, [r7, -0x28]                                   |     r2 = *((r7 - 0x28));
    0x0002d55c cmp r2, r5                                            |     
                                                                     |     if (r2 < r5) {
    0x0002d55e bls.w 0x2d70e                                         |         goto label_23;
                                                                     |     }
    0x0002d562 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0002d564 beq 0x2d4f4                                           |         goto label_0;
                                                                     |     }
    0x0002d566 movs r3, 1                                            |     r3 = 1;
                                                                     | label_7:
    0x0002d568 ldr r2, [r4, 0x28]                                    |     r2 = *((r4 + 0x28));
                                                                     | label_9:
    0x0002d56a asrs r1, r3, 0x1f                                     |     r1 = r3 >> 0x1f;
    0x0002d56c movs r5, 0                                            |     r5 = 0;
    0x0002d56e orr r2, r2, 1                                         |     r2 |= 1;
    0x0002d572 str r3, [r4, 8]                                       |     *((r4 + 8)) = r3;
    0x0002d574 str r2, [r4, 0x28]                                    |     *((r4 + 0x28)) = r2;
    0x0002d576 str r1, [r4, 0xc]                                     |     *((r4 + 0xc)) = r1;
                                                                     | label_6:
    0x0002d578 ldr r0, [sp, 0x14]                                    |     r0 = var_14h;
    0x0002d57a blx 0xe0ac                                            |     fcn_0000e0ac ();
                                                                     |     do {
    0x0002d57e ldr r2, [pc, 0x1f0]                                   |         
    0x0002d580 add.w r1, sp, 0x10000                                 |         r1 += arg_10000h;
    0x0002d584 ldr r3, [pc, 0x1d8]                                   |         r3 = *(0x2d760);
    0x0002d586 adds r1, 0x4c                                         |         r1 += 0x4c;
    0x0002d588 add r2, pc                                            |         r2 = 0x5acfe;
    0x0002d58a ldr r3, [r2, r3]                                      |         r3 = *(0x5acfe);
    0x0002d58c ldr r2, [r3]                                          |         r2 = *(0x5acfe);
    0x0002d58e ldr r3, [r1]                                          |         r3 = *(r1);
    0x0002d590 eors r2, r3                                           |         r2 ^= r3;
    0x0002d592 mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x0002d596 bne.w 0x2d756                                         |             goto label_24;
                                                                     |         }
    0x0002d59a mov r0, r5                                            |         r0 = r5;
    0x0002d59c add.w sp, sp, 0x10000                                 |         
    0x0002d5a0 add sp, 0x54                                          |         
    0x0002d5a2 vpop {d8, d9}                                         |         __asm ("vpop {d8, d9}");
    0x0002d5a6 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_11:
    0x0002d5aa ldr r0, [r4, 0x28]                                    |         r0 = *((r4 + 0x28));
    0x0002d5ac movs r2, 0                                            |         r2 = 0;
    0x0002d5ae ldr r3, [pc, 0x1c4]                                   |         
    0x0002d5b0 movw r1, 0x261                                        |         r1 = 0x261;
    0x0002d5b4 orr r0, r0, 0x20                                      |         r0 |= 0x20;
    0x0002d5b8 str r0, [r4, 0x28]                                    |         *((r4 + 0x28)) = r0;
    0x0002d5ba add r3, pc                                            |         r3 = 0x5ad34;
    0x0002d5bc ldr r0, [pc, 0x1b8]                                   |         
    0x0002d5be add r0, pc                                            |         r0 = 0x5ad3a;
    0x0002d5c0 bl 0x40ed8                                            |         zbx_strdup2 ();
                                                                     | label_1:
    0x0002d5c4 movs r5, 1                                            |         r5 = 1;
    0x0002d5c6 str r0, [r4, 0x20]                                    |         *((r4 + 0x20)) = r0;
    0x0002d5c8 b 0x2d57e                                             |         
                                                                     |     } while (1);
                                                                     | label_10:
    0x0002d5ca ldr r0, [r4, 0x28]                                    |     r0 = *((r4 + 0x28));
    0x0002d5cc movs r2, 0                                            |     r2 = 0;
    0x0002d5ce ldr r3, [pc, 0x1ac]                                   |     
    0x0002d5d0 movw r1, 0x255                                        |     r1 = 0x255;
    0x0002d5d4 orr r0, r0, 0x20                                      |     r0 |= 0x20;
    0x0002d5d8 str r0, [r4, 0x28]                                    |     *((r4 + 0x28)) = r0;
    0x0002d5da add r3, pc                                            |     r3 = 0x5ad5c;
    0x0002d5dc ldr r0, [pc, 0x1a0]                                   |     
    0x0002d5de add r0, pc                                            |     r0 = 0x5ad62;
    0x0002d5e0 bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0002d5e4 b 0x2d5c4                                             |     goto label_1;
                                                                     | label_16:
    0x0002d5e6 strb r1, [r7, -0x24]                                  |     *((r7 - 0x24)) = r1;
    0x0002d5ea b 0x2d482                                             |     goto label_2;
                                                                     | label_15:
    0x0002d5ec ldr r0, [r4, 0x28]                                    |     r0 = *((r4 + 0x28));
    0x0002d5ee movs r2, 0                                            |     r2 = 0;
    0x0002d5f0 ldr r3, [pc, 0x190]                                   |     
    0x0002d5f2 movw r1, 0x267                                        |     r1 = 0x267;
    0x0002d5f6 orr r0, r0, 0x20                                      |     r0 |= 0x20;
    0x0002d5fa str r0, [r4, 0x28]                                    |     *((r4 + 0x28)) = r0;
    0x0002d5fc add r3, pc                                            |     r3 = 0x5ad84;
    0x0002d5fe ldr r0, [pc, 0x188]                                   |     
    0x0002d600 add r0, pc                                            |     r0 = 0x5ad8e;
    0x0002d602 bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0002d606 b 0x2d5c4                                             |     goto label_1;
                                                                     | label_14:
    0x0002d608 mov.w sb, 0                                           |     sb = 0;
    0x0002d60c mov sl, sb                                            |     sl = sb;
    0x0002d60e b 0x2d450                                             |     goto label_3;
                                                                     | label_13:
    0x0002d610 mov.w sb, 0                                           |     sb = 0;
    0x0002d614 mov r1, sb                                            |     r1 = sb;
    0x0002d616 mov sl, sb                                            |     sl = sb;
    0x0002d618 b 0x2d450                                             |     goto label_3;
                                                                     | label_12:
    0x0002d61a mov.w sb, 0                                           |     sb = 0;
    0x0002d61e mov r1, sb                                            |     r1 = sb;
    0x0002d620 mov r8, sb                                            |     r8 = sb;
    0x0002d622 mov sl, sb                                            |     sl = sb;
    0x0002d624 b 0x2d450                                             |     goto label_3;
                                                                     | label_17:
    0x0002d626 vmov.i64 d17, 0xffffffff                              |     __asm ("vmov.i64 d17, 0xffffffff");
    0x0002d62a mov r0, sb                                            |     r0 = sb;
    0x0002d62c vmov.i32 d16, 0                                       |     __asm ("vmov.i32 d16, 0");
    0x0002d630 movs r3, 4                                            |     r3 = 4;
    0x0002d632 sub.w r2, r7, 0x2c                                    |     r2 = r7 - 0x2c;
    0x0002d636 mov.w r1, -1                                          |     r1 = -1;
    0x0002d63a vstr d17, [sp, 8]                                     |     __asm ("vstr d17, [sp, 8]");
    0x0002d63e vstr d16, [sp]                                        |     __asm ("vstr d16, [sp]");
    0x0002d642 bl 0x419a8                                            |     is_uint_n_range ();
    0x0002d646 adds r0, 1                                            |     r0++;
                                                                     |     if (r0 != 1) {
    0x0002d648 bne.w 0x2d498                                         |         goto label_4;
                                                                     |     }
    0x0002d64c ldr r0, [r4, 0x28]                                    |     r0 = *((r4 + 0x28));
    0x0002d64e movs r2, 0                                            |     r2 = 0;
    0x0002d650 ldr r3, [pc, 0x138]                                   |     
    0x0002d652 mov.w r1, 0x274                                       |     r1 = 0x274;
    0x0002d656 orr r0, r0, 0x20                                      |     r0 |= 0x20;
    0x0002d65a str r0, [r4, 0x28]                                    |     *((r4 + 0x28)) = r0;
    0x0002d65c add r3, pc                                            |     r3 = 0x5adec;
    0x0002d65e ldr r0, [pc, 0x130]                                   |     
    0x0002d660 add r0, pc                                            |     r0 = 0x5adf6;
    0x0002d662 bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0002d666 b 0x2d5c4                                             |     goto label_1;
                                                                     | label_18:
    0x0002d668 vmov.i64 d17, 0xffffffff                              |     __asm ("vmov.i64 d17, 0xffffffff");
    0x0002d66c mov r0, sl                                            |     r0 = sl;
    0x0002d66e vmov.i32 d16, 0                                       |     __asm ("vmov.i32 d16, 0");
    0x0002d672 movs r3, 4                                            |     r3 = 4;
    0x0002d674 sub.w r2, r7, 0x28                                    |     r2 = r7 - 0x28;
    0x0002d678 mov.w r1, -1                                          |     r1 = -1;
    0x0002d67c vstr d17, [sp, 8]                                     |     __asm ("vstr d17, [sp, 8]");
    0x0002d680 vstr d16, [sp]                                        |     __asm ("vstr d16, [sp]");
    0x0002d684 bl 0x419a8                                            |     is_uint_n_range ();
    0x0002d688 adds r0, 1                                            |     r0++;
                                                                     |     if (r0 == 1) {
    0x0002d68a beq 0x2d736                                           |         goto label_25;
                                                                     |     }
    0x0002d68c ldrd r2, r3, [r7, -0x2c]                              |     __asm ("ldrd r2, r3, [r7, -0x2c]");
    0x0002d690 cmp r2, r3                                            |     
                                                                     |     if (r2 < r3) {
    0x0002d692 bls.w 0x2d4b0                                         |         goto label_5;
                                                                     |     }
    0x0002d696 ldr r0, [r4, 0x28]                                    |     r0 = *((r4 + 0x28));
    0x0002d698 movs r2, 0                                            |     r2 = 0;
    0x0002d69a ldr r3, [pc, 0xf8]                                    |     
    0x0002d69c movw r1, 0x282                                        |     r1 = 0x282;
    0x0002d6a0 orr r0, r0, 0x20                                      |     r0 |= 0x20;
    0x0002d6a4 str r0, [r4, 0x28]                                    |     *((r4 + 0x28)) = r0;
    0x0002d6a6 add r3, pc                                            |     r3 = 0x5ae40;
    0x0002d6a8 ldr r0, [pc, 0xec]                                    |     
    0x0002d6aa add r0, pc                                            |     r0 = 0x5ae46;
    0x0002d6ac bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0002d6b0 b 0x2d5c4                                             |     goto label_1;
                                                                     | label_19:
    0x0002d6b2 ldr r3, [r4, 0x28]                                    |     r3 = *((r4 + 0x28));
    0x0002d6b4 orr r3, r3, 0x20                                      |     r3 |= 0x20;
    0x0002d6b8 str r3, [r4, 0x28]                                    |     *((r4 + 0x28)) = r3;
    0x0002d6ba blx 0xe3d4                                            |     r0 = fcn_0000e3d4 ();
    0x0002d6be ldr r0, [r0]                                          |     r0 = *(r0);
    0x0002d6c0 bl 0x30b74                                            |     zbx_strerror ();
    0x0002d6c4 ldr r1, [pc, 0xd4]                                    |     
    0x0002d6c6 mov r2, r0                                            |     r2 = r0;
    0x0002d6c8 movs r0, 0                                            |     r0 = 0;
    0x0002d6ca add r1, pc                                            |     r1 = 0x5ae6a;
    0x0002d6cc bl 0x44820                                            |     zbx_dsprintf ()
    0x0002d6d0 b 0x2d5c4                                             |     goto label_1;
                                                                     | label_22:
    0x0002d6d2 ldr r1, [r4, 0x28]                                    |     r1 = *((r4 + 0x28));
    0x0002d6d4 movs r2, 0                                            |     r2 = 0;
    0x0002d6d6 ldr r3, [pc, 0xc8]                                    |     
    0x0002d6d8 ldr r0, [pc, 0xc8]                                    |     
    0x0002d6da orr r1, r1, 0x20                                      |     r1 |= 0x20;
    0x0002d6de str r1, [r4, 0x28]                                    |     *((r4 + 0x28)) = r1;
    0x0002d6e0 add r3, pc                                            |     r3 = 0x5ae86;
    0x0002d6e2 add r0, pc                                            |     r0 = 0x5ae8a;
    0x0002d6e4 mov.w r1, 0x298                                       |     r1 = 0x298;
    0x0002d6e8 bl 0x40ed8                                            |     zbx_strdup2 ();
                                                                     |     do {
                                                                     | label_8:
    0x0002d6ec movs r5, 1                                            |         r5 = 1;
    0x0002d6ee str r0, [r4, 0x20]                                    |         *((r4 + 0x20)) = r0;
    0x0002d6f0 b 0x2d578                                             |         goto label_6;
                                                                     | label_20:
    0x0002d6f2 ldr r1, [r4, 0x28]                                    |         r1 = *((r4 + 0x28));
    0x0002d6f4 movs r2, 0                                            |         r2 = 0;
    0x0002d6f6 ldr r3, [pc, 0xb0]                                    |         
    0x0002d6f8 ldr r0, [pc, 0xb0]                                    |         
    0x0002d6fa orr r1, r1, 0x20                                      |         r1 |= 0x20;
    0x0002d6fe str r1, [r4, 0x28]                                    |         *((r4 + 0x28)) = r1;
    0x0002d700 add r3, pc                                            |         r3 = 0x5aeae;
    0x0002d702 movw r1, 0x28e                                        |         r1 = 0x28e;
    0x0002d706 add r0, pc                                            |         r0 = 0x5aeb6;
    0x0002d708 bl 0x40ed8                                            |         zbx_strdup2 ();
    0x0002d70c b 0x2d6ec                                             |         
                                                                     |     } while (1);
                                                                     | label_23:
    0x0002d70e subs r3, 0                                            |     
    0x0002d710 it ne                                                 |     
                                                                     |     if (r3 == 0) {
    0x0002d712 movne r3, 1                                           |         r3 = 1;
                                                                     |     }
    0x0002d714 b 0x2d568                                             |     goto label_7;
                                                                     | label_21:
    0x0002d716 adds r6, 1                                            |     r6++;
    0x0002d718 ldr r2, [r4, 0x28]                                    |     r2 = *((r4 + 0x28));
                                                                     |     if (r6 != 1) {
    0x0002d71a bne 0x2d752                                           |         goto label_26;
                                                                     |     }
    0x0002d71c ldr r3, [pc, 0x90]                                    |     
    0x0002d71e orr r1, r2, 0x20                                      |     r1 = r2 | 0x20;
    0x0002d722 ldr r0, [pc, 0x90]                                    |     
    0x0002d724 movs r2, 0                                            |     r2 = 0;
    0x0002d726 str r1, [r4, 0x28]                                    |     *((r4 + 0x28)) = r1;
    0x0002d728 movw r1, 0x2ab                                        |     r1 = 0x2ab;
    0x0002d72c add r3, pc                                            |     r3 = 0x5aee0;
    0x0002d72e add r0, pc                                            |     r0 = 0x5aee8;
    0x0002d730 bl 0x40ed8                                            |     zbx_strdup2 ();
                                                                     |     do {
    0x0002d734 b 0x2d6ec                                             |         goto label_8;
                                                                     | label_25:
    0x0002d736 ldr r0, [r4, 0x28]                                    |         r0 = *((r4 + 0x28));
    0x0002d738 movs r2, 0                                            |         r2 = 0;
    0x0002d73a ldr r3, [pc, 0x7c]                                    |         
    0x0002d73c mov.w r1, 0x27c                                       |         r1 = 0x27c;
    0x0002d740 orr r0, r0, 0x20                                      |         r0 |= 0x20;
    0x0002d744 str r0, [r4, 0x28]                                    |         *((r4 + 0x28)) = r0;
    0x0002d746 add r3, pc                                            |         r3 = 0x5af04;
    0x0002d748 ldr r0, [pc, 0x70]                                    |         
    0x0002d74a add r0, pc                                            |         r0 = 0x5af0a;
    0x0002d74c bl 0x40ed8                                            |         zbx_strdup2 ();
    0x0002d750 b 0x2d5c4                                             |         goto label_1;
                                                                     | label_26:
    0x0002d752 movs r3, 0                                            |         r3 = 0;
    0x0002d754 b 0x2d56a                                             |         goto label_9;
                                                                     | label_24:
    0x0002d756 blx 0xe158                                            |         fcn_0000e158 ();
    0x0002d75a nop                                                   |         
    0x0002d75c b 0x2d734                                             |         
                                                                     |     } while (1);
                                                                     | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x2c630 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.VFS_FILE_SIZE ()                                     | void VFS_FILE_SIZE (int16_t arg_10000h, int16_t arg1, int16_t arg2) {
                                                                     |     int16_t var_10000h;
                                                                     |     int16_t var_6ch;
                                                                     |     int16_t var_70h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
    0x0002c630 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0002c634 mov r6, r1                                            |     r6 = r1;
    0x0002c636 ldr r4, [pc, 0x22c]                                   |     
    0x0002c638 ldr r2, [pc, 0x22c]                                   |     r2 = *(0x2c868);
    0x0002c63a ldr r3, [r0, 4]                                       |     r3 = *((r0 + 4));
    0x0002c63c add r4, pc                                            |     r4 = 0x58ea6;
    0x0002c63e vpush {d8, d9}                                        |     __asm ("vpush {d8, d9}");
    0x0002c642 sub.w sp, sp, 0x10000                                 |     
    0x0002c646 ldr r7, [pc, 0x224]                                   |     
    0x0002c648 sub sp, 0x74                                          |     
    0x0002c64a ldr r2, [r4, r2]                                      |     
    0x0002c64c add.w r5, sp, 0x10000                                 |     r5 += arg_10000h;
    0x0002c650 cmp r3, 2                                             |     
    0x0002c652 add.w r5, r5, 0x6c                                    |     r5 += var_6ch;
    0x0002c656 add r7, pc                                            |     r7 = 0x58ec8;
    0x0002c658 ldr r2, [r2]                                          |     r2 = *(0x58ea6);
    0x0002c65a str r2, [r5]                                          |     *(r5) = r2;
    0x0002c65c mov.w r2, 0                                           |     r2 = 0;
                                                                     |     if (r3 > 2) {
    0x0002c660 bgt 0x2c70e                                           |         goto label_3;
                                                                     |     }
    0x0002c662 cmp r3, 0                                             |     
                                                                     |     if (r3 <= 0) {
    0x0002c664 ble 0x2c6c8                                           |         goto label_4;
                                                                     |     }
    0x0002c666 ldr r2, [r0, 8]                                       |     r2 = *((r0 + 8));
    0x0002c668 cmp r3, 2                                             |     
    0x0002c66a ldr r5, [r2]                                          |     r5 = *(r2);
                                                                     |     if (r3 != 2) {
    0x0002c66c bne 0x2c6c0                                           |         goto label_5;
                                                                     |     }
    0x0002c66e ldr.w r8, [r2, 4]                                     |     r8 = *((r2 + 4));
                                                                     |     if (r5 == 0) {
    0x0002c672 cbz r5, 0x2c6c8                                       |         goto label_4;
                                                                     |     }
    0x0002c674 ldrb r3, [r5]                                         |     r3 = *(r5);
                                                                     |     if (r3 == 0) {
    0x0002c676 cbz r3, 0x2c6c8                                       |         goto label_4;
                                                                     |     }
    0x0002c678 cmp.w r8, 0                                           |     
                                                                     |     if (r8 == 0) {
    0x0002c67c beq 0x2c69e                                           |         goto label_6;
                                                                     |     }
    0x0002c67e ldr r1, [pc, 0x1f0]                                   |     
    0x0002c680 mov r0, r8                                            |     r0 = r8;
    0x0002c682 add r1, pc                                            |     r1 = 0x58ef8;
    0x0002c684 blx 0xe3b0                                            |     r0 = fcn_0000e3b0 ();
    0x0002c688 mov r4, r0                                            |     r4 = r0;
    0x0002c68a cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0002c68c beq 0x2c72a                                           |         goto label_7;
                                                                     |     }
    0x0002c68e ldr r1, [pc, 0x1e4]                                   |     
    0x0002c690 mov r0, r8                                            |     r0 = r8;
    0x0002c692 add r1, pc                                            |     r1 = 0x58f0c;
    0x0002c694 blx 0xe3b0                                            |     r0 = fcn_0000e3b0 ();
    0x0002c698 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0002c69a bne.w 0x2c802                                         |         goto label_8;
                                                                     |     }
                                                                     |     do {
                                                                     | label_6:
    0x0002c69e mov r0, r5                                            |         r0 = r5;
    0x0002c6a0 mov r1, sp                                            |         r1 = sp;
    0x0002c6a2 blx 0xdec0                                            |         fcn_0000dec0 ();
    0x0002c6a6 add r4, sp, 0x70                                      |         r4 += var_70h;
    0x0002c6a8 ldr r3, [r6, 0x28]                                    |         r3 = *((r6 + 0x28));
    0x0002c6aa cmp r0, 0                                             |         
                                                                     |         if (r0 != 0) {
    0x0002c6ac bne 0x2c7a6                                           |             goto label_9;
                                                                     |         }
    0x0002c6ae ldrd r0, r1, [r4, -0x40]                              |         __asm ("ldrd r0, r1, [r4, -0x40]");
    0x0002c6b2 orr r3, r3, 1                                         |         r3 |= 1;
    0x0002c6b6 str r3, [r6, 0x28]                                    |         *((r6 + 0x28)) = r3;
    0x0002c6b8 strd r0, r1, [r6, 8]                                  |         __asm ("strd r0, r1, [r6, 8]");
                                                                     | label_2:
    0x0002c6bc movs r0, 0                                            |         r0 = 0;
    0x0002c6be b 0x2c6e4                                             |         goto label_10;
                                                                     |         if (r5 == 0) {
                                                                     | label_5:
    0x0002c6c0 cbz r5, 0x2c6c8                                       |             goto label_4;
                                                                     |         }
    0x0002c6c2 ldrb r3, [r5]                                         |         r3 = *(r5);
    0x0002c6c4 cmp r3, 0                                             |         
    0x0002c6c6 bne 0x2c69e                                           |         
                                                                     |     } while (r3 != 0);
                                                                     | label_4:
    0x0002c6c8 ldr r0, [r6, 0x28]                                    |     r0 = *((r6 + 0x28));
    0x0002c6ca movs r2, 0                                            |     r2 = 0;
    0x0002c6cc ldr r3, [pc, 0x1a8]                                   |     
    0x0002c6ce movs r1, 0x39                                         |     r1 = 0x39;
    0x0002c6d0 orr r0, r0, 0x20                                      |     r0 |= 0x20;
    0x0002c6d4 str r0, [r6, 0x28]                                    |     *((r6 + 0x28)) = r0;
    0x0002c6d6 add r3, pc                                            |     r3 = 0x58f52;
    0x0002c6d8 ldr r0, [pc, 0x1a0]                                   |     
    0x0002c6da add r0, pc                                            |     r0 = 0x58f5a;
    0x0002c6dc bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0002c6e0 str r0, [r6, 0x20]                                    |     *((r6 + 0x20)) = r0;
                                                                     |     do {
                                                                     | label_1:
    0x0002c6e2 movs r0, 1                                            |         r0 = 1;
                                                                     | label_10:
    0x0002c6e4 ldr r2, [pc, 0x198]                                   |         
    0x0002c6e6 add.w r1, sp, 0x10000                                 |         r1 += arg_10000h;
    0x0002c6ea ldr r3, [pc, 0x17c]                                   |         r3 = *(0x2c86a);
    0x0002c6ec adds r1, 0x6c                                         |         r1 += 0x6c;
    0x0002c6ee add r2, pc                                            |         r2 = 0x58f72;
    0x0002c6f0 ldr r3, [r2, r3]                                      |         r3 = *(0x58f72);
    0x0002c6f2 ldr r2, [r3]                                          |         r2 = *(0x58f72);
    0x0002c6f4 ldr r3, [r1]                                          |         r3 = *(r1);
    0x0002c6f6 eors r2, r3                                           |         r2 ^= r3;
    0x0002c6f8 mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x0002c6fc bne.w 0x2c860                                         |             goto label_11;
                                                                     |         }
    0x0002c700 add.w sp, sp, 0x10000                                 |         
    0x0002c704 add sp, 0x74                                          |         
    0x0002c706 vpop {d8, d9}                                         |         __asm ("vpop {d8, d9}");
    0x0002c70a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_3:
    0x0002c70e ldr r0, [r1, 0x28]                                    |         r0 = *((r1 + 0x28));
    0x0002c710 movs r2, 0                                            |         r2 = 0;
    0x0002c712 ldr r3, [pc, 0x170]                                   |         
    0x0002c714 movs r1, 0x30                                         |         r1 = 0x30;
    0x0002c716 orr r0, r0, 0x20                                      |         r0 |= 0x20;
    0x0002c71a str r0, [r6, 0x28]                                    |         *((r6 + 0x28)) = r0;
    0x0002c71c add r3, pc                                            |         r3 = 0x58fa6;
    0x0002c71e ldr r0, [pc, 0x168]                                   |         
    0x0002c720 add r0, pc                                            |         r0 = 0x58fae;
    0x0002c722 bl 0x40ed8                                            |         zbx_strdup2 ();
    0x0002c726 str r0, [r6, 0x20]                                    |         *((r6 + 0x20)) = r0;
    0x0002c728 b 0x2c6e2                                             |         
                                                                     |     } while (1);
                                                                     | label_7:
    0x0002c72a bl 0x3ffc0                                            |     zbx_time ();
    0x0002c72e mov r0, r5                                            |     r0 = r5;
    0x0002c730 mov r1, r4                                            |     r1 = r4;
    0x0002c732 vmov.f64 d9, d0                                       |     __asm ("vmov.f64 d9, d0");
    0x0002c736 blx 0xe030                                            |     r0 = fcntl64 ();
    0x0002c73a cmp.w r0, -1                                          |     
    0x0002c73e mov sb, r0                                            |     sb = r0;
    0x0002c740 itt ne                                                |     
                                                                     |     if (r0 == -1) {
    0x0002c742 movne r5, r4                                          |         r5 = r4;
                                                                     |     }
                                                                     |     if (r0 == -1) {
    0x0002c744 addne r8, sp, 0x6c                                    |         r8 += var_6ch;
                                                                     |     }
                                                                     |     if (r0 == -1) {
    0x0002c748 beq 0x2c83e                                           |         goto label_12;
                                                                     |     }
                                                                     |     do {
    0x0002c74a mov.w r2, 0x10000                                     |         r2 = 0x10000;
    0x0002c74e mov r1, r8                                            |         r1 = r8;
    0x0002c750 mov r0, sb                                            |         r0 = sb;
    0x0002c752 blx 0xde54                                            |         r0 = fcn_0000de54 ();
    0x0002c756 subs.w fp, r0, 0                                      |         
                                                                     |         if (fp <= r0) {
    0x0002c75a ble 0x2c7c6                                           |             goto label_13;
                                                                     |         }
    0x0002c75c ldr r3, [pc, 0x12c]                                   |         r3 = *(0x2c88c);
    0x0002c75e ldr r3, [r7, r3]                                      |         r3 = *((r7 + r3));
    0x0002c760 vldr s16, [r3]                                        |         __asm ("vldr s16, [r3]");
    0x0002c764 bl 0x3ffc0                                            |         zbx_time ();
    0x0002c768 vsub.f64 d0, d0, d9                                   |         __asm ("vsub.f64 d0, d0, d9");
    0x0002c76c vcvt.f64.s32 d8, s16                                  |         __asm ("vcvt.f64.s32 d8, s16");
    0x0002c770 vcmpe.f64 d8, d0                                      |         __asm ("vcmpe.f64 d8, d0");
    0x0002c774 vmrs apsr_nzcv, fpscr                                 |         __asm ("vmrs apsr_nzcv, fpscr");
                                                                     |         if (fp < r0) {
    0x0002c778 bmi 0x2c7e0                                           |             goto label_14;
                                                                     |         }
    0x0002c77a mov sl, r8                                            |         sl = r8;
                                                                     | label_0:
    0x0002c77c mov r2, fp                                            |         r2 = fp;
    0x0002c77e movs r1, 0xa                                          |         r1 = 0xa;
    0x0002c780 mov r0, sl                                            |         r0 = sl;
    0x0002c782 blx 0xe394                                            |         r0 = fcn_0000e394 ();
    0x0002c786 cmp r0, 0                                             |         
    0x0002c788 beq 0x2c74a                                           |         
                                                                     |     } while (r0 == 0);
    0x0002c78a sub.w sl, r0, sl                                      |     sl = r0 - sl;
    0x0002c78e adds r4, 1                                            |     r4++;
    0x0002c790 adc r5, r5, 0                                         |     __asm ("adc r5, r5, 0");
    0x0002c794 cmp fp, sl                                            |     
    0x0002c796 ittt hi                                               |     
                                                                     |     if (fp <= sl) {
    0x0002c798 addhi fp, fp, -1                                      |         
                                                                     |     }
                                                                     |     if (fp <= sl) {
    0x0002c79c addhi r0, 1                                           |         r0++;
                                                                     |     }
                                                                     |     if (fp > sl) {
    0x0002c79e sub.w fp, fp, sl                                      |         
                                                                     |     }
    0x0002c7a2 mov sl, r0                                            |     sl = r0;
    0x0002c7a4 b 0x2c77c                                             |     goto label_0;
                                                                     | label_9:
    0x0002c7a6 orr r3, r3, 0x20                                      |     r3 |= 0x20;
    0x0002c7aa str r3, [r6, 0x28]                                    |     *((r6 + 0x28)) = r3;
    0x0002c7ac blx 0xe3d4                                            |     r0 = fcn_0000e3d4 ();
    0x0002c7b0 ldr r0, [r0]                                          |     r0 = *(r0);
    0x0002c7b2 bl 0x30b74                                            |     zbx_strerror ();
    0x0002c7b6 ldr r1, [pc, 0xd8]                                    |     
    0x0002c7b8 mov r2, r0                                            |     r2 = r0;
    0x0002c7ba movs r0, 0                                            |     r0 = 0;
    0x0002c7bc add r1, pc                                            |     r1 = 0x59052;
    0x0002c7be bl 0x44820                                            |     zbx_dsprintf ()
    0x0002c7c0 invalid                                               |     
    0x0002c7c4 b 0x2c6e2                                             |     goto label_1;
                                                                     | label_13:
    0x0002c7c6 mov r0, sb                                            |     r0 = sb;
    0x0002c7c8 blx 0xe0ac                                            |     fcn_0000e0ac ();
    0x0002c7cc ldr r3, [r6, 0x28]                                    |     r3 = *((r6 + 0x28));
    0x0002c7ce cmp.w fp, 0                                           |     
    0x0002c7d0 lsrs r0, r0, 0x1c                                     |     r0 >>= 0x1c;
                                                                     |     if (r0 == r0) {
    0x0002c7d2 bne 0x2c81e                                           |         
    0x0002c7d4 orr r3, r3, 1                                         |         r3 |= 1;
    0x0002c7d8 strd r4, r5, [r6, 8]                                  |         __asm ("strd r4, r5, [r6, 8]");
    0x0002c7dc str r3, [r6, 0x28]                                    |         *((r6 + 0x28)) = r3;
    0x0002c7de b 0x2c6bc                                             |         goto label_2;
                                                                     | label_14:
    0x0002c7e0 ldr r1, [r6, 0x28]                                    |         r1 = *((r6 + 0x28));
    0x0002c7e2 movs r2, 0                                            |         r2 = 0;
    0x0002c7e4 ldr r3, [pc, 0xac]                                    |         
    0x0002c7e6 ldr r0, [pc, 0xb0]                                    |         
    0x0002c7e8 orr r1, r1, 0x20                                      |         r1 |= 0x20;
    0x0002c7ec str r1, [r6, 0x28]                                    |         *((r6 + 0x28)) = r1;
    0x0002c7ee add r3, pc                                            |         r3 = 0x59086;
    0x0002c7f0 movs r1, 0x54                                         |         r1 = 0x54;
    0x0002c7f2 add r0, pc                                            |         r0 = 0x59090;
    0x0002c7f4 bl 0x40ed8                                            |         zbx_strdup2 ();
    0x0002c7f8 str r0, [r6, 0x20]                                    |         *((r6 + 0x20)) = r0;
    0x0002c7fa mov r0, sb                                            |         r0 = sb;
    0x0002c7fc blx 0xe0ac                                            |         fcn_0000e0ac ();
    0x0002c800 b 0x2c6e2                                             |         goto label_1;
                                                                     | label_8:
    0x0002c802 ldr r0, [r6, 0x28]                                    |         r0 = *((r6 + 0x28));
    0x0002c804 movs r2, 0                                            |         r2 = 0;
    0x0002c806 ldr r3, [pc, 0x94]                                    |         
    0x0002c808 movs r1, 0x75                                         |         r1 = 0x75;
    0x0002c80a orr r0, r0, 0x20                                      |         r0 |= 0x20;
    0x0002c80e str r0, [r6, 0x28]                                    |         *((r6 + 0x28)) = r0;
    0x0002c810 add r3, pc                                            |         r3 = 0x590b2;
    0x0002c812 ldr r0, [pc, 0x8c]                                    |         
    0x0002c814 add r0, pc                                            |         r0 = 0x590ba;
    0x0002c816 bl 0x40ed8                                            |         zbx_strdup2 ();
    0x0002c81a str r0, [r6, 0x20]                                    |         *((r6 + 0x20)) = r0;
    0x0002c81c b 0x2c6e2                                             |         goto label_1;
                                                                     |     }
    0x0002c81e orr r3, r3, 0x20                                      |     r3 |= 0x20;
    0x0002c822 str r3, [r6, 0x28]                                    |     *((r6 + 0x28)) = r3;
    0x0002c824 blx 0xe3d4                                            |     r0 = fcn_0000e3d4 ();
    0x0002c828 ldr r0, [r0]                                          |     r0 = *(r0);
    0x0002c82a bl 0x30b74                                            |     zbx_strerror ();
    0x0002c82c vld2.32 {d4[0], d5[0]}, [r3:0x40]!                    |     __asm ("vld2.32 {d4[0], d5[0]}, [r3:0x40]!");
    0x0002c830 mov r2, r0                                            |     r2 = r0;
    0x0002c832 movs r0, 0                                            |     r0 = 0;
    0x0002c834 add r1, pc                                            |     r1 += pc;
    0x0002c836 bl 0x44820                                            |     zbx_dsprintf ()
    0x0002c83a str r0, [r6, 0x20]                                    |     *((r6 + 0x20)) = r0;
    0x0002c83c b 0x2c6e2                                             |     goto label_1;
                                                                     | label_12:
    0x0002c83e ldr r3, [r6, 0x28]                                    |     r3 = *((r6 + 0x28));
    0x0002c840 orr r3, r3, 0x20                                      |     r3 |= 0x20;
    0x0002c844 str r3, [r6, 0x28]                                    |     *((r6 + 0x28)) = r3;
    0x0002c846 blx 0xe3d4                                            |     r0 = fcn_0000e3d4 ();
    0x0002c84a ldr r0, [r0]                                          |     r0 = *(r0);
    0x0002c84c bl 0x30b74                                            |     zbx_strerror ();
    0x0002c850 ldr r1, [pc, 0x54]                                    |     
    0x0002c852 mov r2, r0                                            |     r2 = r0;
    0x0002c854 mov r0, r4                                            |     r0 = r4;
    0x0002c856 add r1, pc                                            |     r1 = 0x59102;
    0x0002c858 bl 0x44820                                            |     zbx_dsprintf ()
    0x0002c85c str r0, [r6, 0x20]                                    |     *((r6 + 0x20)) = r0;
    0x0002c85e b 0x2c6e2                                             |     goto label_1;
                                                                     | label_11:
    0x0002c860 blx 0xe158                                            |     fcn_0000e158 ();
    0x0002c864 invalid                                               |     
                                                                     | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x2c8ac */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.VFS_FILE_TIME ()                 | void VFS_FILE_TIME (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;
    0x0002c8ac blmi 0x127f1d4                    |     __asm ("blmi aav.0x0002f324");
    0x0002c8b0 push {r4, r5, r6, r7, lr}         |     
    0x0002c8b2 sub sp, 0x24                      |     
    0x0002c8b4 add r2, pc                        |     r2 += pc;
    0x0002c8b6 mov r4, r1                        |     r4 = r1;
    0x0002c8b8 ldr r3, [r2, r3]                  |     r3 = *((r2 + r3));
    0x0002c8ba ldr r3, [r3]                      |     r3 = *(r3);
    0x0002c8bc str r3, [sp, 0x1c]                |     var_1ch = r3;
    0x0002c8be mov.w r3, 0                       |     r3 = 0;
    0x0002c8c2 ldr r3, [r0, 4]                   |     r3 = *((r0 + 4));
    0x0002c8c4 cmp r3, 2                         |     
                                                 |     if (r3 > 2) {
    0x0002c8c6 bgt 0x2c94a                       |         goto label_2;
                                                 |     }
    0x0002c8c8 cmp r3, 0                         |     
                                                 |     if (r3 > 0) {
    0x0002c8ca ble 0x2c914                       |         
    0x0002c8cc ldr r2, [r0, 8]                   |         r2 = *((r0 + 8));
    0x0002c8ce cmp r3, 2                         |         
    0x0002c8d0 it ne                             |         
                                                 |         if (r3 == 2) {
    0x0002c8d2 movne r7, 0                       |             r7 = 0;
                                                 |         }
    0x0002c8d4 ldr r0, [r2]                      |         r0 = *(r2);
    0x0002c8d6 it eq                             |         
                                                 |         if (r3 != 2) {
    0x0002c8d8 ldreq r7, [r2, 4]                 |             r7 = *((r2 + 4));
                                                 |         }
                                                 |         if (r0 == 0) {
    0x0002c8da cbz r0, 0x2c914                   |             goto label_3;
                                                 |         }
    0x0002c8dc ldrb r3, [r0]                     |         r3 = *(r0);
                                                 |         if (r3 == 0) {
    0x0002c8de cbz r3, 0x2c914                   |             goto label_3;
                                                 |         }
    0x0002c8e0 mov r2, sp                        |         r2 = sp;
    0x0002c8e2 movs r1, 0                        |         r1 = 0;
    0x0002c8e4 bl 0x3fbe0                        |         r0 = zbx_get_file_time ();
    0x0002c8e8 mov r5, r0                        |         r5 = r0;
    0x0002c8ea cmp r0, 0                         |         
                                                 |         if (r0 != 0) {
    0x0002c8ec bne 0x2c964                       |             goto label_4;
                                                 |         }
    0x0002c8ee ldr r6, [r4, 0x28]                |         r6 = *((r4 + 0x28));
                                                 |         if (r7 != 0) {
    0x0002c8f0 cbz r7, 0x2c904                   |             
    0x0002c8f2 ldrb r3, [r7]                     |             r3 = *(r7);
                                                 |             if (r3 == 0) {
    0x0002c8f4 cbz r3, 0x2c904                   |                 goto label_5;
                                                 |             }
    0x0002c8f6 ldr r1, [pc, 0xe0]                |             
    0x0002c8f8 mov r0, r7                        |             r0 = r7;
    0x0002c8fa add r1, pc                        |             r1 = 0x592d8;
    0x0002c8fc blx 0xe3b0                        |             r0 = fcn_0000e3b0 ();
    0x0002c900 cmp r0, 0                         |             
                                                 |             if (r0 != 0) {
    0x0002c902 bne 0x2c984                       |                 goto label_6;
                                                 |             }
                                                 |         }
                                                 | label_5:
    0x0002c904 ldrd r2, r3, [sp]                 |         __asm ("ldrd r2, r3, [sp]");
    0x0002c908 orr r6, r6, 1                     |         r6 |= 1;
    0x0002c90c str r6, [r4, 0x28]                |         *((r4 + 0x28)) = r6;
                                                 | label_1:
    0x0002c90e strd r2, r3, [r4, 8]              |         __asm ("strd r2, r3, [r4, 8]");
    0x0002c912 b 0x2c930                         |         goto label_7;
                                                 |     }
                                                 | label_3:
    0x0002c914 ldr r0, [r4, 0x28]                |     r0 = *((r4 + 0x28));
    0x0002c916 movs r2, 0                        |     r2 = 0;
    0x0002c918 ldr r3, [pc, 0xc0]                |     
    0x0002c91a movs r1, 0x96                     |     r1 = 0x96;
    0x0002c91c orr r0, r0, 0x20                  |     r0 |= 0x20;
    0x0002c920 str r0, [r4, 0x28]                |     *((r4 + 0x28)) = r0;
    0x0002c922 add r3, pc                        |     r3 = 0x59302;
    0x0002c924 ldr r0, [pc, 0xb8]                |     
    0x0002c926 add r0, pc                        |     r0 = 0x5930a;
    0x0002c928 bl 0x40ed8                        |     zbx_strdup2 ();
                                                 |     do {
                                                 | label_0:
    0x0002c92c movs r5, 1                        |         r5 = 1;
    0x0002c92e str r0, [r4, 0x20]                |         *((r4 + 0x20)) = r0;
                                                 | label_7:
    0x0002c930 ldr r2, [pc, 0xb0]                |         
    0x0002c932 ldr r3, [pc, 0xa0]                |         r3 = *(0x2c9d6);
    0x0002c934 add r2, pc                        |         r2 = 0x5931c;
    0x0002c936 ldr r3, [r2, r3]                  |         r3 = *(0x5931c);
    0x0002c938 ldr r2, [r3]                      |         r2 = *(0x5931c);
    0x0002c93a ldr r3, [sp, 0x1c]                |         r3 = var_1ch;
    0x0002c93c eors r2, r3                       |         r2 ^= r3;
    0x0002c93e mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x0002c942 bne 0x2c9cc                       |             goto label_8;
                                                 |         }
    0x0002c944 mov r0, r5                        |         r0 = r5;
    0x0002c946 add sp, 0x24                      |         
    0x0002c948 pop {r4, r5, r6, r7, pc}          |         
                                                 | label_2:
    0x0002c94a ldr r0, [r1, 0x28]                |         r0 = *((r1 + 0x28));
    0x0002c94c movs r2, 0                        |         r2 = 0;
    0x0002c94e ldr r3, [pc, 0x98]                |         
    0x0002c950 movs r1, 0x8d                     |         r1 = 0x8d;
    0x0002c952 orr r0, r0, 0x20                  |         r0 |= 0x20;
    0x0002c956 str r0, [r4, 0x28]                |         *((r4 + 0x28)) = r0;
    0x0002c958 add r3, pc                        |         r3 = 0x59346;
    0x0002c95a ldr r0, [pc, 0x90]                |         
    0x0002c95c add r0, pc                        |         r0 = 0x5934e;
    0x0002c95e bl 0x40ed8                        |         zbx_strdup2 ();
    0x0002c962 b 0x2c92c                         |         
                                                 |     } while (1);
                                                 | label_4:
    0x0002c964 ldr r3, [r4, 0x28]                |     r3 = *((r4 + 0x28));
    0x0002c966 orr r3, r3, 0x20                  |     r3 |= 0x20;
    0x0002c96a str r3, [r4, 0x28]                |     *((r4 + 0x28)) = r3;
    0x0002c96c blx 0xe3d4                        |     r0 = fcn_0000e3d4 ();
    0x0002c970 ldr r0, [r0]                      |     r0 = *(r0);
    0x0002c972 bl 0x30b74                        |     zbx_strerror ();
    0x0002c976 ldr r1, [pc, 0x78]                |     
    0x0002c978 mov r2, r0                        |     r2 = r0;
    0x0002c97a movs r0, 0                        |     r0 = 0;
    0x0002c97c add r1, pc                        |     r1 = 0x59372;
    0x0002c97e bl 0x44820                        |     zbx_dsprintf ()
    0x0002c982 b 0x2c92c                         |     goto label_0;
                                                 | label_6:
    0x0002c984 ldr r1, [pc, 0x6c]                |     
    0x0002c986 mov r0, r7                        |     r0 = r7;
    0x0002c988 add r1, pc                        |     r1 = 0x59380;
    0x0002c98a blx 0xe3b0                        |     r0 = fcn_0000e3b0 ();
                                                 |     if (r0 == 0) {
    0x0002c98e cbnz r0, 0x2c99c                  |         
    0x0002c990 orr r6, r6, 1                     |         r6 |= 1;
    0x0002c994 ldrd r2, r3, [sp, 8]              |         __asm ("ldrd r2, r3, [var_8h]");
    0x0002c998 str r6, [r4, 0x28]                |         *((r4 + 0x28)) = r6;
    0x0002c99a b 0x2c90e                         |         goto label_1;
                                                 |     }
    0x0002c99c ldr r1, [pc, 0x58]                |     
    0x0002c99e mov r0, r7                        |     r0 = r7;
    0x0002c9a0 add r1, pc                        |     r1 = 0x5939c;
    0x0002c9a2 blx 0xe3b0                        |     r0 = fcn_0000e3b0 ();
                                                 |     if (r0 == 0) {
    0x0002c9a6 cbnz r0, 0x2c9b4                  |         
    0x0002c9a8 orr r6, r6, 1                     |         r6 |= 1;
    0x0002c9ac ldrd r2, r3, [sp, 0x10]           |         __asm ("ldrd r2, r3, [var_10h]");
    0x0002c9b0 str r6, [r4, 0x28]                |         *((r4 + 0x28)) = r6;
    0x0002c9b2 b 0x2c90e                         |         goto label_1;
                                                 |     }
    0x0002c9b4 ldr r3, [pc, 0x44]                |     
    0x0002c9b6 orr r6, r6, 0x20                  |     r6 |= 0x20;
    0x0002c9ba ldr r0, [pc, 0x44]                |     
    0x0002c9bc mov r2, r5                        |     r2 = r5;
    0x0002c9be movs r1, 0xa8                     |     r1 = 0xa8;
    0x0002c9c0 str r6, [r4, 0x28]                |     *((r4 + 0x28)) = r6;
    0x0002c9c2 add r3, pc                        |     r3 = 0x593c2;
    0x0002c9c4 add r0, pc                        |     r0 = 0x593ca;
    0x0002c9c6 bl 0x40ed8                        |     zbx_strdup2 ();
    0x0002c9ca b 0x2c92c                         |     goto label_0;
                                                 | label_8:
    0x0002c9cc blx 0xe158                        |     fcn_0000e158 ();
    0x0002c9d0 ssat16 r0, 3, r4                  |     __asm ("ssat16 r0, 3, r4");
    0x0002c9d4 lsls r4, r2, 0xe                  |     r4 = r2 << 0xe;
    0x0002c9d6 movs r0, r0                       |     
    0x0002c9d8 str r2, [r2, 0x5c]                |     *((r2 + 0x5c)) = r2;
    0x0002c9da movs r2, r0                       |     r2 = r0;
    0x0002c9dc cmp r5, 0x4e                      |     
    0x0002c9de movs r2, r0                       |     r2 = r0;
    0x0002c9e0 ldr r2, [r3, 0x38]                |     r2 = *((r3 + 0x38));
    0x0002c9e2 movs r2, r0                       |     r2 = r0;
    0x0002c9e4 subw r0, r4, 2                    |     __asm ("subw r0, r4, 2");
    0x0002c9e8 cmp r5, 0                         |     
    0x0002c9ea movs r2, r0                       |     r2 = r0;
    0x0002c9ec ldr r4, [r4, 0x34]                |     r4 = *((r4 + 0x34));
    0x0002c9ee movs r2, r0                       |     r2 = r0;
    0x0002c9f0 ldr r4, [r5, 0x34]                |     r4 = *((r5 + 0x34));
    0x0002c9f2 movs r2, r0                       |     r2 = r0;
    0x0002c9f4 ldr r4, [r0, 0x38]                |     r4 = *((r0 + 0x38));
    0x0002c9f6 movs r2, r0                       |     r2 = r0;
    0x0002c9f8 ldr r4, [r6, 0x34]                |     r4 = *((r6 + 0x34));
    0x0002c9fa movs r2, r0                       |     r2 = r0;
    0x0002c9fc mvns r6, r0                       |     r6 = ~r0;
    0x0002c9fe movs r2, r0                       |     r2 = r0;
    0x0002ca00 ldr r4, [r7, 0x2c]                |     r4 = *((r7 + 0x2c));
    0x0002ca02 movs r2, r0                       |     r2 = r0;
                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x2790c */
                                                                 | #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_68h;
                                                                 |     int16_t var_a8h;
                                                                 |     int16_t var_100h;
                                                                 |     int16_t var_168h;
                                                                 |     int16_t var_188h;
                                                                 |     int16_t var_390h;
                                                                 |     int16_t var_1020h;
                                                                 |     int16_t var_0h_2;
                                                                 |     int16_t var_1h;
                                                                 |     int16_t var_0h_3;
                                                                 |     int16_t var_1820h;
                                                                 |     int32_t var_0h;
                                                                 |     r1 = arg2;
    0x0002790c blmi 0x15ba268                                    |     __asm ("blmi 0x15ba268");
    0x00027910 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00027914 mov r8, r1                                        |     r8 = r1;
    0x00027916 add r2, pc                                        |     r2 += pc;
    0x00027918 ldr r0, [pc, 0x150]                               |     
    0x0002791a sub.w sp, sp, 0x1820                              |     
    0x0002791e ldr r1, [pc, 0x150]                               |     
    0x00027920 sub sp, 0xc                                       |     
    0x00027922 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00027924 add.w r4, sp, 0x1820                              |     r4 += var_1820h;
    0x00027928 add r0, pc                                        |     r0 = 0x4f398;
    0x0002792a adds r4, 4                                        |     r4 += 4;
    0x0002792c add r1, pc                                        |     r1 = 0x4f3a2;
    0x0002792e ldr r3, [r3]                                      |     r3 = *(r3);
    0x00027930 str r3, [r4]                                      |     *(r4) = r3;
    0x00027932 mov.w r3, 0                                       |     r3 = 0;
    0x00027936 blx 0xdf90                                        |     r0 = fcn_0000df90 ();
    0x0002793a mov r7, r0                                        |     r7 = r0;
    0x0002793c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002793e beq 0x27a32                                       |         goto label_2;
                                                                 |     }
    0x00027940 add r5, sp, 0xc                                   |     r5 += var_ch;
    0x00027942 ldr.w sl, [pc, 0x130]                             |     sl = *(0x00027a74);
    0x00027946 mov.w r1, 0x1000                                  |     r1 = 0x1000;
    0x0002794a mov r0, r5                                        |     r0 = r5;
    0x0002794c bl 0x3ab5c                                        |     zbx_json_initarray ();
    0x00027950 ldr r3, [pc, 0x124]                               |     
    0x00027952 add.w r6, sp, 0x1020                              |     r6 += var_1020h;
    0x00027956 add sl, pc                                        |     sl += pc;
    0x00027958 adds r6, 4                                        |     r6 += 4;
    0x0002795a add r3, pc                                        |     r3 = 0x4f3d6;
    0x0002795c str r3, [sp, 4]                                   |     var_4h = r3;
                                                                 |     do {
                                                                 | label_0:
    0x0002795e mov r2, r7                                        |         r2 = r7;
    0x00027960 mov.w r1, 0x800                                   |         r1 = 0x800;
    0x00027964 mov r0, r6                                        |         r0 = r6;
    0x00027966 blx 0xdc98                                        |         r0 = fcn_0000dc98 ();
    0x0002796a mov r4, r0                                        |         r4 = r0;
                                                                 |         if (r0 == 0) {
    0x0002796c cbz r0, 0x279dc                                   |             goto label_3;
                                                                 |         }
                                                                 | label_1:
    0x0002796e movs r1, 0x20                                     |         r1 = 0x20;
    0x00027970 mov r0, r6                                        |         r0 = r6;
    0x00027972 blx 0xdcd4                                        |         r0 = fcn_0000dcd4 ();
    0x00027976 cmp r0, 0                                         |         
    0x00027978 beq 0x2795e                                       |         
                                                                 |     } while (r0 == 0);
    0x0002797a add.w fp, r0, 1                                   |     
    0x0002797e movs r1, 0x20                                     |     r1 = 0x20;
    0x00027980 mov r0, fp                                        |     r0 = fp;
    0x00027982 blx 0xdcd4                                        |     r0 = fcn_0000dcd4 ();
    0x00027986 mov r4, r0                                        |     r4 = r0;
    0x00027988 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002798a beq 0x2795e                                       |         goto label_0;
                                                                 |     }
    0x0002798c mov.w sb, 0                                       |     sb = 0;
    0x00027990 movs r1, 0x20                                     |     r1 = 0x20;
    0x00027992 strb sb, [r4], 1                                  |     *(r4) = sb;
                                                                 |     r4++;
    0x00027996 mov r0, r4                                        |     r0 = r4;
    0x00027998 blx 0xdcd4                                        |     r0 = fcn_0000dcd4 ();
    0x0002799c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002799e beq 0x2795e                                       |         goto label_0;
                                                                 |     }
    0x000279a0 mov r1, sb                                        |     r1 = sb;
    0x000279a2 strb.w sb, [r0]                                   |     *(r0) = sb;
    0x000279a6 mov r0, r5                                        |     r0 = r5;
    0x000279a8 bl 0x3ac94                                        |     zbx_json_addobject ();
    0x000279ac movs r3, 1                                        |     r3 = 1;
    0x000279ae mov r2, fp                                        |     r2 = fp;
    0x000279b0 mov r1, sl                                        |     r1 = sl;
    0x000279b2 mov r0, r5                                        |     r0 = r5;
    0x000279b4 bl 0x3ac9c                                        |     zbx_json_addstring ();
    0x000279b8 mov r2, r4                                        |     r2 = r4;
    0x000279ba ldr r1, [sp, 4]                                   |     r1 = var_4h;
    0x000279bc movs r3, 1                                        |     r3 = 1;
    0x000279be mov r0, r5                                        |     r0 = r5;
    0x000279c0 bl 0x3ac9c                                        |     zbx_json_addstring ();
    0x000279c4 mov r0, r5                                        |     r0 = r5;
    0x000279c6 bl 0x3af6c                                        |     zbx_json_close ();
    0x000279ca mov r2, r7                                        |     r2 = r7;
    0x000279cc mov.w r1, 0x800                                   |     r1 = 0x800;
    0x000279d0 mov r0, r6                                        |     r0 = r6;
    0x000279d2 blx 0xdc98                                        |     r0 = fcn_0000dc98 ();
    0x000279d6 mov r4, r0                                        |     r4 = r0;
    0x000279d8 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000279da bne 0x2796e                                       |         goto label_1;
                                                                 |     }
                                                                 | label_3:
    0x000279dc mov r0, r7                                        |     r0 = r7;
    0x000279de blx 0xdc8c                                        |     fcn_0000dc8c ();
    0x000279e2 mov r0, r5                                        |     r0 = r5;
    0x000279e4 bl 0x3af6c                                        |     zbx_json_close ();
    0x000279e8 ldr.w r2, [r8, 0x28]                              |     r2 = *((r8 + 0x28));
    0x000279ec movs r1, 0xaf                                     |     r1 = 0xaf;
    0x000279ee ldr r0, [pc, 0x8c]                                |     
    0x000279f0 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x000279f2 orr r2, r2, 4                                     |     r2 |= 4;
    0x000279f6 str.w r2, [r8, 0x28]                              |     __asm ("str.w r2, [r8, 0x28]");
    0x000279fa add r0, pc                                        |     r0 = 0x4f47c;
    0x000279fc mov r2, r4                                        |     r2 = r4;
    0x000279fe bl 0x40ed8                                        |     zbx_strdup2 ();
    0x00027a02 str.w r0, [r8, 0x18]                              |     __asm ("str.w r0, [r8, 0x18]");
    0x00027a06 mov r0, r5                                        |     r0 = r5;
    0x00027a08 bl 0x3ac14                                        |     zbx_json_free ();
    0x00027a0c mov r0, r4                                        |     r0 = r4;
                                                                 |     do {
    0x00027a0e ldr r2, [pc, 0x70]                                |         
    0x00027a10 add.w r1, sp, 0x1820                              |         r1 += var_1820h;
    0x00027a14 ldr r3, [pc, 0x50]                                |         r3 = *(0x27a68);
    0x00027a16 adds r1, 4                                        |         r1 += 4;
    0x00027a18 add r2, pc                                        |         r2 = 0x4f49e;
    0x00027a1a ldr r3, [r2, r3]                                  |         r3 = *(0x4f49e);
    0x00027a1c ldr r2, [r3]                                      |         r2 = *(0x4f49e);
    0x00027a1e ldr r3, [r1]                                      |         r3 = *(r1);
    0x00027a20 eors r2, r3                                       |         r2 ^= r3;
    0x00027a22 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00027a26 bne 0x27a5e                                       |             goto label_4;
                                                                 |         }
    0x00027a28 add.w sp, sp, 0x1820                              |         
    0x00027a2c add sp, 0xc                                       |         
    0x00027a2e pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_2:
    0x00027a32 ldr.w r3, [r8, 0x28]                              |         r3 = *((r8 + 0x28));
    0x00027a36 orr r3, r3, 0x20                                  |         r3 |= 0x20;
    0x00027a3a str.w r3, [r8, 0x28]                              |         __asm ("str.w r3, [r8, 0x28]");
    0x00027a3e blx 0xe3d4                                        |         r0 = fcn_0000e3d4 ();
    0x00027a42 ldr r0, [r0]                                      |         r0 = *(r0);
    0x00027a44 bl 0x30b74                                        |         zbx_strerror ();
    0x00027a48 ldr r1, [pc, 0x38]                                |         
    0x00027a4a mov r2, r0                                        |         r2 = r0;
    0x00027a4c mov r0, r7                                        |         r0 = r7;
    0x00027a4e add r1, pc                                        |         r1 = 0x4f4d6;
    0x00027a50 bl 0x44820                                        |         r0 = zbx_dsprintf ()
    0x00027a54 mov r3, r0                                        |         r3 = r0;
    0x00027a56 movs r0, 1                                        |         r0 = 1;
    0x00027a58 str.w r3, [r8, 0x20]                              |         __asm ("str.w r3, [r8, 0x20]");
    0x00027a5c b 0x27a0e                                         |         
                                                                 |     } while (1);
                                                                 | label_4:
    0x00027a5e blx 0xe158                                        |     fcn_0000e158 ();
    0x00027a62 nop                                               |     
    0x00027a64 cmn r2, r0                                        |     
    0x00027a66 movs r3, r0                                       |     r3 = r0;
    0x00027a68 lsls r4, r2, 0xe                                  |     r4 = r2 << 0xe;
    0x00027a6a movs r0, r0                                       |     
    0x00027a6c add r5, sp, 0x100                                 |     r5 += var_100h;
    0x00027a6e movs r2, r0                                       |     r2 = r0;
    0x00027a70 ldr r1, [sp, 0x390]                               |     r1 = var_390h;
    0x00027a72 movs r2, r0                                       |     r2 = r0;
    0x00027a74 add r5, sp, 0x168                                 |     r5 += var_168h;
    0x00027a76 movs r2, r0                                       |     r2 = r0;
    0x00027a78 add r5, sp, 0x188                                 |     r5 += var_188h;
    0x00027a7a movs r2, r0                                       |     r2 = r0;
    0x00027a7c add r4, sp, 0x68                                  |     r4 += var_68h;
    0x00027a7e movs r2, r0                                       |     r2 = r0;
    0x00027a80 rors r0, r0                                       |     __asm ("rors r0, r0");
    0x00027a82 movs r3, r0                                       |     r3 = r0;
    0x00027a84 add r4, sp, 0xa8                                  |     r4 += var_a8h;
    0x00027a86 movs r2, r0                                       |     r2 = r0;
                                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x1e77c */
                                                             | #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_3:
    0x0001e6bc blmi 0xa70f64                                 |     __asm ("blmi aav.0x0003d514");
    0x0001e6c0 push {r4, r5, r6, lr}                         |     
    0x0001e6c2 mov r5, r0                                    |     r5 = r0;
    0x0001e6c4 add r2, pc                                    |     r2 += pc;
    0x0001e6c6 ldr r0, [pc, 0xa0]                            |     
    0x0001e6c8 mov r4, r1                                    |     r4 = r1;
    0x0001e6ca sub sp, 0x10                                  |     
    0x0001e6cc ldr r1, [pc, 0x9c]                            |     
    0x0001e6ce ldr r3, [r2, r3]                              |     r3 = *((r2 + r3));
    0x0001e6d0 add r0, pc                                    |     r0 = 0x3ce3e;
    0x0001e6d2 add r1, pc                                    |     r1 = 0x3ce42;
    0x0001e6d4 ldr r3, [r3]                                  |     r3 = *(r3);
    0x0001e6d6 str r3, [sp, 0xc]                             |     var_ch = r3;
    0x0001e6d8 mov.w r3, 0                                   |     r3 = 0;
    0x0001e6dc blx 0xdf90                                    |     r0 = fcn_0000df90 ();
    0x0001e6e0 mov r6, r0                                    |     r6 = r0;
                                                             |     if (r0 == 0) {
    0x0001e6e2 cbz r0, 0x1e738                               |         goto label_9;
                                                             |     }
    0x0001e6e4 mov r3, sp                                    |     r3 = sp;
    0x0001e6e6 mov r1, r5                                    |     r1 = r5;
    0x0001e6e8 movs r2, 0                                    |     r2 = 0;
    0x0001e6ea bl 0x21570                                    |     byte_value_from_proc_file ();
    0x0001e6ee ldr r3, [r4, 0x28]                            |     r3 = *((r4 + 0x28));
    0x0001e6f0 mov r5, r0                                    |     r5 = r0;
                                                             |     if (r0 != 0) {
    0x0001e6f2 cbnz r0, 0x1e722                              |         goto label_10;
                                                             |     }
    0x0001e6f4 orr r3, r3, 1                                 |     r3 |= 1;
    0x0001e6f8 str r3, [r4, 0x28]                            |     *((r4 + 0x28)) = r3;
    0x0001e6fa ldrd r2, r3, [sp]                             |     __asm ("ldrd r2, r3, [sp]");
    0x0001e6fc movs r3, 0                                    |     r3 = 0;
    0x0001e6fe strd r2, r3, [r4, 8]                          |     __asm ("strd r2, r3, [r4, 8]");
    0x0001e700 movs r3, 2                                    |     r3 = 2;
                                                             |     do {
    0x0001e702 mov r0, r6                                    |         r0 = r6;
    0x0001e704 blx 0xdc8c                                    |         fcn_0000dc8c ();
                                                             | label_0:
    0x0001e708 ldr r2, [pc, 0x64]                            |         r2 = *(0x1e770);
    0x0001e70a ldr r3, [pc, 0x58]                            |         r3 = *(0x1e766);
                                                             | label_1:
    0x0001e70c add r2, pc                                    |         r2 += pc;
    0x0001e70e ldr r3, [r2, r3]                              |         r3 = *((r2 + r3));
    0x0001e710 ldr r2, [r3]                                  |         r2 = *(r3);
    0x0001e712 ldr r3, [sp, 0xc]                             |         r3 = var_ch;
    0x0001e714 eors r2, r3                                   |         r2 ^= r3;
    0x0001e716 mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x0001e71a bne 0x1e75c                                   |             goto label_11;
                                                             |         }
    0x0001e71c mov r0, r5                                    |         r0 = r5;
    0x0001e71e add sp, 0x10                                  |         
    0x0001e720 pop {r4, r5, r6, pc}                          |         
                                                             | label_10:
    0x0001e722 ldr r1, [pc, 0x50]                            |         
    0x0001e724 orr r3, r3, 0x20                              |         r3 |= 0x20;
    0x0001e728 movs r0, 0                                    |         r0 = 0;
    0x0001e72a str r3, [r4, 0x28]                            |         *((r4 + 0x28)) = r3;
    0x0001e72c movs r5, 1                                    |         r5 = 1;
    0x0001e72e add r1, pc                                    |         r1 = 0x3cea8;
    0x0001e730 bl 0x44820                                    |         zbx_dsprintf ()
    0x0001e734 str r0, [r4, 0x20]                            |         *((r4 + 0x20)) = r0;
    0x0001e736 b 0x1e702                                     |         
                                                             |     } while (1);
                                                             | label_9:
    0x0001e738 ldr r3, [r4, 0x28]                            |     r3 = *((r4 + 0x28));
    0x0001e73a movs r5, 1                                    |     r5 = 1;
    0x0001e73c orr r3, r3, 0x20                              |     r3 |= 0x20;
    0x0001e740 str r3, [r4, 0x28]                            |     *((r4 + 0x28)) = r3;
    0x0001e742 blx 0xe3d4                                    |     r0 = fcn_0000e3d4 ();
    0x0001e746 ldr r0, [r0]                                  |     r0 = *(r0);
    0x0001e748 bl 0x30b74                                    |     zbx_strerror ();
    0x0001e74c ldr r1, [pc, 0x28]                            |     
    0x0001e74e mov r2, r0                                    |     r2 = r0;
    0x0001e750 mov r0, r6                                    |     r0 = r6;
    0x0001e752 add r1, pc                                    |     r1 = 0x3cece;
    0x0001e754 bl 0x44820                                    |     zbx_dsprintf ()
    0x0001e758 str r0, [r4, 0x20]                            |     *((r4 + 0x20)) = r0;
    0x0001e75a b 0x1e708                                     |     goto label_0;
                                                             | label_11:
    0x0001e75c blx 0xe158                                    |     fcn_0000e158 ();
                                                             |     if (r5 >= 1) {
    0x0001e760 bpl 0x1e78c                                   |         goto label_12;
                                                             |     }
    0x0001e762 movs r3, r0                                   |     r3 = r0;
    0x0001e764 lsls r4, r2, 0xe                              |     r4 = r2 << 0xe;
    0x0001e766 movs r0, r0                                   |     
    0x0001e768 cmp r4, 0xf8                                  |     
    0x0001e76a movs r3, r0                                   |     r3 = r0;
    0x0001e76c cmp r4, 0x3e                                  |     
    0x0001e76e movs r3, r0                                   |     r3 = r0;
                                                             |     if (r3 < r0) {
    0x0001e770 bmi 0x1e70c                                   |         goto label_1;
                                                             |     }
    0x0001e772 movs r3, r0                                   |     r3 = r0;
    0x0001e774 cmp r5, 0x8a                                  |     
    0x0001e776 movs r3, r0                                   |     r3 = r0;
    0x0001e778 cmp r4, 0x86                                  |     
    0x0001e77a movs r3, r0                                   |     r3 = r0;
    0x0001e77c ldr.w r2, [pc, 0x478]                         |     r2 = *(0x1ebf8);
    0x0001e780 ldr.w r3, [pc, 0x478]                         |     r3 = *(0x1ebfc);
    0x0001e784 push.w {r4, r5, r6, r7, r8, sb, sl, lr}       |     
    0x0001e788 mov r4, r1                                    |     r4 = r1;
    0x0001e78a ldr r6, [r0, 4]                               |     r6 = *((r0 + 4));
                                                             | label_12:
    0x0001e78c add r2, pc                                    |     r2 += pc;
    0x0001e78e vpush {d8}                                    |     __asm ("vpush {d8}");
    0x0001e792 sub sp, 0x78                                  |     
    0x0001e794 ldr r3, [r2, r3]                              |     r3 = *((r2 + r3));
    0x0001e796 cmp r6, 1                                     |     
    0x0001e798 ldr r3, [r3]                                  |     r3 = *(r3);
    0x0001e79a str r3, [sp, 0x74]                            |     var_74h = r3;
    0x0001e79c mov.w r3, 0                                   |     r3 = 0;
                                                             |     if (r6 > 1) {
    0x0001e7a0 bgt 0x1e7f8                                   |         goto label_13;
                                                             |     }
                                                             |     if (r6 == 1) {
    0x0001e7a2 bne 0x1e7b0                                   |         
    0x0001e7a4 ldr r3, [r0, 8]                               |         r3 = *((r0 + 8));
    0x0001e7a6 ldr r5, [r3]                                  |         r5 = *(r3);
                                                             |         if (r5 == 0) {
    0x0001e7a8 cbz r5, 0x1e7b0                               |             goto label_2;
                                                             |         }
    0x0001e7aa ldrb r3, [r5]                                 |         r3 = *(r5);
    0x0001e7ac cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x0001e7ae bne 0x1e818                                   |             goto label_14;
                                                             |         }
                                                             |     }
                                                             | label_2:
    0x0001e7b0 add r0, sp, 0x34                              |     r0 += var_34h;
    0x0001e7b2 blx 0xe364                                    |     fcn_0000e364 ();
    0x0001e7b6 ldr r2, [sp, 0x44]                            |     r2 = var_44h;
    0x0001e7b8 mov r5, r0                                    |     r5 = r0;
    0x0001e7ba cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001e7bc bne.w 0x1e918                                 |         goto label_15;
                                                             |     }
                                                             | label_5:
    0x0001e7c0 ldr r3, [sp, 0x68]                            |     r3 = var_68h;
    0x0001e7c2 ldr r1, [r4, 0x28]                            |     r1 = *((r4 + 0x28));
    0x0001e7c4 umull r2, r3, r2, r3                          |     r2:r3 = r2 * r3;
    0x0001e7c8 orr r1, r1, 1                                 |     r1 |= 1;
    0x0001e7cc str r1, [r4, 0x28]                            |     *((r4 + 0x28)) = r1;
    0x0001e7ce strd r2, r3, [r4, 8]                          |     __asm ("strd r2, r3, [r4, 8]");
                                                             |     do {
                                                             | label_4:
    0x0001e7d2 ldr.w r2, [pc, 0x42c]                         |         r2 = *(0x0001ec00);
    0x0001e7d6 ldr.w r3, [pc, 0x424]                         |         r3 = *(0x1ebfe);
    0x0001e7da add r2, pc                                    |         r2 += pc;
    0x0001e7dc ldr r3, [r2, r3]                              |         r3 = *((r2 + r3));
    0x0001e7de ldr r2, [r3]                                  |         r2 = *(0x1ebfe);
    0x0001e7e0 ldr r3, [sp, 0x74]                            |         r3 = var_74h;
    0x0001e7e2 eors r2, r3                                   |         r2 ^= r3;
    0x0001e7e4 mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x0001e7e8 bne.w 0x1eb9c                                 |             goto label_16;
                                                             |         }
    0x0001e7ec mov r0, r5                                    |         r0 = r5;
    0x0001e7ee add sp, 0x78                                  |         
    0x0001e7f0 vpop {d8}                                     |         __asm ("vpop {d8}");
    0x0001e7f4 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |         
                                                             | label_13:
    0x0001e7f8 ldr r0, [r1, 0x28]                            |         r0 = *((r1 + 0x28));
    0x0001e7fa movs r2, 0                                    |         r2 = 0;
    0x0001e7fc ldr.w r3, [pc, 0x404]                         |         
    0x0001e800 movs r1, 0xf9                                 |         r1 = 0xf9;
    0x0001e802 orr r0, r0, 0x20                              |         r0 |= 0x20;
    0x0001e806 str r0, [r4, 0x28]                            |         *((r4 + 0x28)) = r0;
    0x0001e808 add r3, pc                                    |         r3 = 0x3d410;
    0x0001e80a ldr r0, [pc, 0x3fc]                           |         
    0x0001e80c add r0, pc                                    |         r0 = 0x3d41a;
    0x0001e80e bl 0x40ed8                                    |         zbx_strdup2 ();
                                                             | label_6:
    0x0001e812 movs r5, 1                                    |         r5 = 1;
    0x0001e814 str r0, [r4, 0x20]                            |         *((r4 + 0x20)) = r0;
    0x0001e816 b 0x1e7d2                                     |         
                                                             |     } while (1);
                                                             | label_14:
    0x0001e818 ldr r1, [pc, 0x3f0]                           |     
    0x0001e81a mov r0, r5                                    |     r0 = r5;
    0x0001e81c add r1, pc                                    |     r1 = 0x3d42c;
    0x0001e81e blx 0xe3b0                                    |     r0 = fcn_0000e3b0 ();
    0x0001e822 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0001e824 beq 0x1e7b0                                   |         goto label_2;
                                                             |     }
    0x0001e826 ldr r1, [pc, 0x3e8]                           |     
    0x0001e828 mov r0, r5                                    |     r0 = r5;
    0x0001e82a add r1, pc                                    |     r1 = 0x3d440;
    0x0001e82c blx 0xe3b0                                    |     r0 = fcn_0000e3b0 ();
    0x0001e830 mov r7, r0                                    |     r7 = r0;
    0x0001e832 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001e834 beq.w 0x1e93c                                 |         
    0x0001e838 ldr r1, [pc, 0x3d8]                           |         
    0x0001e83a mov r0, r5                                    |         r0 = r5;
    0x0001e83c add r1, pc                                    |         r1 = 0x3d454;
    0x0001e83e blx 0xe3b0                                    |         r0 = fcn_0000e3b0 ();
    0x0001e842 mov r7, r0                                    |         r7 = r0;
    0x0001e844 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0001e846 beq.w 0x1e970                                 |             goto label_17;
                                                             |         }
    0x0001e84a ldr r1, [pc, 0x3cc]                           |         
    0x0001e84c mov r0, r5                                    |         r0 = r5;
    0x0001e84e add r1, pc                                    |         r1 = 0x3d46c;
    0x0001e850 blx 0xe3b0                                    |         r0 = fcn_0000e3b0 ();
    0x0001e854 mov r7, r0                                    |         r7 = r0;
    0x0001e856 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0001e858 beq.w 0x1e9a4                                 |             goto label_18;
                                                             |         }
    0x0001e85c ldr r1, [pc, 0x3bc]                           |         
    0x0001e85e mov r0, r5                                    |         r0 = r5;
    0x0001e860 add r1, pc                                    |         r1 = 0x3d480;
    0x0001e862 blx 0xe3b0                                    |         r0 = fcn_0000e3b0 ();
    0x0001e866 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0001e868 beq.w 0x1e9ca                                 |             goto label_19;
                                                             |         }
    0x0001e86c ldr r1, [pc, 0x3b0]                           |         
    0x0001e86e mov r0, r5                                    |         r0 = r5;
    0x0001e870 add r1, pc                                    |         r1 = 0x3d494;
    0x0001e872 blx 0xe3b0                                    |         fcn_0000e3b0 ();
    0x0001e874 ldc p8, c2, [lr]                              |         __asm ("ldc p8, c2, [lr]");
                                                             |         if (r0 == 0) {
    0x0001e878 beq.w 0x1ea0c                                 |             goto label_20;
                                                             |         }
    0x0001e87c ldr r1, [pc, 0x3a4]                           |         
    0x0001e87e mov r0, r5                                    |         r0 = r5;
    0x0001e880 add r1, pc                                    |         r1 = 0x3d4a8;
    0x0001e882 blx 0xe3b0                                    |         r0 = fcn_0000e3b0 ();
    0x0001e886 mov r7, r0                                    |         r7 = r0;
    0x0001e888 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0001e88a beq.w 0x1ea30                                 |             goto label_21;
                                                             |         }
    0x0001e88e ldr r1, [pc, 0x398]                           |         
    0x0001e890 mov r0, r5                                    |         r0 = r5;
    0x0001e892 add r1, pc                                    |         r1 = 0x3d4c0;
    0x0001e894 blx 0xe3b0                                    |         r0 = fcn_0000e3b0 ();
    0x0001e898 mov r2, r0                                    |         r2 = r0;
    0x0001e89a cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0001e89c beq.w 0x1eabe                                 |             goto label_22;
                                                             |         }
    0x0001e8a0 ldr r1, [pc, 0x388]                           |         
    0x0001e8a2 mov r0, r5                                    |         r0 = r5;
    0x0001e8a4 add r1, pc                                    |         r1 = 0x3d4d4;
    0x0001e8a6 blx 0xe3b0                                    |         r0 = fcn_0000e3b0 ();
    0x0001e8aa cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0001e8ac beq.w 0x1eafa                                 |             goto label_23;
                                                             |         }
    0x0001e8b0 ldr r1, [pc, 0x37c]                           |         
    0x0001e8b2 mov r0, r5                                    |         r0 = r5;
    0x0001e8b4 add r1, pc                                    |         r1 = 0x3d4e8;
    0x0001e8b6 blx 0xe3b0                                    |         r0 = fcn_0000e3b0 ();
    0x0001e8ba cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0001e8bc beq.w 0x1eb4e                                 |             goto label_24;
                                                             |         }
    0x0001e8c0 ldr r1, [pc, 0x370]                           |         
    0x0001e8c2 mov r0, r5                                    |         r0 = r5;
    0x0001e8c4 add r1, pc                                    |         r1 = 0x3d4fc;
    0x0001e8c6 blx 0xe3b0                                    |         r0 = fcn_0000e3b0 ();
    0x0001e8ca cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0001e8cc beq.w 0x1eb68                                 |             goto label_25;
                                                             |         }
    0x0001e8d0 ldr r1, [pc, 0x364]                           |         
    0x0001e8d2 mov r0, r5                                    |         r0 = r5;
    0x0001e8d4 add r1, pc                                    |         r1 = 0x3d510;
    0x0001e8d6 blx 0xe3b0                                    |         r0 = fcn_0000e3b0 ();
    0x0001e8da cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0001e8dc beq.w 0x1eb82                                 |             goto label_26;
                                                             |         }
    0x0001e8e0 ldr r1, [pc, 0x358]                           |         
    0x0001e8e2 mov r0, r5                                    |         r0 = r5;
    0x0001e8e4 add r1, pc                                    |         r1 = 0x3d524;
    0x0001e8e6 blx 0xe3b0                                    |         r0 = fcn_0000e3b0 ();
    0x0001e8ea cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0001e8ec bne.w 0x1eba0                                 |             goto label_27;
                                                             |         }
    0x0001e8f0 ldr r2, [pc, 0x34c]                           |         
    0x0001e8f2 ldr r3, [pc, 0x308]                           |         r3 = *(0x1ebfe);
    0x0001e8f4 add r2, pc                                    |         r2 = 0x3d538;
    0x0001e8f6 ldr r3, [r2, r3]                              |         r3 = *(0x3d538);
    0x0001e8f8 ldr r2, [r3]                                  |         r2 = *(0x3d538);
    0x0001e8fa ldr r3, [sp, 0x74]                            |         r3 = var_74h;
    0x0001e8fc eors r2, r3                                   |         r2 ^= r3;
    0x0001e8fe mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x0001e902 bne.w 0x1eb9c                                 |             goto label_16;
                                                             |         }
    0x0001e904 strh r3, [r1, 0xa]                            |         *((r1 + 0xa)) = r3;
    0x0001e906 ldr r0, [pc, 0x33c]                           |         
    0x0001e908 add r0, pc                                    |         r0 = 0x3d552;
                                                             | label_7:
    0x0001e90a mov r1, r4                                    |         r1 = r4;
    0x0001e90c add sp, 0x78                                  |         
    0x0001e90e vpop {d8}                                     |         __asm ("vpop {d8}");
    0x0001e912 pop.w {r4, r5, r6, r7, r8, sb, sl, lr}        |         
    0x0001e916 b 0x1e6bc                                     |         goto label_3;
                                                             | label_15:
    0x0001e918 ldr r3, [r4, 0x28]                            |         r3 = *((r4 + 0x28));
    0x0001e91a movs r5, 1                                    |         r5 = 1;
    0x0001e91c orr r3, r3, 0x20                              |         r3 |= 0x20;
    0x0001e920 str r3, [r4, 0x28]                            |         *((r4 + 0x28)) = r3;
    0x0001e922 blx 0xe3d4                                    |         r0 = fcn_0000e3d4 ();
    0x0001e926 ldr r0, [r0]                                  |         r0 = *(r0);
    0x0001e928 bl 0x30b74                                    |         zbx_strerror ();
    0x0001e92c ldr r1, [pc, 0x318]                           |         
    0x0001e92e mov r2, r0                                    |         r2 = r0;
    0x0001e930 movs r0, 0                                    |         r0 = 0;
    0x0001e932 add r1, pc                                    |         r1 = 0x3d57e;
    0x0001e934 bl 0x44820                                    |         zbx_dsprintf ()
    0x0001e938 str r0, [r4, 0x20]                            |         *((r4 + 0x20)) = r0;
    0x0001e93a b 0x1e7d2                                     |         goto label_4;
                                                             |     }
    0x0001e93c add r0, sp, 0x34                              |     r0 += var_34h;
    0x0001e93e blx 0xe364                                    |     fcn_0000e364 ();
    0x0001e942 ldr r2, [sp, 0x48]                            |     r2 = var_48h;
    0x0001e944 mov r5, r0                                    |     r5 = r0;
    0x0001e946 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0001e948 beq.w 0x1e7c0                                 |         goto label_5;
                                                             |     }
    0x0001e94c ldr r3, [r4, 0x28]                            |     r3 = *((r4 + 0x28));
    0x0001e94e mov r5, r6                                    |     r5 = r6;
    0x0001e950 orr r3, r3, 0x20                              |     r3 |= 0x20;
    0x0001e954 str r3, [r4, 0x28]                            |     *((r4 + 0x28)) = r3;
    0x0001e956 blx 0xe3d4                                    |     r0 = fcn_0000e3d4 ();
    0x0001e95a ldr r0, [r0]                                  |     r0 = *(r0);
    0x0001e95c bl 0x30b74                                    |     zbx_strerror ();
    0x0001e960 ldr r1, [pc, 0x2e8]                           |     
    0x0001e962 mov r2, r0                                    |     r2 = r0;
    0x0001e964 mov r0, r7                                    |     r0 = r7;
    0x0001e966 add r1, pc                                    |     r1 = 0x3d5b6;
    0x0001e968 bl 0x44820                                    |     zbx_dsprintf ()
    0x0001e96c str r0, [r4, 0x20]                            |     *((r4 + 0x20)) = r0;
    0x0001e96e b 0x1e7d2                                     |     goto label_4;
                                                             | label_17:
    0x0001e970 add r0, sp, 0x34                              |     r0 += var_34h;
    0x0001e972 blx 0xe364                                    |     fcn_0000e364 ();
    0x0001e976 ldr r2, [sp, 0x50]                            |     r2 = var_50h;
    0x0001e978 mov r5, r0                                    |     r5 = r0;
    0x0001e97a cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0001e97c beq.w 0x1e7c0                                 |         goto label_5;
                                                             |     }
    0x0001e980 ldr r3, [r4, 0x28]                            |     r3 = *((r4 + 0x28));
    0x0001e982 mov r5, r6                                    |     r5 = r6;
    0x0001e984 orr r3, r3, 0x20                              |     r3 |= 0x20;
    0x0001e988 str r3, [r4, 0x28]                            |     *((r4 + 0x28)) = r3;
    0x0001e98a blx 0xe3d4                                    |     r0 = fcn_0000e3d4 ();
    0x0001e98e ldr r0, [r0]                                  |     r0 = *(r0);
    0x0001e990 bl 0x30b74                                    |     zbx_strerror ();
    0x0001e994 ldr r1, [pc, 0x2b8]                           |     
    0x0001e996 mov r2, r0                                    |     r2 = r0;
    0x0001e998 mov r0, r7                                    |     r0 = r7;
    0x0001e99a add r1, pc                                    |     r1 = 0x3d5ee;
    0x0001e99c bl 0x44820                                    |     zbx_dsprintf ()
    0x0001e9a0 str r0, [r4, 0x20]                            |     *((r4 + 0x20)) = r0;
    0x0001e9a2 b 0x1e7d2                                     |     goto label_4;
                                                             | label_18:
    0x0001e9a4 add r0, sp, 0x34                              |     r0 += var_34h;
    0x0001e9a6 blx 0xe364                                    |     r0 = fcn_0000e364 ();
    0x0001e9aa mov r5, r0                                    |     r5 = r0;
    0x0001e9ac cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0001e9ae bne 0x1ea9a                                   |         
    0x0001e9b0 ldrd r3, r0, [sp, 0x44]                       |         __asm ("ldrd r3, r0, [var_44h]");
    0x0001e9b4 ldr r2, [sp, 0x68]                            |         r2 = var_68h;
    0x0001e9b6 ldr r1, [r4, 0x28]                            |         r1 = *((r4 + 0x28));
    0x0001e9b8 subs r3, r3, r0                               |         r3 -= r0;
    0x0001e9ba umull r3, r2, r3, r2                          |         r3:r2 = r3 * r2;
    0x0001e9be orr r1, r1, 1                                 |         r1 |= 1;
    0x0001e9c2 str r1, [r4, 0x28]                            |         *((r4 + 0x28)) = r1;
    0x0001e9c4 strd r3, r2, [r4, 8]                          |         __asm ("strd r3, r2, [r4, 8]");
    0x0001e9c8 b 0x1e7d2                                     |         goto label_4;
                                                             | label_19:
    0x0001e9ca add r0, sp, 0x34                              |         r0 += var_34h;
    0x0001e9cc blx 0xe364                                    |         r0 = fcn_0000e364 ();
    0x0001e9d0 mov r5, r0                                    |         r5 = r0;
    0x0001e9d2 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0001e9d4 bne 0x1ead6                                   |             goto label_28;
                                                             |         }
    0x0001e9d6 ldr r2, [sp, 0x44]                            |         r2 = var_44h;
    0x0001e9d8 ldr r3, [r4, 0x28]                            |         r3 = *((r4 + 0x28));
    0x0001e9da cmp r2, 0                                     |         
                                                             |         if (r2 == 0) {
    0x0001e9dc beq.w 0x1eb38                                 |             goto label_29;
                                                             |         }
    0x0001e9e0 ldr r1, [sp, 0x48]                            |         r1 = var_48h;
    0x0001e9e2 orr r3, r3, 2                                 |         r3 |= 2;
    0x0001e9e6 vmov s15, r2                                  |         __asm ("vmov s15, r2");
    0x0001e9ea vcvt.f64.u32 d19, s15                         |         __asm ("vcvt.f64.u32 d19, s15");
    0x0001e9ee subs r2, r2, r1                               |         r2 -= r1;
    0x0001e9f0 vldr d18, [pc, 0x1fc]                         |         __asm ("vldr d18, [0x0001ebf4]");
    0x0001e9f4 str r3, [r4, 0x28]                            |         *((r4 + 0x28)) = r3;
    0x0001e9f6 vmov s15, r2                                  |         __asm ("vmov s15, r2");
    0x0001e9fa vcvt.f64.u32 d16, s15                         |         __asm ("vcvt.f64.u32 d16, s15");
    0x0001e9fe vdiv.f64 d17, d16, d19                        |         __asm ("vdiv.f64 d17, d16, d19");
    0x0001ea02 vmul.f64 d17, d17, d18                        |         __asm ("vmul.f64 d17, d17, d18");
    0x0001ea06 vstr d17, [r4, 0x10]                          |         __asm ("vstr d17, [r4, 0x10]");
    0x0001ea0a b 0x1e7d2                                     |         goto label_4;
                                                             | label_20:
    0x0001ea0c ldr r2, [pc, 0x244]                           |         
    0x0001ea0e ldr r3, [pc, 0x1ec]                           |         r3 = *(0x1ebfe);
    0x0001ea10 add r2, pc                                    |         r2 = 0x3d668;
    0x0001ea12 ldr r3, [r2, r3]                              |         r3 = *(0x3d668);
    0x0001ea14 ldr r2, [r3]                                  |         r2 = *(0x3d668);
    0x0001ea16 ldr r3, [sp, 0x74]                            |         r3 = var_74h;
    0x0001ea18 eors r2, r3                                   |         r2 ^= r3;
    0x0001ea1a mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x0001ea1e bne.w 0x1eb9c                                 |             goto label_16;
                                                             |         }
    0x0001ea22 mov r0, r4                                    |         r0 = r4;
    0x0001ea24 add sp, 0x78                                  |         
    0x0001ea26 vpop {d8}                                     |         __asm ("vpop {d8}");
    0x0001ea2a pop.w {r4, r5, r6, r7, r8, sb, sl, lr}        |         
    0x0001ea2e b 0x1e558                                     |         void (*0x1e558)() ();
                                                             | label_21:
    0x0001ea30 add r0, sp, 0x34                              |         r0 += var_34h;
    0x0001ea32 blx 0xe364                                    |         r0 = fcn_0000e364 ();
    0x0001ea36 mov sl, r0                                    |         sl = r0;
    0x0001ea38 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0001ea3a bne 0x1eb14                                   |             goto label_30;
                                                             |         }
    0x0001ea3c mov r7, sp                                    |         r7 = sp;
    0x0001ea3e mov r0, r7                                    |         r0 = r7;
    0x0001ea40 bl 0x1c298                                    |         init_result ();
    0x0001ea44 mov r0, r7                                    |         r0 = r7;
    0x0001ea46 bl 0x1e558                                    |         r0 = fcn_0001e558 (r0);
    0x0001ea4a cmp r0, 1                                     |         
    0x0001ea4c mov r5, r0                                    |         r5 = r0;
                                                             |         if (r0 == 1) {
    0x0001ea4e beq.w 0x1ebd8                                 |             goto label_31;
                                                             |         }
    0x0001ea52 ldr r1, [sp, 0x44]                            |         r1 = var_44h;
    0x0001ea54 ldr r3, [sp, 0x68]                            |         r3 = var_68h;
    0x0001ea56 umull sb, r8, r1, r3                          |         sb:r8 = r1 * r3;
    0x0001ea5a ldr r3, [r4, 0x28]                            |         r3 = *((r4 + 0x28));
    0x0001ea5c ldrd r0, r1, [sp, 8]                          |         __asm ("ldrd r0, r1, [var_8h]");
    0x0001ea60 orrs.w ip, sb, r8                             |         
                                                             |         if (ip == sb) {
    0x0001ea64 beq.w 0x1ebbc                                 |             goto label_32;
                                                             |         }
    0x0001ea68 orr r3, r3, 2                                 |         r3 |= 2;
    0x0001ea6c str r3, [r4, 0x28]                            |         *((r4 + 0x28)) = r3;
    0x0001ea6e bl 0x4c6f4                                    |         fcn_0004c6f4 (r0, r1, r2);
    0x0001ea70 cdp2 p12, 4, c14, c1, c1, 2                   |         __asm ("cdp2 p12, 4, c14, c1, c1, 2");
    0x0001ea74 lsrs r0, r3, 0xc                              |         r0 = r3 >> 0xc;
    0x0001ea76 mov r0, sb                                    |         r0 = sb;
    0x0001ea78 mov r1, r8                                    |         r1 = r8;
    0x0001ea7a bl 0x4c6f4                                    |         r0 = fcn_0004c6f4 (r0, r1, r2);
    0x0001ea7e vmov d18, r0, r1                              |         __asm ("vmov d18, r0, r1");
    0x0001ea82 vldr d17, [pc, 0x16c]                         |         __asm ("vldr d17, [0x0001ebf4]");
    0x0001ea84 subs r3, r3, r5                               |         r3 -= r5;
    0x0001ea86 vdiv.f64 d16, d8, d18                         |         __asm ("vdiv.f64 d16, d8, d18");
    0x0001ea8a vmul.f64 d16, d16, d17                        |         __asm ("vmul.f64 d16, d16, d17");
    0x0001ea8e vstr d16, [r4, 0x10]                          |         __asm ("vstr d16, [r4, 0x10]");
                                                             | label_8:
    0x0001ea92 mov r0, r7                                    |         r0 = r7;
    0x0001ea94 bl 0x1c2c0                                    |         free_result ();
    0x0001ea98 b 0x1e7d2                                     |         goto label_4;
                                                             |     }
    0x0001ea9a ldr r3, [r4, 0x28]                            |     r3 = *((r4 + 0x28));
    0x0001ea9c mov r5, r6                                    |     r5 = r6;
    0x0001ea9e orr r3, r3, 0x20                              |     r3 |= 0x20;
    0x0001eaa2 str r3, [r4, 0x28]                            |     *((r4 + 0x28)) = r3;
    0x0001eaa4 blx 0xe3d4                                    |     r0 = fcn_0000e3d4 ();
    0x0001eaa8 ldr r0, [r0]                                  |     r0 = *(r0);
    0x0001eaaa bl 0x30b74                                    |     zbx_strerror ();
    0x0001eaae ldr r1, [pc, 0x1a8]                           |     
    0x0001eab0 mov r2, r0                                    |     r2 = r0;
    0x0001eab2 mov r0, r7                                    |     r0 = r7;
    0x0001eab4 add r1, pc                                    |     r1 = 0x3d712;
    0x0001eab6 bl 0x44820                                    |     zbx_dsprintf ()
    0x0001eaba str r0, [r4, 0x20]                            |     *((r4 + 0x20)) = r0;
    0x0001eabc b 0x1e7d2                                     |     goto label_4;
                                                             | label_22:
    0x0001eabe ldr r0, [r4, 0x28]                            |     r0 = *((r4 + 0x28));
    0x0001eac0 movs r1, 0xd4                                 |     r1 = 0xd4;
    0x0001eac2 ldr r3, [pc, 0x198]                           |     
    0x0001eac4 orr r0, r0, 0x20                              |     r0 |= 0x20;
    0x0001eac8 str r0, [r4, 0x28]                            |     *((r4 + 0x28)) = r0;
    0x0001eaca add r3, pc                                    |     r3 = 0x3d72c;
    0x0001eacc ldr r0, [pc, 0x190]                           |     
    0x0001eace add r0, pc                                    |     r0 = 0x3d732;
    0x0001ead0 bl 0x40ed8                                    |     zbx_strdup2 ();
    0x0001ead4 b 0x1e812                                     |     goto label_6;
                                                             | label_28:
    0x0001ead6 ldr r3, [r4, 0x28]                            |     r3 = *((r4 + 0x28));
    0x0001ead8 orr r3, r3, 0x20                              |     r3 |= 0x20;
    0x0001eadc str r3, [r4, 0x28]                            |     *((r4 + 0x28)) = r3;
    0x0001eade blx 0xe3d4                                    |     r0 = fcn_0000e3d4 ();
    0x0001eae2 ldr r0, [r0]                                  |     r0 = *(r0);
    0x0001eae4 bl 0x30b74                                    |     zbx_strerror ();
    0x0001eae8 ldr r1, [pc, 0x178]                           |     
    0x0001eaea mov r2, r0                                    |     r2 = r0;
    0x0001eaec movs r0, 0                                    |     r0 = 0;
    0x0001eaee add r1, pc                                    |     r1 = 0x3d756;
    0x0001eaf0 bl 0x44820                                    |     zbx_dsprintf ()
                                                             |     do {
    0x0001eaf4 mov r5, r6                                    |         r5 = r6;
    0x0001eaf6 str r0, [r4, 0x20]                            |         *((r4 + 0x20)) = r0;
    0x0001eaf8 b 0x1e7d2                                     |         goto label_4;
                                                             | label_23:
    0x0001eafa ldr r2, [pc, 0x16c]                           |         
    0x0001eafc ldr r3, [pc, 0xfc]                            |         r3 = *(0x1ebfc);
    0x0001eafe add r2, pc                                    |         r2 = zbx_jsonpath_compile;
    0x0001eb00 ldr r3, [r2, r3]                              |         r3 = zbx_jsonpath_compile;
    0x0001eb02 ldr r2, [r3]                                  |         r2 = zbx_jsonpath_compile;
    0x0001eb04 ldr r3, [sp, 0x74]                            |         r3 = var_74h;
    0x0001eb06 eors r2, r3                                   |         r2 ^= r3;
    0x0001eb08 mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x0001eb0c bne 0x1eb9c                                   |             goto label_16;
                                                             |         }
    0x0001eb0e ldr r0, [pc, 0x15c]                           |         
    0x0001eb10 add r0, pc                                    |         r0 = 0x3d782;
    0x0001eb12 b 0x1e90a                                     |         goto label_7;
                                                             | label_30:
    0x0001eb14 ldr r3, [r4, 0x28]                            |         r3 = *((r4 + 0x28));
    0x0001eb16 mov r5, r6                                    |         r5 = r6;
    0x0001eb18 orr r3, r3, 0x20                              |         r3 |= 0x20;
    0x0001eb1c str r3, [r4, 0x28]                            |         *((r4 + 0x28)) = r3;
    0x0001eb1e blx 0xe3d4                                    |         r0 = fcn_0000e3d4 ();
    0x0001eb22 ldr r0, [r0]                                  |         r0 = *(r0);
    0x0001eb24 bl 0x30b74                                    |         zbx_strerror ();
    0x0001eb28 ldr r1, [pc, 0x144]                           |         
    0x0001eb2a mov r2, r0                                    |         r2 = r0;
    0x0001eb2c mov r0, r7                                    |         r0 = r7;
    0x0001eb2e add r1, pc                                    |         r1 = 0x3d7a2;
    0x0001eb30 bl 0x44820                                    |         zbx_dsprintf ()
    0x0001eb34 str r0, [r4, 0x20]                            |         *((r4 + 0x20)) = r0;
    0x0001eb36 b 0x1e7d2                                     |         goto label_4;
                                                             | label_29:
    0x0001eb38 orr r1, r3, 0x20                              |         r1 = r3 | 0x20;
    0x0001eb3c ldr r0, [pc, 0x134]                           |         
    0x0001eb3e ldr r3, [pc, 0x138]                           |         
    0x0001eb40 str r1, [r4, 0x28]                            |         *((r4 + 0x28)) = r1;
    0x0001eb42 movs r1, 0x61                                 |         r1 = 0x61;
    0x0001eb44 add r0, pc                                    |         r0 = 0x3d7bc;
    0x0001eb46 add r3, pc                                    |         r3 = 0x3d7c4;
    0x0001eb48 bl 0x40ed8                                    |         zbx_strdup2 ();
    0x0001eb4c b 0x1eaf4                                     |         
                                                             |     } while (1);
                                                             | label_24:
    0x0001eb4e ldr r2, [pc, 0x12c]                           |     
    0x0001eb50 ldr r3, [pc, 0xa8]                            |     r3 = *(0x1ebfc);
    0x0001eb52 add r2, pc                                    |     r2 = 0x3d7d4;
    0x0001eb54 ldr r3, [r2, r3]                              |     r3 = *(0x3d7d4);
    0x0001eb56 ldr r2, [r3]                                  |     r2 = *(0x3d7d4);
    0x0001eb58 ldr r3, [sp, 0x74]                            |     r3 = var_74h;
    0x0001eb5a eors r2, r3                                   |     r2 ^= r3;
    0x0001eb5c mov.w r3, 0                                   |     r3 = 0;
                                                             |     if (r2 == r3) {
    0x0001eb60 bne 0x1eb9c                                   |         
    0x0001eb62 ldr r0, [pc, 0x11c]                           |         
    0x0001eb64 add r0, pc                                    |         r0 = 0x3d7ea;
    0x0001eb66 b 0x1e90a                                     |         goto label_7;
                                                             | label_25:
    0x0001eb68 ldr r2, [pc, 0x118]                           |         
    0x0001eb6a ldr r3, [pc, 0x90]                            |         r3 = *(0x1ebfe);
    0x0001eb6c add r2, pc                                    |         r2 = 0x3d7f4;
    0x0001eb6e ldr r3, [r2, r3]                              |         r3 = *(0x3d7f4);
    0x0001eb70 ldr r2, [r3]                                  |         r2 = *(0x3d7f4);
    0x0001eb72 ldr r3, [sp, 0x74]                            |         r3 = var_74h;
    0x0001eb74 eors r2, r3                                   |         r2 ^= r3;
    0x0001eb76 mov.w r3, 0                                   |         r3 = 0;
    0x0001eb78 lsls r0, r0, 0xc                              |         r0 <<= 0xc;
                                                             |         if (r0 != r0) {
    0x0001eb7a bne 0x1eb9c                                   |             goto label_16;
                                                             |         }
    0x0001eb7c ldr r0, [pc, 0x108]                           |         
    0x0001eb7e add r0, pc                                    |         r0 = 0x3d80a;
    0x0001eb80 b 0x1e90a                                     |         goto label_7;
                                                             | label_26:
    0x0001eb82 ldr r2, [pc, 0x108]                           |         
    0x0001eb84 ldr r3, [pc, 0x74]                            |         r3 = *(0x1ebfc);
    0x0001eb86 add r2, pc                                    |         r2 = 0x3d818;
    0x0001eb88 ldr r3, [r2, r3]                              |         r3 = *(0x3d818);
    0x0001eb8a ldr r2, [r3]                                  |         r2 = *(0x3d818);
    0x0001eb8c ldr r3, [sp, 0x74]                            |         r3 = var_74h;
    0x0001eb8e eors r2, r3                                   |         r2 ^= r3;
    0x0001eb90 mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x0001eb94 bne 0x1eb9c                                   |             goto label_16;
                                                             |         }
    0x0001eb96 ldr r0, [pc, 0xf8]                            |         
    0x0001eb98 add r0, pc                                    |         r0 = 0x3d82e;
    0x0001eb9a b 0x1e90a                                     |         goto label_7;
                                                             |     }
                                                             | label_16:
    0x0001eb9c blx 0xe158                                    |     fcn_0000e158 ();
                                                             | label_27:
    0x0001eba0 ldr r0, [r4, 0x28]                            |     r0 = *((r4 + 0x28));
    0x0001eba2 movs r2, 0                                    |     r2 = 0;
    0x0001eba4 ldr r3, [pc, 0xec]                            |     
    0x0001eba6 movw r1, 0x11b                                |     r1 = 0x11b;
    0x0001ebaa orr r0, r0, 0x20                              |     r0 |= 0x20;
    0x0001ebae str r0, [r4, 0x28]                            |     *((r4 + 0x28)) = r0;
    0x0001ebb0 add r3, pc                                    |     r3 = 0x3d848;
    0x0001ebb2 ldr r0, [pc, 0xe4]                            |     
    0x0001ebb4 add r0, pc                                    |     r0 = 0x3d852;
    0x0001ebb6 bl 0x40ed8                                    |     zbx_strdup2 ();
    0x0001ebba b 0x1e812                                     |     goto label_6;
                                                             | label_32:
    0x0001ebbc orr r3, r3, 0x20                              |     r3 |= 0x20;
    0x0001ebc0 ldr r0, [pc, 0xd8]                            |     
    0x0001ebc2 str r3, [r4, 0x28]                            |     *((r4 + 0x28)) = r3;
    0x0001ebc4 mov r2, sl                                    |     r2 = sl;
    0x0001ebc6 ldr r3, [pc, 0xd8]                            |     
    0x0001ebc8 movs r1, 0xb9                                 |     r1 = 0xb9;
    0x0001ebca add r0, pc                                    |     r0 = 0x3d86a;
    0x0001ebcc add r3, pc                                    |     r3 = 0x3d872;
    0x0001ebce bl 0x40ed8                                    |     zbx_strdup2 ();
                                                             |     do {
    0x0001ebd2 mov r5, r6                                    |         r5 = r6;
    0x0001ebd4 str r0, [r4, 0x20]                            |         *((r4 + 0x20)) = r0;
    0x0001ebd6 b 0x1ea92                                     |         goto label_8;
                                                             | label_31:
    0x0001ebd8 ldr r3, [r4, 0x28]                            |         r3 = *((r4 + 0x28));
    0x0001ebda mov r2, sl                                    |         r2 = sl;
    0x0001ebdc ldr r0, [pc, 0xc4]                            |         
    0x0001ebde movs r1, 0xb0                                 |         r1 = 0xb0;
    0x0001ebe0 orr r3, r3, 0x20                              |         r3 |= 0x20;
    0x0001ebe4 str r3, [r4, 0x28]                            |         *((r4 + 0x28)) = r3;
    0x0001ebe6 add r0, pc                                    |         r0 = 0x3d88e;
    0x0001ebe8 ldr r3, [sp, 0x20]                            |         r3 = var_20h;
    0x0001ebea bl 0x40ed8                                    |         zbx_strdup2 ();
    0x0001ebee b 0x1ebd2                                     |         
                                                             |     } while (1);
                                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x28c50 */
                                                                 | #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_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_80h_2;
                                                                 |     int16_t var_28h_2;
                                                                 |     int16_t var_30h_2;
                                                                 |     int16_t var_38h;
                                                                 |     int16_t var_6ch;
                                                                 |     int16_t var_80h;
                                                                 |     int16_t var_a8h;
                                                                 |     int16_t var_ach;
                                                                 |     int16_t var_b4h;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_c8h;
                                                                 |     int16_t var_90h;
                                                                 |     int16_t var_180h;
                                                                 |     int16_t var_188h;
                                                                 |     int16_t var_2b8h;
                                                                 |     int16_t var_3a8h;
                                                                 |     int16_t var_328h;
                                                                 |     int16_t var_3c8h_2;
                                                                 |     int16_t var_0h_3;
                                                                 |     int16_t var_4h_2;
                                                                 |     int16_t var_14h_2;
                                                                 |     int16_t var_18h_2;
                                                                 |     int16_t var_20h_2;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_30h;
                                                                 |     int16_t var_38h_2;
                                                                 |     int16_t var_44h;
                                                                 |     int16_t var_58h;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00028c50 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00028c54 mov sl, r1                                        |     sl = r1;
    0x00028c56 vpush {d8, d9}                                    |     __asm ("vpush {d8, d9}");
    0x00028c5a sub sp, 0x74                                      |     
    0x00028c5c mov sb, r3                                        |     sb = r3;
    0x00028c5e mov r8, r2                                        |     r8 = r2;
    0x00028c60 ldr r4, [sp, 0xa8]                                |     r4 = var_a8h;
    0x00028c62 ldr r1, [pc, 0x17c]                               |     r1 = *(0x28de2);
    0x00028c64 ldr r3, [sp, 0xb4]                                |     r3 = var_b4h;
    0x00028c66 str r4, [sp]                                      |     *(sp) = r4;
    0x00028c68 ldr r4, [pc, 0x178]                               |     
    0x00028c6a ldrd r7, r6, [sp, 0xac]                           |     __asm ("ldrd r7, r6, [var_ach]");
    0x00028c6e add r4, pc                                        |     r4 = 0x51a56;
    0x00028c70 ldr r1, [r4, r1]                                  |     
    0x00028c72 ldr r1, [r1]                                      |     r1 = *(0x51a56);
    0x00028c74 str r1, [sp, 0x6c]                                |     var_6ch = r1;
    0x00028c76 mov.w r1, 0                                       |     r1 = 0;
    0x00028c7a add r1, sp, 8                                     |     r1 += var_8h;
    0x00028c7c str r3, [sp, 4]                                   |     var_4h = r3;
    0x00028c7e blx 0xddc0                                        |     wait ();
    0x00028c80 invalid                                           |     
                                                                 |     if (? != ?) {
    0x00028c84 bne 0x28d7e                                       |         goto label_4;
                                                                 |     }
    0x00028c86 mov r5, r0                                        |     r5 = r0;
    0x00028c88 ldrd r4, r0, [sp, 0x28]                           |     __asm ("ldrd r4, r0, [var_28h_2]");
    0x00028c8c cmp.w r0, -1                                      |     
    0x00028c90 it eq                                             |     
                                                                 |     if (r0 == -1) {
    0x00028c92 cmpeq r4, -1                                      |         __asm ("cmpeq r4, -1");
                                                                 |     }
                                                                 |     if (r0 == -1) {
    0x00028c96 beq.w 0x28d9c                                     |         goto label_5;
                                                                 |     }
    0x00028c9a strd r4, r0, [sl]                                 |     __asm ("strd r4, r0, [sl]");
    0x00028c9e ldrd sl, fp, [sp, 0x38]                           |     __asm ("ldrd sl, fp, [var_38h]");
    0x00028ca2 cmp.w fp, -1                                      |     
    0x00028ca6 it eq                                             |     
                                                                 |     if (fp == -1) {
    0x00028ca8 cmpeq sl, -1                                      |         __asm ("cmpeq sl, -1");
                                                                 |     }
                                                                 |     if (fp == -1) {
    0x00028cac beq 0x28dae                                       |         goto label_6;
                                                                 |     }
    0x00028cae ldrd r1, r2, [sp, 0x30]                           |     __asm ("ldrd r1, r2, [var_30h_2]");
    0x00028cb2 strd sl, fp, [r8]                                 |     __asm ("strd sl, fp, [r8]");
    0x00028cb6 cmp.w r2, -1                                      |     
    0x00028cba it eq                                             |     
                                                                 |     if (r2 == -1) {
    0x00028cbc cmpeq r1, -1                                      |         __asm ("cmpeq r1, -1");
                                                                 |     }
                                                                 |     if (r2 == -1) {
    0x00028cc0 beq 0x28dc0                                       |         goto label_7;
                                                                 |     }
    0x00028cc2 subs r3, r4, r1                                   |     r3 = r4 - r1;
    0x00028cc4 str.w r3, [sb]                                    |     __asm ("str.w r3, [sb]");
    0x00028cc8 sbc.w r3, r0, r2                                  |     __asm ("sbc.w r3, r0, r2");
    0x00028ccc adds.w r4, r4, sl                                 |     r4 += sl;
    0x00028cd0 str.w r3, [sb, 4]                                 |     __asm ("str.w r3, [sb, 4]");
    0x00028cd4 adc.w r0, r0, fp                                  |     __asm ("adc.w r0, r0, fp");
    0x00028cd8 subs r4, r4, r1                                   |     r4 -= r1;
    0x00028cda sbc.w r3, r0, r2                                  |     __asm ("sbc.w r3, r0, r2");
    0x00028cde orrs.w r2, r4, r3                                 |     r2 = r4 | r3;
                                                                 |     if (r2 == r4) {
    0x00028ce2 beq 0x28d4e                                       |         goto label_8;
                                                                 |     }
    0x00028ce4 mov r1, r3                                        |     r1 = r3;
    0x00028ce6 vldr d9, [pc, 0xf0]                               |     __asm ("vldr d9, [0x00028ddc]");
    0x00028cea mov r0, r4                                        |     r0 = r4;
    0x00028cec str r3, [sp, 4]                                   |     var_4h = r3;
    0x00028cee bl 0x4c6f4                                        |     r0 = fcn_0004c6f4 (r0, r1, r2);
    0x00028cf2 vmov d8, r0, r1                                   |     __asm ("vmov d8, r0, r1");
    0x00028cf6 mov r0, sl                                        |     r0 = sl;
    0x00028cf8 mov r1, fp                                        |     r1 = fp;
    0x00028cfa bl 0x4c6f4                                        |     r0 = fcn_0004c6f4 (r0, r1, r2);
    0x00028cfe vmov d16, r0, r1                                  |     __asm ("vmov d16, r0, r1");
    0x00028d02 subs.w r0, r4, sl                                 |     r0 = r4 - sl;
    0x00028d04 movs r2, r1                                       |     r2 = r1;
    0x00028d06 ldr r3, [sp, 4]                                   |     r3 = var_4h;
    0x00028d08 vmul.f64 d16, d16, d9                             |     __asm ("vmul.f64 d16, d16, d9");
    0x00028d0c sbc.w r1, r3, fp                                  |     __asm ("sbc.w r1, r3, fp");
    0x00028d10 ldr r3, [sp]                                      |     r3 = *(sp);
    0x00028d12 vdiv.f64 d17, d16, d8                             |     __asm ("vdiv.f64 d17, d16, d8");
    0x00028d16 vstr d17, [r3]                                    |     __asm ("vstr d17, [r3]");
    0x00028d1a bl 0x4c6f4                                        |     r0 = fcn_0004c6f4 (r0, r1, r2);
    0x00028d1e vmov d16, r0, r1                                  |     __asm ("vmov d16, r0, r1");
    0x00028d22 vmul.f64 d16, d16, d9                             |     __asm ("vmul.f64 d16, d16, d9");
    0x00028d26 vdiv.f64 d17, d16, d8                             |     __asm ("vdiv.f64 d17, d16, d8");
    0x00028d2a vstr d17, [r7]                                    |     __asm ("vstr d17, [r7]");
                                                                 |     do {
                                                                 | label_0:
    0x00028d2e ldr r2, [pc, 0xb8]                                |         
    0x00028d30 ldr r3, [pc, 0xac]                                |         r3 = *(0x28de0);
    0x00028d32 add r2, pc                                        |         r2 = 0x51b20;
    0x00028d34 ldr r3, [r2, r3]                                  |         r3 = *(0x51b20);
    0x00028d36 ldr r2, [r3]                                      |         r2 = *(0x51b20);
    0x00028d38 ldr r3, [sp, 0x6c]                                |         r3 = var_6ch;
    0x00028d3a eors r2, r3                                       |         r2 ^= r3;
    0x00028d3c mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00028d40 bne 0x28dd2                                       |             goto label_9;
                                                                 |         }
    0x00028d42 mov r0, r5                                        |         r0 = r5;
    0x00028d44 add sp, 0x74                                      |         
    0x00028d46 vpop {d8, d9}                                     |         __asm ("vpop {d8, d9}");
    0x00028d4a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_8:
    0x00028d4e cmp r6, 0                                         |         
    0x00028d50 beq 0x28d2e                                       |         
                                                                 |     } while (r6 == 0);
    0x00028d52 ldr r1, [pc, 0x98]                                |     
    0x00028d54 mov r0, r6                                        |     r0 = r6;
    0x00028d56 add r1, pc                                        |     r1 = "VmSize";
    0x00028d58 blx 0xe3b0                                        |     r0 = fcn_0000e3b0 ();
                                                                 |     if (r0 == 0) {
    0x00028d5c cbz r0, 0x28d6c                                   |         goto label_10;
                                                                 |     }
    0x00028d5e ldr r1, [pc, 0x90]                                |     
    0x00028d60 mov r0, r6                                        |     r0 = r6;
    0x00028d62 add r1, pc                                        |     r1 = "VmLck";
    0x00028d64 blx 0xe3b0                                        |     r0 = fcn_0000e3b0 ();
    0x00028d68 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00028d6a bne 0x28d2e                                       |         goto label_0;
                                                                 |     }
                                                                 | label_10:
    0x00028d6c ldr r3, [pc, 0x84]                                |     
    0x00028d6e movs r2, 0                                        |     r2 = 0;
    0x00028d70 ldr r0, [pc, 0x84]                                |     
    0x00028d72 movs r1, 0x51                                     |     r1 = 0x51;
    0x00028d74 add r3, pc                                        |     r3 = 0x51b6c;
    0x00028d76 add r0, pc                                        |     r0 = 0x51b72;
    0x00028d78 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x00028d7c b 0x28d94                                         |     goto label_1;
                                                                 | label_4:
    0x00028d7e blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x00028d82 ldr r0, [r0]                                      |     r0 = *(r0);
    0x00028d84 bl 0x30b74                                        |     zbx_strerror ();
    0x00028d88 ldr r1, [pc, 0x70]                                |     
    0x00028d8a mov r2, r0                                        |     r2 = r0;
    0x00028d8c movs r0, 0                                        |     r0 = 0;
    0x00028d8e add r1, pc                                        |     r1 = 0x51b8e;
    0x00028d90 bl 0x44820                                        |     zbx_dsprintf ()
                                                                 |     do {
                                                                 | label_1:
    0x00028d94 ldr r3, [sp, 4]                                   |         r3 = var_4h;
    0x00028d96 movs r5, 1                                        |         r5 = 1;
    0x00028d98 str r0, [r3]                                      |         *(r3) = r0;
    0x00028d9a b 0x28d2e                                         |         goto label_0;
                                                                 | label_5:
    0x00028d9c ldr r3, [pc, 0x60]                                |         
    0x00028d9e mov r2, r5                                        |         r2 = r5;
    0x00028da0 ldr r0, [pc, 0x60]                                |         
    0x00028da2 movs r1, 0x3c                                     |         r1 = 0x3c;
    0x00028da4 add r3, pc                                        |         r3 = "MemTotal:";
    0x00028da6 add r0, pc                                        |         r0 = 0x51bae;
    0x00028da8 bl 0x40ed8                                        |         zbx_strdup2 ();
    0x00028dac b 0x28d94                                         |         
                                                                 |     } while (1);
                                                                 | label_6:
    0x00028dae ldr r3, [pc, 0x58]                                |     
    0x00028db0 mov r2, r5                                        |     r2 = r5;
    0x00028db2 ldr r0, [pc, 0x58]                                |     
    0x00028db4 movs r1, 0x3f                                     |     r1 = 0x3f;
    0x00028db6 add r3, pc                                        |     r3 = "VmHWM";
    0x00028db8 add r0, pc                                        |     r0 = 0x51bca;
    0x00028dba bl 0x40ed8                                        |     zbx_strdup2 ();
    0x00028dbc strb.w lr, [sp, 0x7e9]                            |     
                                                                 | label_7:
    0x00028dc0 ldr r3, [pc, 0x4c]                                |     
    0x00028dc2 mov r2, r5                                        |     r2 = r5;
    0x00028dc4 ldr r0, [pc, 0x4c]                                |     
    0x00028dc6 movs r1, 0x42                                     |     r1 = 0x42;
    0x00028dc8 add r3, pc                                        |     r3 = 0x51bdc;
    0x00028dca add r0, pc                                        |     r0 = 0x51be2;
    0x00028dcc bl 0x40ed8                                        |     zbx_strdup2 ();
    0x00028dd0 b 0x28d94                                         |     goto label_1;
                                                                 | label_9:
    0x00028dd2 blx 0xe158                                        |     fcn_0000e158 ();
    0x00028dd6 nop                                               |     
    0x00028dd8 movs r0, r0                                       |     
    0x00028dda movs r0, r0                                       |     
    0x00028ddc movs r0, r0                                       |     
    0x00028dde eors r1, r3                                       |     r1 ^= r3;
    0x00028de0 lsls r4, r2, 0xe                                  |     r4 = r2 << 0xe;
    0x00028de2 movs r0, r0                                       |     
    0x00028de4 cmp r7, 0x6a                                      |     
    0x00028de6 movs r3, r0                                       |     r3 = r0;
    0x00028de8 cmp r6, 0xa6                                      |     
    0x00028dea movs r3, r0                                       |     r3 = r0;
    0x00028dec str r6, [sp, 0x3c8]                               |     var_3c8h_2 = r6;
    0x00028dee movs r2, r0                                       |     r2 = r0;
    0x00028df0 strh r6, [r0, 0x3c]                               |     *((r0 + 0x3c)) = r6;
    0x00028df2 movs r2, r0                                       |     r2 = r0;
    0x00028df4 strh r4, [r7, 0x3a]                               |     *((r7 + 0x3a)) = r4;
    0x00028df6 movs r2, r0                                       |     r2 = r0;
    0x00028df8 ldr r5, [sp, 0x188]                               |     r5 = var_188h;
    0x00028dfa movs r2, r0                                       |     r2 = r0;
    0x00028dfc ldr r0, [sp, 0x2b8]                               |     r0 = var_2b8h;
    0x00028dfe movs r2, r0                                       |     r2 = r0;
    0x00028e00 ldr r4, [sp, 0x3c0]                               |     r4 = var_328h;
    0x00028e02 movs r2, r0                                       |     r2 = r0;
    0x00028e04 ldr r5, [sp, 0xc8]                                |     r5 = var_c8h;
    0x00028e06 movs r2, r0                                       |     r2 = r0;
    0x00028e08 ldr r5, [sp, 0xb8]                                |     r5 = var_20h;
    0x00028e0a movs r2, r0                                       |     r2 = r0;
    0x00028e0c ldr r5, [sp, 0x80]                                |     r5 = var_80h;
    0x00028e0e movs r2, r0                                       |     r2 = r0;
    0x00028e10 ldr r5, [sp, 0x180]                               |     r5 = var_180h;
    0x00028e12 movs r2, r0                                       |     r2 = r0;
    0x00028e14 ldr r5, [sp, 0x38]                                |     r5 = var_38h;
    0x00028e16 movs r2, r0                                       |     r2 = r0;
    0x00028e18 ldr r2, [pc, 0x168]                               |     
    0x00028e1a ldr r3, [pc, 0x16c]                               |     r3 = *(0x28f8a);
    0x00028e1c push {r4, r5, r6, r7, lr}                         |     
    0x00028e1e sub sp, 0x4c                                      |     
    0x00028e20 add r2, pc                                        |     r2 = 0x51da8;
    0x00028e22 mov r4, r1                                        |     r4 = r1;
    0x00028e24 ldr r3, [r2, r3]                                  |     
    0x00028e26 ldr r3, [r3]                                      |     r3 = imp.__aeabi_unwind_cpp_pr0;
    0x00028e28 str r3, [sp, 0x44]                                |     var_44h = r3;
    0x00028e2a mov.w r3, 0                                       |     r3 = 0;
    0x00028e2e ldr r3, [r0, 4]                                   |     r3 = *((r0 + 4));
    0x00028e30 cmp r3, 2                                         |     
                                                                 |     if (r3 > 2) {
    0x00028e32 bgt 0x28edc                                       |         goto label_11;
                                                                 |     }
    0x00028e34 cmp r3, 0                                         |     
                                                                 |     if (r3 > 0) {
    0x00028e36 ble 0x28ea6                                       |         
    0x00028e38 ldr r2, [r0, 8]                                   |         r2 = *((r0 + 8));
    0x00028e3a cmp r3, 2                                         |         
    0x00028e3c it ne                                             |         
                                                                 |         if (r3 == 2) {
    0x00028e3e movne r6, 0                                       |             r6 = 0;
                                                                 |         }
    0x00028e40 ldr r0, [r2]                                      |         r0 = *(r2);
    0x00028e42 it eq                                             |         
                                                                 |         if (r3 != 2) {
    0x00028e44 ldreq r6, [r2, 4]                                 |             r6 = *((r2 + 4));
                                                                 |         }
    0x00028e46 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00028e48 beq 0x28ea6                                       |             goto label_12;
                                                                 |         }
    0x00028e4a ldrb r3, [r0]                                     |         r3 = *(r0);
    0x00028e4c cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x00028e4e beq 0x28ea6                                       |             goto label_12;
                                                                 |         }
    0x00028e50 add r3, sp, 0x14                                  |         r3 += var_14h_2;
    0x00028e52 add r2, sp, 0x30                                  |         r2 += var_30h;
    0x00028e54 strd r6, r3, [sp, 8]                              |         __asm ("strd r6, r3, [sp, 8]");
    0x00028e58 add r3, sp, 0x38                                  |         r3 += var_38h_2;
    0x00028e5a str r3, [sp, 4]                                   |         var_4h_2 = r3;
    0x00028e5c add r1, sp, 0x18                                  |         r1 += var_18h_2;
    0x00028e5e str r2, [sp]                                      |         *(sp) = r2;
    0x00028e60 add r3, sp, 0x28                                  |         r3 += var_28h;
    0x00028e62 add r2, sp, 0x20                                  |         r2 += var_20h_2;
    0x00028e64 bl 0x28c50                                        |         r0 = get_fs_inode_stat ();
    0x00028e68 mov r5, r0                                        |         r5 = r0;
    0x00028e6a cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00028e6c bne 0x28f06                                       |             goto label_13;
                                                                 |         }
    0x00028e6e ldr r7, [r4, 0x28]                                |         r7 = *((r4 + 0x28));
    0x00028e70 cmp r6, 0                                         |         
                                                                 |         if (r6 == 0) {
    0x00028e72 beq 0x28ef6                                       |             goto label_14;
                                                                 |         }
    0x00028e74 ldrb r3, [r6]                                     |         r3 = *(r6);
    0x00028e76 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x00028e78 beq 0x28ef6                                       |             goto label_14;
                                                                 |         }
    0x00028e7a ldr r1, [pc, 0x110]                               |         
    0x00028e7c mov r0, r6                                        |         r0 = r6;
    0x00028e7e add r1, pc                                        |         r1 = 0x51e10;
    0x00028e80 blx 0xe3b0                                        |         r0 = fcn_0000e3b0 ();
    0x00028e84 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00028e86 beq 0x28ef6                                       |             goto label_14;
                                                                 |         }
    0x00028e88 ldr r1, [pc, 0x104]                               |         
    0x00028e8a mov r0, r6                                        |         r0 = r6;
    0x00028e8c add r1, pc                                        |         r1 = 0x51e20;
    0x00028e8e blx 0xe3b0                                        |         r0 = fcn_0000e3b0 ();
    0x00028e92 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00028e94 bne 0x28f12                                       |             goto label_15;
                                                                 |         }
    0x00028e96 ldrd r2, r3, [sp, 0x20]                           |         __asm ("ldrd r2, r3, [var_20h_2]");
    0x00028e9a orr r7, r7, 1                                     |         r7 |= 1;
    0x00028e9e str r7, [r4, 0x28]                                |         *((r4 + 0x28)) = r7;
    0x00028ea0 strd r2, r3, [r4, 8]                              |         __asm ("strd r2, r3, [r4, 8]");
    0x00028ea4 b 0x28ec2                                         |         goto label_2;
                                                                 |     }
                                                                 | label_12:
    0x00028ea6 ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x00028ea8 movs r2, 0                                        |     r2 = 0;
    0x00028eaa ldr r3, [pc, 0xe8]                                |     
    0x00028eac movs r1, 0x68                                     |     r1 = 0x68;
    0x00028eae orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x00028eb2 str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x00028eb4 add r3, pc                                        |     r3 = 0x51e4e;
    0x00028eb6 ldr r0, [pc, 0xe0]                                |     
    0x00028eb8 add r0, pc                                        |     r0 = 0x51e56;
    0x00028eba bl 0x40ed8                                        |     zbx_strdup2 ();
                                                                 |     do {
                                                                 | label_3:
    0x00028ebe movs r5, 1                                        |         r5 = 1;
    0x00028ec0 str r0, [r4, 0x20]                                |         *((r4 + 0x20)) = r0;
                                                                 | label_2:
    0x00028ec2 ldr r2, [pc, 0xd8]                                |         
    0x00028ec4 ldr r3, [pc, 0xc0]                                |         r3 = *(0x28f88);
    0x00028ec6 add r2, pc                                        |         r2 = "thread";
    0x00028ec8 ldr r3, [r2, r3]                                  |         r3 = "thread";
    0x00028eca ldr r2, [r3]                                      |         r2 = "thread";
    0x00028ecc ldr r3, [sp, 0x44]                                |         r3 = var_44h;
    0x00028ece eors r2, r3                                       |         r2 ^= r3;
    0x00028ed0 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00028ed4 bne 0x28f7e                                       |             goto label_16;
                                                                 |         }
    0x00028ed6 mov r0, r5                                        |         r0 = r5;
    0x00028ed8 add sp, 0x4c                                      |         
    0x00028eda pop {r4, r5, r6, r7, pc}                          |         
                                                                 | label_11:
    0x00028edc ldr r0, [r1, 0x28]                                |         r0 = *((r1 + 0x28));
    0x00028ede movs r2, 0                                        |         r2 = 0;
    0x00028ee0 ldr r3, [pc, 0xbc]                                |         
    0x00028ee2 movs r1, 0x5f                                     |         r1 = 0x5f;
    0x00028ee4 orr r0, r0, 0x20                                  |         r0 |= 0x20;
    0x00028ee8 str r0, [r4, 0x28]                                |         *((r4 + 0x28)) = r0;
    0x00028eea add r3, pc                                        |         r3 = 0x51e8e;
    0x00028eec ldr r0, [pc, 0xb4]                                |         
    0x00028eee add r0, pc                                        |         r0 = 0x51e96;
    0x00028ef0 bl 0x40ed8                                        |         zbx_strdup2 ();
    0x00028ef4 b 0x28ebe                                         |         
                                                                 |     } while (1);
                                                                 | label_14:
    0x00028ef6 ldrd r2, r3, [sp, 0x18]                           |     __asm ("ldrd r2, r3, [var_18h_2]");
    0x00028efa orr r7, r7, 1                                     |     r7 |= 1;
    0x00028efe str r7, [r4, 0x28]                                |     *((r4 + 0x28)) = r7;
    0x00028f00 strd r2, r3, [r4, 8]                              |     __asm ("strd r2, r3, [r4, 8]");
    0x00028f04 b 0x28ec2                                         |     goto label_2;
                                                                 | label_13:
    0x00028f06 ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x00028f08 ldr r0, [sp, 0x14]                                |     r0 = var_14h_2;
    0x00028f0a orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x00028f0e str r3, [r4, 0x28]                                |     *((r4 + 0x28)) = r3;
    0x00028f10 b 0x28ebe                                         |     goto label_3;
                                                                 | label_15:
    0x00028f12 ldr r1, [pc, 0x94]                                |     
    0x00028f14 mov r0, r6                                        |     r0 = r6;
    0x00028f16 add r1, pc                                        |     r1 = 0x51ec4;
    0x00028f18 blx 0xe3b0                                        |     r0 = fcn_0000e3b0 ();
                                                                 |     if (r0 == 0) {
    0x00028f1c cbnz r0, 0x28f2e                                  |         
    0x00028f1e ldrd r2, r3, [sp, 0x28]                           |         __asm ("ldrd r2, r3, [var_28h]");
    0x00028f22 orr r7, r7, 1                                     |         r7 |= 1;
    0x00028f26 str r7, [r4, 0x28]                                |         *((r4 + 0x28)) = r7;
    0x00028f28 strd r2, r3, [r4, 8]                              |         __asm ("strd r2, r3, [r4, 8]");
    0x00028f2c b 0x28ec2                                         |         goto label_2;
                                                                 |     }
    0x00028f2e ldr r1, [pc, 0x7c]                                |     
    0x00028f30 mov r0, r6                                        |     r0 = r6;
    0x00028f32 add r1, pc                                        |     r1 = 0x51ee4;
    0x00028f34 blx 0xe3b0                                        |     r0 = fcn_0000e3b0 ();
                                                                 |     if (r0 == 0) {
    0x00028f38 cbnz r0, 0x28f4a                                  |         
    0x00028f3a ldrd r2, r3, [sp, 0x30]                           |         __asm ("ldrd r2, r3, [var_30h]");
    0x00028f3e orr r7, r7, 2                                     |         r7 |= 2;
    0x00028f42 str r7, [r4, 0x28]                                |         *((r4 + 0x28)) = r7;
    0x00028f44 strd r2, r3, [r4, 0x10]                           |         __asm ("strd r2, r3, [r4, 0x10]");
    0x00028f48 b 0x28ec2                                         |         goto label_2;
                                                                 |     }
    0x00028f4a ldr r1, [pc, 0x64]                                |     
    0x00028f4c mov r0, r6                                        |     r0 = r6;
    0x00028f4e add r1, pc                                        |     r1 = 0x51f04;
    0x00028f50 blx 0xe3b0                                        |     r0 = fcn_0000e3b0 ();
                                                                 |     if (r0 == 0) {
    0x00028f54 cbnz r0, 0x28f66                                  |         
    0x00028f56 ldrd r2, r3, [sp, 0x38]                           |         __asm ("ldrd r2, r3, [var_38h_2]");
    0x00028f5a orr r7, r7, 2                                     |         r7 |= 2;
    0x00028f5e str r7, [r4, 0x28]                                |         *((r4 + 0x28)) = r7;
    0x00028f60 strd r2, r3, [r4, 0x10]                           |         __asm ("strd r2, r3, [r4, 0x10]");
    0x00028f64 b 0x28ec2                                         |         goto label_2;
                                                                 |     }
    0x00028f66 ldr r3, [pc, 0x4c]                                |     
    0x00028f68 orr r7, r7, 0x20                                  |     r7 |= 0x20;
    0x00028f6c ldr r0, [pc, 0x48]                                |     
    0x00028f6e movs r2, 0                                        |     r2 = 0;
    0x00028f70 movs r1, 0x88                                     |     r1 = 0x88;
    0x00028f72 str r7, [r4, 0x28]                                |     *((r4 + 0x28)) = r7;
    0x00028f74 add r3, pc                                        |     r3 = 0x51f2e;
    0x00028f76 add r0, pc                                        |     r0 = 0x51f32;
    0x00028f78 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x00028f7c b 0x28ebe                                         |     goto label_3;
                                                                 | label_16:
    0x00028f7e blx 0xe158                                        |     fcn_0000e158 ();
    0x00028f82 nop                                               |     
    0x00028f84 cmp r5, 0xb8                                      |     
    0x00028f86 movs r3, r0                                       |     r3 = r0;
    0x00028f88 lsls r4, r2, 0xe                                  |     r4 = r2 << 0xe;
    0x00028f8a movs r0, r0                                       |     
    0x00028f8c strh r6, [r4, 0x1a]                               |     *((r4 + 0x1a)) = r6;
    0x00028f8e movs r2, r0                                       |     r2 = r0;
    0x00028f90 strh r4, [r2, 0x26]                               |     *((r2 + 0x26)) = r4;
    0x00028f92 movs r2, r0                                       |     r2 = r0;
    0x00028f94 str r4, [r7, 0x78]                                |     *((r7 + 0x78)) = r4;
    0x00028f96 movs r2, r0                                       |     r2 = r0;
    0x00028f98 ldr r4, [sp, 0x80]                                |     r4 = var_80h_2;
    0x00028f9a movs r2, r0                                       |     r2 = r0;
    0x00028f9c cmp r5, 0x12                                      |     
    0x00028f9e movs r3, r0                                       |     r3 = r0;
    0x00028fa0 str r6, [r5, 0x74]                                |     *((r5 + 0x74)) = r6;
    0x00028fa2 movs r2, r0                                       |     r2 = r0;
    0x00028fa4 ldr r3, [sp, 0x3a8]                               |     r3 = var_3a8h;
    0x00028fa6 movs r2, r0                                       |     r2 = r0;
    0x00028fa8 subs r3, 0x2e                                     |     r3 -= 0x2e;
    0x00028faa movs r2, r0                                       |     r2 = r0;
    0x00028fac str r5, [sp, 0x58]                                |     var_58h = r5;
    0x00028fae movs r2, r0                                       |     r2 = r0;
    0x00028fb0 strh r2, [r3, 0x2c]                               |     *((r3 + 0x2c)) = r2;
    0x00028fb2 movs r2, r0                                       |     r2 = r0;
    0x00028fb4 ldrb r4, [r2, 0x18]                               |     r4 = *((r2 + 0x18));
    0x00028fb6 movs r2, r0                                       |     r2 = r0;
    0x00028fb8 ldr r3, [sp, 0x188]                               |     r3 = var_90h;
    0x00028fba movs r2, r0                                       |     r2 = r0;
                                                                 | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x1ced8 */
                                                     | #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;
    0x0001ced8 blmi 0xff1ef9f8                       |     __asm ("blmi aav.0x0003ecf8");
    0x0001cedc push {r4, r5, r6, r7, lr}             |     
    0x0001cede sub sp, 0x24                          |     
    0x0001cee0 add r2, pc                            |     r2 += pc;
    0x0001cee2 ldr r3, [r2, r3]                      |     r3 = *((r2 + r3));
    0x0001cee4 ldr r3, [r3]                          |     r3 = *(r3);
    0x0001cee6 str r3, [sp, 0x1c]                    |     var_1ch = r3;
    0x0001cee8 mov.w r3, 0                           |     r3 = 0;
    0x0001ceec cmp r0, 0                             |     
                                                     |     if (r0 == 0) {
    0x0001ceee beq.w 0x1d1dc                         |         goto label_10;
                                                     |     }
    0x0001cef2 subs r1, 1                            |     r1--;
    0x0001cef4 mov r4, r0                            |     r4 = r0;
    0x0001cef6 cmp r1, 0x1f                          |     
                                                     |     if (r1 > 0x1f) {
    0x0001cef8 bhi 0x1cf30                           |         goto label_1;
                                                     |     }
                                                     |     /* switch table (32 cases) at 0x1cefe */
    0x0001cefa tbb [pc, r1]                          |     __asm ("tbb [0x0001cf00]");
    0x0001cf1e ldr r3, [r0, 0x28]                    |     r3 = *((r0 + 0x28));
    0x0001cf20 ands r6, r3, 0x10                     |     r6 = r3 & 0x10;
    0x0001cf24 it ne                                 |     
                                                     |     if (r6 == r3) {
    0x0001cf26 ldrne r5, [r0, 0x24]                  |         r5 = *((r0 + 0x24));
                                                     |     }
                                                     |     if (r6 != r3) {
    0x0001cf28 bne 0x1cf32                           |         goto label_0;
                                                     |     }
    0x0001cf2a lsls r1, r3, 0x1b                     |     r1 = r3 << 0x1b;
                                                     |     if (r1 != r3) {
    0x0001cf2c bne.w 0x1d06e                         |         goto label_11;
                                                     |     }
                                                     |     do {
                                                     | label_1:
    0x0001cf30 movs r5, 0                            |         r5 = 0;
                                                     | label_0:
    0x0001cf32 ldr r2, [pc, 0x2c8]                   |         
    0x0001cf34 ldr r3, [pc, 0x2c0]                   |         r3 = *(0x1d1f8);
    0x0001cf36 add r2, pc                            |         r2 = 0x3a138;
    0x0001cf38 ldr r3, [r2, r3]                      |         r3 = *(0x3a138);
    0x0001cf3a ldr r2, [r3]                          |         r2 = *(0x3a138);
    0x0001cf3c ldr r3, [sp, 0x1c]                    |         r3 = var_1ch;
    0x0001cf3e eors r2, r3                           |         r2 ^= r3;
    0x0001cf40 mov.w r3, 0                           |         r3 = 0;
                                                     |         if (r2 != r3) {
    0x0001cf44 bne.w 0x1d1d8                         |             goto label_12;
                                                     |         }
    0x0001cf48 mov r0, r5                            |         r0 = r5;
    0x0001cf4a add sp, 0x24                          |         
    0x0001cf4c pop {r4, r5, r6, r7, pc}              |         
    0x0001cf4e ldr r3, [r0, 0x28]                    |         r3 = *((r0 + 0x28));
    0x0001cf50 lsls r3, r3, 0x1a                     |         r3 <<= 0x1a;
    0x0001cf52 bpl 0x1cf30                           |         
                                                     |     } while (r3 >= r3);
    0x0001cf54 add.w r5, r0, 0x20                    |     r5 = r0 + 0x20;
    0x0001cf58 b 0x1cf32                             |     goto label_0;
    0x0001cf5a ldr r3, [r0, 0x28]                    |     r3 = *((r0 + 0x28));
    0x0001cf5c lsls r0, r3, 0x1f                     |     r0 = r3 << 0x1f;
                                                     |     if (r0 >= r3) {
    0x0001cf5e bpl 0x1d01e                           |         goto label_13;
                                                     |     }
                                                     | label_3:
    0x0001cf60 add.w r5, r4, 8                       |     r5 = r4 + 8;
    0x0001cf64 b 0x1cf32                             |     goto label_0;
    0x0001cf66 ldr r1, [r0, 0x28]                    |     r1 = *((r0 + 0x28));
    0x0001cf68 ands r2, r1, 8                        |     r2 = r1 & 8;
                                                     |     if (r2 != r1) {
    0x0001cf6c bne 0x1cf9e                           |         goto label_14;
                                                     |     }
    0x0001cf6e ands r0, r1, 4                        |     r0 = r1 & 4;
                                                     |     if (r0 != r1) {
    0x0001cf72 bne.w 0x1d116                         |         goto label_15;
                                                     |     }
    0x0001cf76 ands r5, r1, 1                        |     r5 = r1 & 1;
                                                     |     if (r5 != r1) {
    0x0001cf7a bne.w 0x1d12c                         |         goto label_16;
                                                     |     }
    0x0001cf7e lsls r6, r1, 0x1e                     |     r6 = r1 << 0x1e;
                                                     |     if (r6 >= r1) {
    0x0001cf80 bpl 0x1cf30                           |         goto label_1;
                                                     |     }
    0x0001cf82 orr r1, r1, 8                         |     r1 |= 8;
    0x0001cf86 ldrd r2, r3, [r4, 0x10]               |     __asm ("ldrd r2, r3, [r4, 0x10]");
    0x0001cf8a str r1, [r4, 0x28]                    |     *((r4 + 0x28)) = r1;
    0x0001cf8c mov r0, r5                            |     r0 = r5;
    0x0001cf8e ldr r1, [pc, 0x270]                   |     
    0x0001cf90 add r1, pc                            |     r1 = 0x3a196;
    0x0001cf92 bl 0x44820                            |     zbx_dsprintf ()
                                                     | label_6:
    0x0001cf96 ldr r3, [r4, 0x28]                    |     r3 = *((r4 + 0x28));
    0x0001cf98 str r0, [r4, 0x1c]                    |     *((r4 + 0x1c)) = r0;
    0x0001cf9a lsls r0, r3, 0x1c                     |     r0 = r3 << 0x1c;
                                                     |     if (r0 >= r3) {
    0x0001cf9c bpl 0x1cf30                           |         goto label_1;
                                                     |     }
                                                     | label_14:
    0x0001cf9e add.w r5, r4, 0x1c                    |     r5 = r4 + 0x1c;
    0x0001cfa2 b 0x1cf32                             |     goto label_0;
    0x0001cfa4 ldr r3, [r0, 0x28]                    |     r3 = *((r0 + 0x28));
    0x0001cfa6 lsls r6, r3, 0x1e                     |     r6 = r3 << 0x1e;
                                                     |     if (r6 >= r3) {
    0x0001cfa8 bpl 0x1cfec                           |         goto label_17;
                                                     |     }
                                                     | label_2:
    0x0001cfaa add.w r5, r4, 0x10                    |     r5 = r4 + 0x10;
    0x0001cfae b 0x1cf32                             |     goto label_0;
    0x0001cfb0 ldr r1, [r0, 0x28]                    |     r1 = *((r0 + 0x28));
    0x0001cfb2 lsls r2, r1, 0x1d                     |     r2 = r1 << 0x1d;
                                                     |     if (r2 < r1) {
    0x0001cfb4 bmi 0x1cfe6                           |         goto label_18;
                                                     |     }
    0x0001cfb6 ands r0, r1, 8                        |     r0 = r1 & 8;
                                                     |     if (r0 != r1) {
    0x0001cfba bne.w 0x1d0d8                         |         goto label_19;
                                                     |     }
    0x0001cfbe ands r5, r1, 1                        |     r5 = r1 & 1;
                                                     |     if (r5 != r1) {
    0x0001cfc2 bne.w 0x1d156                         |         goto label_20;
                                                     |     }
    0x0001cfc6 lsls r3, r1, 0x1e                     |     r3 = r1 << 0x1e;
                                                     |     if (r3 >= r1) {
    0x0001cfc8 bpl 0x1cf30                           |         goto label_1;
                                                     |     }
    0x0001cfca orr r1, r1, 4                         |     r1 |= 4;
    0x0001cfce ldrd r2, r3, [r4, 0x10]               |     __asm ("ldrd r2, r3, [r4, 0x10]");
    0x0001cfd2 str r1, [r4, 0x28]                    |     *((r4 + 0x28)) = r1;
    0x0001cfd4 mov r0, r5                            |     r0 = r5;
    0x0001cfd6 ldr r1, [pc, 0x22c]                   |     
    0x0001cfd8 add r1, pc                            |     r1 = 0x3a1e2;
    0x0001cfda bl 0x44820                            |     zbx_dsprintf ()
    0x0001cfde str r0, [r4, 0x18]                    |     *((r4 + 0x18)) = r0;
                                                     | label_5:
    0x0001cfe0 ldr r3, [r4, 0x28]                    |     r3 = *((r4 + 0x28));
    0x0001cfe2 lsls r7, r3, 0x1d                     |     r7 = r3 << 0x1d;
                                                     |     if (r7 >= r3) {
    0x0001cfe4 bpl 0x1cf30                           |         goto label_1;
                                                     |     }
                                                     | label_18:
    0x0001cfe6 add.w r5, r4, 0x18                    |     r5 = r4 + 0x18;
    0x0001cfea b 0x1cf32                             |     goto label_0;
                                                     | label_17:
    0x0001cfec lsls r5, r3, 0x1f                     |     r5 = r3 << 0x1f;
                                                     |     if (r5 < r3) {
    0x0001cfee bmi 0x1d0c8                           |         goto label_21;
                                                     |     }
    0x0001cff0 lsls r0, r3, 0x1d                     |     r0 = r3 << 0x1d;
                                                     |     if (r0 < r3) {
    0x0001cff2 bmi.w 0x1d184                         |         goto label_22;
                                                     |     }
    0x0001cff6 lsls r1, r3, 0x1c                     |     r1 = r3 << 0x1c;
                                                     |     if (r1 >= r3) {
    0x0001cff8 bpl 0x1cf30                           |         goto label_1;
                                                     |     }
    0x0001cffa ldr r0, [r4, 0x1c]                    |     r0 = *((r4 + 0x1c));
    0x0001cffc bl 0x47e24                            |     zbx_trim_float ();
    0x0001d000 ldr r0, [r4, 0x1c]                    |     r0 = *((r4 + 0x1c));
    0x0001d002 add r1, sp, 0x10                      |     r1 += var_10h;
    0x0001d004 bl 0x41798                            |     r0 = is_double ();
    0x0001d008 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x0001d00a bne 0x1cf30                           |         goto label_1;
                                                     |     }
                                                     | label_9:
    0x0001d00c ldr r3, [r4, 0x28]                    |     r3 = *((r4 + 0x28));
    0x0001d00e ldrd r0, r1, [sp, 0x10]               |     __asm ("ldrd r0, r1, [var_10h]");
    0x0001d012 orr r3, r3, 2                         |     r3 |= 2;
    0x0001d016 str r3, [r4, 0x28]                    |     *((r4 + 0x28)) = r3;
                                                     | label_4:
    0x0001d018 strd r0, r1, [r4, 0x10]               |     __asm ("strd r0, r1, [r4, 0x10]");
    0x0001d01c b 0x1cfaa                             |     goto label_2;
                                                     | label_13:
    0x0001d01e lsls r1, r3, 0x1e                     |     r1 = r3 << 0x1e;
                                                     |     if (r1 < r3) {
    0x0001d020 bmi 0x1d0b8                           |         goto label_23;
                                                     |     }
    0x0001d022 lsls r2, r3, 0x1d                     |     r2 = r3 << 0x1d;
                                                     |     if (r2 < r3) {
    0x0001d024 bmi.w 0x1d16c                         |         goto label_24;
                                                     |     }
    0x0001d028 lsls r7, r3, 0x1c                     |     r7 = r3 << 0x1c;
                                                     |     if (r7 >= r3) {
    0x0001d02a bpl 0x1cf30                           |         goto label_1;
                                                     |     }
    0x0001d02c ldr r0, [r4, 0x1c]                    |     r0 = *((r4 + 0x1c));
    0x0001d02e bl 0x47e1c                            |     zbx_trim_integer ();
    0x0001d032 ldr r0, [r4, 0x1c]                    |     r0 = *((r4 + 0x1c));
    0x0001d034 bl 0x4448c                            |     del_zeros ();
    0x0001d038 ldr r0, [r4, 0x1c]                    |     r0 = *((r4 + 0x1c));
    0x0001d03a vmov.i8 d17, 0xff                     |     __asm ("vmov.i8 d17, 0xff");
    0x0001d03e vmov.i32 d16, 0                       |     __asm ("vmov.i32 d16, 0");
                                                     | label_8:
    0x0001d042 movs r3, 8                            |     r3 = 8;
    0x0001d044 add r2, sp, 0x10                      |     r2 += var_10h;
    0x0001d046 mov.w r1, -1                          |     r1 = -1;
    0x0001d04a vstr d17, [sp, 8]                     |     __asm ("vstr d17, [sp, 8]");
    0x0001d04e vstr d16, [sp]                        |     __asm ("vstr d16, [sp]");
    0x0001d052 bl 0x419a8                            |     r0 = is_uint_n_range ();
    0x0001d056 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x0001d058 bne.w 0x1cf30                         |         goto label_1;
                                                     |     }
    0x0001d05c ldr r3, [r4, 0x28]                    |     r3 = *((r4 + 0x28));
    0x0001d05e ldrd r0, r1, [sp, 0x10]               |     __asm ("ldrd r0, r1, [var_10h]");
    0x0001d062 orr r3, r3, 1                         |     r3 |= 1;
    0x0001d066 str r3, [r4, 0x28]                    |     *((r4 + 0x28)) = r3;
                                                     |     do {
    0x0001d068 strd r0, r1, [r4, 8]                  |         __asm ("strd r0, r1, [r4, 8]");
    0x0001d06c b 0x1cf60                             |         goto label_3;
                                                     | label_11:
    0x0001d06e ldr r7, [pc, 0x198]                   |         
    0x0001d070 movs r3, 0x14                         |         r3 = 0x14;
    0x0001d072 ldr r2, [r0, 0x24]                    |         r2 = *((r0 + 0x24));
    0x0001d074 movw r1, 0x5a4                        |         r1 = 0x5a4;
    0x0001d078 add r7, pc                            |         r7 = 0x3a286;
    0x0001d07a mov r0, r7                            |         r0 = r7;
    0x0001d07c bl 0x40dd8                            |         zbx_malloc2 ();
    0x0001d080 vmov.i32 d16, 0                       |         __asm ("vmov.i32 d16, 0");
    0x0001d084 mov r3, r0                            |         r3 = r0;
    0x0001d086 str r0, [r4, 0x24]                    |         *((r4 + 0x24)) = r0;
    0x0001d088 mov r5, r0                            |         r5 = r0;
    0x0001d08a vst1.32 {d16}, [r3]!                  |         __asm ("vst1.32 {d16}, [r3]!");
    0x0001d08e vst1.32 {d16}, [r3]                   |         __asm ("vst1.32 {d16}, [r3]");
    0x0001d092 ldr r3, [r4, 0x28]                    |         r3 = *((r4 + 0x28));
    0x0001d094 str r6, [r0, 0x10]                    |         *((r0 + 0x10)) = r6;
    0x0001d096 ands r2, r3, 4                        |         r2 = r3 & 4;
                                                     |         if (r2 != r3) {
    0x0001d09a bne 0x1d140                           |             goto label_25;
                                                     |         }
    0x0001d09c ands r0, r3, 8                        |         r0 = r3 & 8;
                                                     |         if (r0 != r3) {
    0x0001d0a0 bne 0x1d19a                           |             goto label_26;
                                                     |         }
    0x0001d0a2 ands r1, r3, 1                        |         r1 = r3 & 1;
                                                     |         if (r1 != r3) {
    0x0001d0a6 bne.w 0x1d1ae                         |             goto label_27;
                                                     |         }
    0x0001d0aa lsls r2, r3, 0x1e                     |         r2 = r3 << 0x1e;
                                                     |         if (r2 < r3) {
    0x0001d0ac bmi.w 0x1d1c2                         |             goto label_28;
                                                     |         }
                                                     | label_7:
    0x0001d0b0 orr r3, r3, 0x10                      |         r3 |= 0x10;
    0x0001d0b4 str r3, [r4, 0x28]                    |         *((r4 + 0x28)) = r3;
    0x0001d0b6 b 0x1cf32                             |         goto label_0;
                                                     | label_23:
    0x0001d0b8 orr r3, r3, 1                         |         r3 |= 1;
    0x0001d0bc ldrd r0, r1, [r4, 0x10]               |         __asm ("ldrd r0, r1, [r4, 0x10]");
    0x0001d0c0 str r3, [r4, 0x28]                    |         *((r4 + 0x28)) = r3;
    0x0001d0c2 bl 0x4c7a0                            |         fcn_0004c7a0 (r0, r1);
    0x0001d0c6 b 0x1d068                             |         
                                                     |     } while (1);
                                                     | label_21:
    0x0001d0c8 orr r3, r3, 2                         |     r3 |= 2;
    0x0001d0cc ldrd r0, r1, [r0, 8]                  |     __asm ("ldrd r0, r1, [r0, 8]");
    0x0001d0d0 str r3, [r4, 0x28]                    |     *((r4 + 0x28)) = r3;
    0x0001d0d2 bl 0x4c6f4                            |     fcn_0004c6f4 (r0, r1, r2);
    0x0001d0d6 b 0x1d018                             |     goto label_4;
                                                     | label_19:
    0x0001d0d8 ldr r6, [r4, 0x1c]                    |     r6 = *((r4 + 0x1c));
    0x0001d0da ldrb r5, [r6]                         |     r5 = *(r6);
    0x0001d0dc cmp r5, 0                             |     
    0x0001d0de it ne                                 |     
                                                     |     if (r5 != 0) {
    0x0001d0e0 cmpne r5, 0xd                         |         __asm ("cmpne r5, 0xd");
                                                     |     }
                                                     |     if (r5 != 0) {
    0x0001d0e2 bne 0x1d0f2                           |         goto label_29;
                                                     |     }
    0x0001d0e4 b 0x1d0f6                             |     goto label_30;
                                                     |     do {
    0x0001d0e6 ldrb r5, [r6, 1]!                     |         r5 = *((r6 += 1));
    0x0001d0ea cmp r5, 0                             |         
    0x0001d0ec it ne                                 |         
                                                     |         if (r5 != 0) {
    0x0001d0ee cmpne r5, 0xd                         |             __asm ("cmpne r5, 0xd");
                                                     |         }
                                                     |         if (r5 == 0) {
    0x0001d0f0 beq 0x1d0f6                           |             goto label_30;
                                                     |         }
                                                     | label_29:
    0x0001d0f2 cmp r5, 0xa                           |         
    0x0001d0f4 bne 0x1d0e6                           |         
                                                     |     } while (r5 != 0xa);
                                                     | label_30:
    0x0001d0f6 movs r2, 0                            |     r2 = 0;
    0x0001d0f8 ldr r0, [pc, 0x110]                   |     
    0x0001d0fa strb r2, [r6]                         |     *(r6) = r2;
    0x0001d0fc movw r1, 0x56e                        |     r1 = 0x56e;
    0x0001d100 ldr r3, [r4, 0x28]                    |     r3 = *((r4 + 0x28));
    0x0001d102 add r0, pc                            |     r0 = 0x3a312;
    0x0001d104 orr r3, r3, 4                         |     r3 |= 4;
    0x0001d108 str r3, [r4, 0x28]                    |     *((r4 + 0x28)) = r3;
    0x0001d10a ldr r3, [r4, 0x1c]                    |     r3 = *((r4 + 0x1c));
    0x0001d10c bl 0x40ed8                            |     zbx_strdup2 ();
    0x0001d110 str r0, [r4, 0x18]                    |     *((r4 + 0x18)) = r0;
    0x0001d112 strb r5, [r6]                         |     *(r6) = r5;
    0x0001d114 b 0x1cfe0                             |     goto label_5;
                                                     | label_15:
    0x0001d116 orr r0, r1, 8                         |     r0 = r1 | 8;
    0x0001d11a ldr r3, [r4, 0x18]                    |     r3 = *((r4 + 0x18));
    0x0001d11c str r0, [r4, 0x28]                    |     *((r4 + 0x28)) = r0;
    0x0001d11e movw r1, 0x58b                        |     r1 = 0x58b;
    0x0001d120 str r3, [r1, r6]                      |     *((r1 + r6)) = r3;
    0x0001d122 ldr r0, [pc, 0xec]                    |     
    0x0001d124 add r0, pc                            |     r0 = 0x3a33a;
    0x0001d126 bl 0x40ed8                            |     zbx_strdup2 ();
    0x0001d12a b 0x1cf96                             |     goto label_6;
                                                     | label_16:
    0x0001d12c orr r1, r1, 8                         |     r1 |= 8;
    0x0001d130 ldrd r2, r3, [r4, 8]                  |     __asm ("ldrd r2, r3, [r4, 8]");
    0x0001d134 str r1, [r4, 0x28]                    |     *((r4 + 0x28)) = r1;
    0x0001d136 ldr r1, [pc, 0xdc]                    |     
    0x0001d138 add r1, pc                            |     r1 = 0x3a352;
    0x0001d13a bl 0x44820                            |     zbx_dsprintf ()
    0x0001d13e b 0x1cf96                             |     goto label_6;
                                                     | label_25:
    0x0001d140 ldr r3, [r4, 0x18]                    |     r3 = *((r4 + 0x18));
    0x0001d142 mov r2, r6                            |     r2 = r6;
    0x0001d144 mov r0, r7                            |     r0 = r7;
    0x0001d146 movw r1, 0x5a9                        |     r1 = 0x5a9;
    0x0001d14a bl 0x40ed8                            |     zbx_strdup2 ();
    0x0001d14e str r0, [r5]                          |     *(r5) = r0;
    0x0001d150 ldrd r5, r3, [r4, 0x24]               |     __asm ("ldrd r5, r3, [r4, 0x24]");
    0x0001d154 b 0x1d0b0                             |     goto label_7;
                                                     | label_20:
    0x0001d156 orr r1, r1, 4                         |     r1 |= 4;
    0x0001d15a ldrd r2, r3, [r4, 8]                  |     __asm ("ldrd r2, r3, [r4, 8]");
    0x0001d15e str r1, [r4, 0x28]                    |     *((r4 + 0x28)) = r1;
    0x0001d160 ldr r1, [pc, 0xb4]                    |     
    0x0001d162 add r1, pc                            |     r1 = 0x3a37e;
    0x0001d164 bl 0x44820                            |     zbx_dsprintf ()
    0x0001d168 str r0, [r4, 0x18]                    |     *((r4 + 0x18)) = r0;
    0x0001d16a b 0x1cfe0                             |     goto label_5;
                                                     | label_24:
    0x0001d16c ldr r0, [r4, 0x18]                    |     r0 = *((r4 + 0x18));
    0x0001d16e bl 0x47e1c                            |     zbx_trim_integer ();
    0x0001d172 ldr r0, [r4, 0x18]                    |     r0 = *((r4 + 0x18));
    0x0001d174 bl 0x4448c                            |     del_zeros ();
    0x0001d178 ldr r0, [r4, 0x18]                    |     r0 = *((r4 + 0x18));
    0x0001d17a vmov.i8 d17, 0xff                     |     __asm ("vmov.i8 d17, 0xff");
    0x0001d17e vmov.i32 d16, 0                       |     __asm ("vmov.i32 d16, 0");
    0x0001d180 movs r0, r2                           |     r0 = r2;
    0x0001d182 b 0x1d042                             |     goto label_8;
                                                     | label_22:
    0x0001d184 ldr r0, [r4, 0x18]                    |     r0 = *((r4 + 0x18));
    0x0001d186 bl 0x47e24                            |     zbx_trim_float ();
    0x0001d18a ldr r0, [r4, 0x18]                    |     r0 = *((r4 + 0x18));
    0x0001d18c add r1, sp, 0x10                      |     r1 += var_10h;
    0x0001d18e bl 0x41798                            |     r0 = is_double ();
    0x0001d192 cmp r0, 0                             |     
                                                     |     if (r0 == 0) {
    0x0001d194 beq.w 0x1d00c                         |         goto label_9;
                                                     |     }
    0x0001d198 b 0x1cf30                             |     goto label_1;
                                                     | label_26:
    0x0001d19a ldr r3, [r4, 0x1c]                    |     r3 = *((r4 + 0x1c));
    0x0001d19c mov r0, r7                            |     r0 = r7;
    0x0001d19e movw r1, 0x5ab                        |     r1 = 0x5ab;
    0x0001d1a2 bl 0x40ed8                            |     zbx_strdup2 ();
    0x0001d1a6 str r0, [r5]                          |     *(r5) = r0;
    0x0001d1a8 ldrd r5, r3, [r4, 0x24]               |     __asm ("ldrd r5, r3, [r4, 0x24]");
    0x0001d1ac b 0x1d0b0                             |     goto label_7;
                                                     | label_27:
    0x0001d1ae ldr r1, [pc, 0x6c]                    |     
    0x0001d1b0 ldrd r2, r3, [r4, 8]                  |     __asm ("ldrd r2, r3, [r4, 8]");
    0x0001d1b4 add r1, pc                            |     r1 = 0x3a3d6;
    0x0001d1b6 bl 0x44820                            |     zbx_dsprintf ()
    0x0001d1ba str r0, [r5]                          |     *(r5) = r0;
    0x0001d1bc ldrd r5, r3, [r4, 0x24]               |     __asm ("ldrd r5, r3, [r4, 0x24]");
    0x0001d1c0 b 0x1d0b0                             |     goto label_7;
                                                     | label_28:
    0x0001d1c2 mov r0, r1                            |     r0 = r1;
    0x0001d1c4 ldr r1, [pc, 0x58]                    |     
    0x0001d1c6 ldrd r2, r3, [r4, 0x10]               |     __asm ("ldrd r2, r3, [r4, 0x10]");
    0x0001d1ca add r1, pc                            |     r1 = 0x3a3ee;
    0x0001d1cc bl 0x44820                            |     zbx_dsprintf ()
    0x0001d1d0 str r0, [r5]                          |     *(r5) = r0;
    0x0001d1d2 ldrd r5, r3, [r4, 0x24]               |     __asm ("ldrd r5, r3, [r4, 0x24]");
    0x0001d1d6 b 0x1d0b0                             |     goto label_7;
                                                     | label_12:
    0x0001d1d8 blx 0xe158                            |     fcn_0000e158 ();
                                                     | label_10:
    0x0001d1dc ldr r3, [pc, 0x44]                    |     
    0x0001d1de movw r2, 0x5ce                        |     r2 = 0x5ce;
    0x0001d1e2 ldr r1, [pc, 0x44]                    |     
    0x0001d1e4 ldr r0, [pc, 0x44]                    |     
    0x0001d1e6 add r3, pc                            |     r3 = 0x3a40e;
    0x0001d1e8 add r1, pc                            |     r1 = 0x3a416;
    0x0001d1ea adds r3, 0x38                         |     r3 += 0x38;
    0x0001d1ec add r0, pc                            |     r0 = 0x3a41c;
    0x0001d1ee blx 0xdde4                            |     shmdt ();
    0x0001d1f2 nop                                   |     
    0x0001d1f4 ldcl p0, c0, [r8], 0xc                |     __asm ("ldcl p0, c0, [r8], 0xc");
    0x0001d1f8 lsls r4, r2, 0xe                      |     r4 = r2 << 0xe;
    0x0001d1fa movs r0, r0                           |     
    0x0001d1fc stc p0, c0, [r2], 0xc                 |     __asm ("stc p0, c0, [r2], 0xc");
    0x0001d200 strb r0, [r0, 7]                      |     *((r0 + 7)) = r0;
    0x0001d202 movs r3, r0                           |     r3 = r0;
    0x0001d204 strb r0, [r7, 5]                      |     *((r7 + 5)) = r0;
    0x0001d206 movs r3, r0                           |     r3 = r0;
    0x0001d208 subs r0, 0x60                         |     r0 -= 0x60;
    0x0001d20a movs r3, r0                           |     r3 = r0;
    0x0001d20c adds r7, 0xd6                         |     r7 += 0xd6;
    0x0001d20e movs r3, r0                           |     r3 = r0;
    0x0001d210 adds r7, 0xb4                         |     r7 += 0xb4;
    0x0001d212 movs r3, r0                           |     r3 = r0;
    0x0001d214 strb r0, [r1, r1]                     |     *((r1 + r1)) = r0;
    0x0001d216 movs r3, r0                           |     r3 = r0;
    0x0001d218 strb r6, [r3, r0]                     |     *((r3 + r0)) = r6;
    0x0001d21a movs r3, r0                           |     r3 = r0;
    0x0001d21c strh r4, [r1, r7]                     |     *((r1 + r7)) = r4;
    0x0001d21e movs r3, r0                           |     r3 = r0;
    0x0001d220 ldr r6, [r0, 0x78]                    |     r6 = *(0x3a494);
    0x0001d222 movs r3, r0                           |     r3 = r0;
    0x0001d224 subs r3, 0xbe                         |     r3 -= 0xbe;
    0x0001d226 movs r3, r0                           |     r3 = r0;
    0x0001d228 adds r6, 0xf0                         |     r6 += 0xf0;
    0x0001d22a movs r3, r0                           |     r3 = r0;
    0x0001d22c subs r1, 0xfc                         |     r1 -= 0xfc;
    0x0001d22e movs r3, r0                           |     r3 = r0;
                                                     | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x12a08 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.init_collector_data ()                   | void init_collector_data (int16_t arg1) {
                                                         |     r0 = arg1;
    0x00012a08 bmi 0x1265730                             |     
    0x00012a0c push.w {r4, r5, r6, r7, r8, lr}           |     
    0x00012a10 mov r6, r0                                |     r6 = r0;
    0x00012a12 add r3, pc                                |     r3 += pc;
    0x00012a14 ldr r5, [r3, r2]                          |     r5 = *((r3 + r2));
    0x00012a16 ldr r3, [r5]                              |     r3 = *(r5);
    0x00012a18 cmp r3, 3                                 |     
                                                         |     if (r3 > 3) {
    0x00012a1a bgt 0x12a9c                               |         goto label_3;
                                                         |     }
    0x00012a1c movs r0, 0x53                             |     r0 = 0x53;
    0x00012a1e blx 0xdbf8                                |     r0 = longjmp_chk ();
    0x00012a22 adds r2, r0, 1                            |     r2 = r0 + 1;
    0x00012a24 mov r7, r0                                |     r7 = r0;
                                                         |     if (r2 == r0) {
    0x00012a26 beq 0x12ab6                               |         goto label_4;
                                                         |     }
                                                         |     do {
    0x00012a28 movw r3, 0x1d28                           |         
    0x00012a2c movt r3, 1                                |         r3 = 0x11d28;
    0x00012a30 mla r3, r0, r3, r3                        |         __asm ("mla r3, r0, r3, r3");
    0x00012a34 add.w r0, r3, 0x20                        |         r0 = r3 + 0x20;
                                                         | label_0:
    0x00012a38 ldr.w r8, [pc, 0xf8]                      |         
    0x00012a3c bl 0x35924                                |         r0 = zbx_shm_create ();
    0x00012a40 adds r3, r0, 1                            |         r3 = r0 + 1;
    0x00012a42 mov r4, r0                                |         r4 = r0;
    0x00012a44 add r8, pc                                |         r8 = 0x2557c;
    0x00012a46 str.w r0, [r8]                            |         __asm ("str.w r0, [r8]");
                                                         |         if (r3 == r0) {
    0x00012a4a beq 0x12ae8                               |             goto label_5;
                                                         |         }
    0x00012a4c movs r2, 0                                |         r2 = 0;
    0x00012a4e mov r1, r2                                |         r1 = r2;
    0x00012a50 blx 0xdd44                                |         fcn_0000dd44 ();
    0x00012a54 str.w r0, [r8, 4]                         |         __asm ("str.w r0, [r8, 4]");
    0x00012a58 adds r0, 1                                |         r0++;
                                                         |         if (r0 == 1) {
    0x00012a5a beq 0x12b12                               |             goto label_6;
                                                         |         }
    0x00012a5c mov r0, r4                                |         r0 = r4;
    0x00012a5e bl 0x35978                                |         zbx_shm_destroy ();
    0x00012a62 adds r0, 1                                |         r0++;
                                                         |         if (r0 == 1) {
    0x00012a64 beq 0x12b00                               |             goto label_7;
                                                         |         }
    0x00012a66 ldr.w r3, [r8, 4]                         |         r3 = *((r8 + 4));
    0x00012a6a mov.w r2, -1                              |         r2 = -1;
    0x00012a6e add.w r1, r3, 0x20                        |         r1 = r3 + 0x20;
    0x00012a72 str r2, [r3, 8]                           |         *((r3 + 8)) = r2;
    0x00012a74 str r1, [r3]                              |         *(r3) = r1;
    0x00012a76 str r7, [r3, 4]                           |         *((r3 + 4)) = r7;
    0x00012a78 bl 0x147c4                                |         zbx_procstat_init ();
    0x00012a7c ldr r0, [pc, 0xb8]                        |         
    0x00012a7e mov r2, r6                                |         r2 = r6;
    0x00012a80 movs r1, 6                                |         r1 = 6;
    0x00012a82 add r0, pc                                |         r0 = 0x255be;
    0x00012a84 bl 0x344e4                                |         r0 = zbx_mutex_create ();
    0x00012a88 subs r4, r0, 0                            |         r4 = r0 - 0;
    0x00012a8a it ne                                     |         
                                                         |         if (r4 == r0) {
    0x00012a8c movne r4, 1                               |             r4 = 1;
                                                         |         }
    0x00012a8e rsbs r4, r4, 0                            |         r4 -= ;
                                                         | label_1:
    0x00012a90 ldr r3, [r5]                              |         r3 = *(r5);
    0x00012a92 cmp r3, 3                                 |         
                                                         |         if (r3 > 3) {
    0x00012a94 bgt 0x12ac8                               |             goto label_8;
                                                         |         }
    0x00012a96 mov r0, r4                                |         r0 = r4;
    0x00012a98 pop.w {r4, r5, r6, r7, r8, pc}            |         
                                                         | label_3:
    0x00012a9c ldr r2, [pc, 0x9c]                        |         
    0x00012a9e movs r0, 4                                |         r0 = 4;
    0x00012aa0 ldr r1, [pc, 0x9c]                        |         
    0x00012aa2 add r2, pc                                |         r2 = 0x255e2;
    0x00012aa4 add r1, pc                                |         r1 = 0x255e8;
    0x00012aa6 bl 0x30d1c                                |         zbx_zabbix_log ();
    0x00012aaa movs r0, 0x53                             |         r0 = 0x53;
    0x00012aac blx 0xdbf8                                |         r0 = longjmp_chk ();
    0x00012ab0 adds r2, r0, 1                            |         r2 = r0 + 1;
    0x00012ab2 mov r7, r0                                |         r7 = r0;
    0x00012ab4 bne 0x12a28                               |         
                                                         |     } while (r2 != r0);
                                                         | label_4:
    0x00012ab6 ldr r3, [r5]                              |     r3 = *(r5);
    0x00012ab8 cmp r3, 2                                 |     
    0x00012aba bgt 0x12adc                               |     
                                                         |     while (1) {
    0x00012abc movw r0, 0x3a70                           |         
    0x00012ac0 movs r7, 1                                |         r7 = 1;
    0x00012ac2 movt r0, 2                                |         r0 = 0x23a70;
    0x00012ac6 b 0x12a38                                 |         goto label_0;
                                                         | label_8:
    0x00012ac8 ldr r2, [pc, 0x78]                        |         
    0x00012aca movs r0, 4                                |         r0 = 4;
    0x00012acc ldr r1, [pc, 0x78]                        |         
    0x00012ace add r2, pc                                |         r2 = 0x25616;
    0x00012ad0 add r1, pc                                |         r1 = 0x2561c;
    0x00012ad2 bl 0x30d1c                                |         zbx_zabbix_log ();
    0x00012ad6 mov r0, r4                                |         r0 = r4;
    0x00012ad8 pop.w {r4, r5, r6, r7, r8, pc}            |         
    0x00012adc ldr r1, [pc, 0x6c]                        |         
    0x00012ade movs r0, 3                                |         r0 = 3;
    0x00012ae0 add r1, pc                                |         r1 = 0x25630;
    0x00012ae2 bl 0x30d1c                                |         zbx_zabbix_log ();
    0x00012ae6 b 0x12abc                                 |         
                                                         |     }
                                                         | label_5:
    0x00012ae8 ldr r3, [pc, 0x64]                        |     
    0x00012aea movs r1, 0x98                             |     r1 = 0x98;
    0x00012aec ldr r0, [pc, 0x64]                        |     
    0x00012aee ldr r2, [r6]                              |     r2 = *(r6);
    0x00012af0 add r3, pc                                |     r3 = 0x25644;
    0x00012af2 add r0, pc                                |     r0 = 0x2564a;
    0x00012af4 bl 0x40ed8                                |     zbx_strdup2 ();
                                                         |     do {
                                                         | label_2:
    0x00012af8 mov.w r4, -1                              |         r4 = -1;
    0x00012afc str r0, [r6]                              |         *(r6) = r0;
    0x00012afe b 0x12a90                                 |         goto label_1;
                                                         | label_7:
    0x00012b00 ldr r3, [pc, 0x54]                        |         
    0x00012b02 movs r1, 0xa5                             |         r1 = 0xa5;
    0x00012b04 ldr r0, [pc, 0x54]                        |         
    0x00012b06 ldr r2, [r6]                              |         r2 = *(r6);
    0x00012b08 add r3, pc                                |         r3 = 0x25664;
    0x00012b0a add r0, pc                                |         r0 = 0x2566a;
    0x00012b0c bl 0x40ed8                                |         zbx_strdup2 ();
    0x00012b10 b 0x12af8                                 |         
                                                         |     } while (1);
                                                         | label_6:
    0x00012b12 blx 0xe3d4                                |     r0 = fcn_0000e3d4 ();
    0x00012b16 ldr r0, [r0]                              |     r0 = *(r0);
    0x00012b18 ldr r4, [r6]                              |     r4 = *(r6);
    0x00012b1a bl 0x30b74                                |     zbx_strerror ();
    0x00012b1e ldr r1, [pc, 0x40]                        |     
    0x00012b20 mov r2, r0                                |     r2 = r0;
    0x00012b22 mov r0, r4                                |     r0 = r4;
    0x00012b24 add r1, pc                                |     r1 = 0x2568a;
    0x00012b26 bl 0x44820                                |     zbx_dsprintf ()
    0x00012b2a b 0x12af8                                 |     goto label_2;
                                                         | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x3b744 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.json_parse_value ()                                  | void json_parse_value (int16_t arg1, int16_t arg2) {
                                                                     |     int16_t var_4h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
    0x0003b744 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0003b748 mov r8, r1                                            |     r8 = r1;
    0x0003b74a ldrb r4, [r0]                                         |     r4 = *(r0);
    0x0003b74c sub sp, 0xc                                           |     
    0x0003b74e cmp r4, 0                                             |     
                                                                     |     if (r4 == 0) {
    0x0003b750 beq.w 0x3b91a                                         |         goto label_3;
                                                                     |     }
    0x0003b754 ldr r6, [pc, 0x2e8]                                   |     
    0x0003b756 mov r7, r0                                            |     r7 = r0;
    0x0003b758 mov r5, r0                                            |     r5 = r0;
    0x0003b75a add r6, pc                                            |     r6 = 0x7719e;
    0x0003b75c b 0x3b768                                             |     
                                                                     |     while (r0 != 0) {
    0x0003b75e ldrb r4, [r5, 1]!                                     |         r4 = *((r5 += 1));
    0x0003b762 cmp r4, 0                                             |         
                                                                     |         if (r4 == 0) {
    0x0003b764 beq.w 0x3b91a                                         |             goto label_3;
                                                                     |         }
    0x0003b768 mov r1, r4                                            |         r1 = r4;
    0x0003b76a mov r0, r6                                            |         r0 = r6;
    0x0003b76c blx 0xdcd4                                            |         r0 = fcn_0000dcd4 ();
    0x0003b770 cmp r0, 0                                             |         
    0x0003b772 bne 0x3b75e                                           |         
                                                                     |     }
    0x0003b774 cmp r4, 0x7b                                          |     
                                                                     |     if (r4 <= 0x7b) {
    0x0003b776 bhi 0x3b7c0                                           |         
    0x0003b778 cmp r4, 0x5a                                          |         
                                                                     |         if (r4 >= 0x5a) {
    0x0003b77a bls 0x3b7aa                                           |             
    0x0003b77c sub.w r3, r4, 0x5b                                    |             r3 = r4 - 0x5b;
    0x0003b780 cmp r3, 0x20                                          |             
                                                                     |             if (r3 > 0x20) {
    0x0003b782 bhi 0x3b7c0                                           |                 goto label_4;
                                                                     |             }
                                                                     |             /* switch table (33 cases) at 0x3b788 */
    0x0003b784 tbb [pc, r3]                                          |             __asm ("tbb [0x0003b78c]");
                                                                     |         }
    0x0003b7aa cmp r4, 0x22                                          |         
                                                                     |         if (r4 == 0x22) {
    0x0003b7ac beq.w 0x3b93a                                         |             goto label_5;
                                                                     |         }
                                                                     |         if (r4 < 0x22) {
    0x0003b7b0 bls 0x3b7c0                                           |             goto label_4;
                                                                     |         }
    0x0003b7b2 cmp r4, 0x2d                                          |         
                                                                     |         if (r4 == 0x2d) {
    0x0003b7b4 beq 0x3b7e2                                           |             goto label_6;
                                                                     |         }
    0x0003b7b6 subs r4, 0x30                                         |         r4 -= 0x30;
    0x0003b7b8 cmp r4, 9                                             |         
    0x0003b7ba it ls                                                 |         
                                                                     |         if (r4 > 9) {
    0x0003b7bc movls r6, r5                                          |             r6 = r5;
                                                                     |         }
                                                                     |         if (r4 < 9) {
    0x0003b7be bls 0x3b7e4                                           |             goto label_7;
                                                                     |         }
                                                                     |     }
                                                                     | label_4:
    0x0003b7c0 cmp.w r8, 0                                           |     
                                                                     |     if (r8 != 0) {
    0x0003b7c4 beq 0x3b7dc                                           |         
    0x0003b7c6 ldr r2, [pc, 0x27c]                                   |         
    0x0003b7c8 mov r3, r5                                            |         r3 = r5;
    0x0003b7ca ldr r1, [pc, 0x27c]                                   |         
    0x0003b7cc ldr.w r0, [r8]                                        |         r0 = *(r8);
    0x0003b7d0 add r2, pc                                            |         r2 = 0x7721a;
    0x0003b7d2 add r1, pc                                            |         r1 = 0x77220;
    0x0003b7d4 bl 0x44820                                            |         zbx_dsprintf ()
    0x0003b7d8 str.w r0, [r8]                                        |         __asm ("str.w r0, [r8]");
                                                                     |     }
                                                                     | label_1:
    0x0003b7dc movs r0, 0                                            |     r0 = 0;
    0x0003b7de mov r1, r0                                            |     r1 = r0;
    0x0003b7e0 b 0x3b854                                             |     goto label_8;
                                                                     | label_6:
    0x0003b7e2 adds r6, r5, 1                                        |     r6 = r5 + 1;
                                                                     | label_7:
    0x0003b7e4 ldrb r3, [r6]                                         |     r3 = *(r6);
    0x0003b7e6 str r3, [sp, 4]                                       |     var_4h = r3;
    0x0003b7e8 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0003b7ea beq.w 0x3b9c0                                         |         goto label_9;
                                                                     |     }
    0x0003b7ee mov.w sl, 0                                           |     sl = 0;
    0x0003b7f2 adds r6, 1                                            |     r6++;
    0x0003b7f4 mov sb, r3                                            |     sb = r3;
    0x0003b7f6 mov fp, sl                                            |     
    0x0003b7f8 b 0x3b822                                             |     
                                                                     |     while (sb != 0x2e) {
    0x0003b7fa blx 0xe110                                            |         r0 = fcn_0000e110 ();
    0x0003b7fe ldr r2, [r0]                                          |         r2 = *(r0);
    0x0003b800 ldrh.w r2, [r2, sb, lsl 1]                            |         offset_0 = sb << 1;
                                                                     |         r2 = *((r2 + offset_0));
    0x0003b804 lsls r0, r2, 0x14                                     |         r0 = r2 << 0x14;
                                                                     |         if (r0 >= r2) {
    0x0003b806 bpl.w 0x3b94c                                         |             goto label_10;
                                                                     |         }
    0x0003b80a mov r4, r6                                            |         r4 = r6;
    0x0003b80c cmp.w fp, 0                                           |         
                                                                     |         if (fp == 0) {
    0x0003b810 bne 0x3b816                                           |             
    0x0003b812 add.w sl, sl, 1                                       |             sl++;
                                                                     |         }
                                                                     | label_0:
    0x0003b816 ldrb sb, [r6], 1                                      |         sb = *(r6);
                                                                     |         r6++;
    0x0003b81a cmp.w sb, 0                                           |         
                                                                     |         if (sb == 0) {
    0x0003b81e beq.w 0x3b94c                                         |             goto label_10;
                                                                     |         }
    0x0003b822 cmp.w sb, 0x2e                                        |         
    0x0003b826 add.w r4, r6, -1                                      |         r4 = r6 + -1;
    0x0003b82a bne 0x3b7fa                                           |         
                                                                     |     }
    0x0003b82c cmp.w fp, 0                                           |     
                                                                     |     if (fp != 0) {
    0x0003b830 bne.w 0x3b94c                                         |         goto label_10;
                                                                     |     }
    0x0003b834 mov r4, r6                                            |     r4 = r6;
    0x0003b836 mov.w fp, 1                                           |     
    0x0003b83a b 0x3b816                                             |     goto label_0;
    0x0003b83c mov r1, r8                                            |     r1 = r8;
    0x0003b83e mov r0, r5                                            |     r0 = r5;
    0x0003b840 bl 0x3bc24                                            |     r0 = fcn_0003bc24 (r0, r1);
    0x0003b844 orrs.w r3, r0, r1                                     |     r3 = r0 | r1;
    0x0003b848 mov r4, r0                                            |     r4 = r0;
                                                                     |     if (r3 == r0) {
    0x0003b84a beq 0x3b7dc                                           |         goto label_1;
                                                                     |     }
                                                                     | label_2:
    0x0003b84c subs r5, r5, r7                                       |     r5 -= r7;
    0x0003b84e adds r0, r5, r4                                       |     r0 = r5 + r4;
    0x0003b850 adc.w r1, r1, r5, asr 31                              |     __asm ("adc.w r1, r1, r5, asr 31");
                                                                     | label_8:
    0x0003b854 add sp, 0xc                                           |     
    0x0003b856 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
    0x0003b85a ldr r1, [pc, 0x1f0]                                   |     
    0x0003b85c mov r3, r5                                            |     r3 = r5;
    0x0003b85e add r1, pc                                            |     r1 = 0x772b0;
    0x0003b860 b 0x3b86a                                             |     
                                                                     |     while (r2 == r4) {
    0x0003b862 ldrb r4, [r1, 1]!                                     |         r4 = *((r1 += 1));
    0x0003b866 cmp r4, 0                                             |         
                                                                     |         if (r4 == 0) {
    0x0003b868 beq 0x3b90c                                           |             goto label_11;
                                                                     |         }
    0x0003b86a ldrb r2, [r3], 1                                      |         r2 = *(r3);
                                                                     |         r3++;
    0x0003b86e cmp r2, r4                                            |         
    0x0003b870 beq 0x3b862                                           |         
                                                                     |     }
    0x0003b872 cmp.w r8, 0                                           |     
                                                                     |     if (r8 == 0) {
    0x0003b876 beq 0x3b7dc                                           |         goto label_1;
                                                                     |     }
    0x0003b878 ldr r2, [pc, 0x1d4]                                   |     
    0x0003b87a mov r3, r5                                            |     r3 = r5;
    0x0003b87c ldr r1, [pc, 0x1d4]                                   |     
    0x0003b87e ldr.w r0, [r8]                                        |     r0 = *(r8);
    0x0003b882 add r2, pc                                            |     r2 = 0x772d6;
    0x0003b884 add r1, pc                                            |     r1 = 0x772dc;
    0x0003b886 bl 0x44820                                            |     zbx_dsprintf ()
    0x0003b88a str.w r0, [r8]                                        |     __asm ("str.w r0, [r8]");
    0x0003b88e b 0x3b7dc                                             |     goto label_1;
    0x0003b890 ldr r1, [pc, 0x1c4]                                   |     
    0x0003b892 mov r3, r5                                            |     r3 = r5;
    0x0003b894 add r1, pc                                            |     r1 = 0x772f0;
    0x0003b896 b 0x3b89e                                             |     
                                                                     |     while (r2 == r4) {
    0x0003b898 ldrb r4, [r1, 1]!                                     |         r4 = *((r1 += 1));
                                                                     |         if (r4 == 0) {
    0x0003b89c cbz r4, 0x3b90c                                       |             goto label_11;
                                                                     |         }
    0x0003b89e ldrb r2, [r3], 1                                      |         r2 = *(r3);
                                                                     |         r3++;
    0x0003b8a2 cmp r2, r4                                            |         
    0x0003b8a4 beq 0x3b898                                           |         
                                                                     |     }
    0x0003b8a6 cmp.w r8, 0                                           |     
                                                                     |     if (r8 == 0) {
    0x0003b8aa beq 0x3b7dc                                           |         goto label_1;
                                                                     |     }
    0x0003b8ac ldr r2, [pc, 0x1ac]                                   |     
    0x0003b8ae mov r3, r5                                            |     r3 = r5;
    0x0003b8b0 ldr r1, [pc, 0x1ac]                                   |     
    0x0003b8b2 ldr.w r0, [r8]                                        |     r0 = *(r8);
    0x0003b8b6 add r2, pc                                            |     r2 = 0x77316;
    0x0003b8b8 add r1, pc                                            |     r1 = 0x7731c;
    0x0003b8ba bl 0x44820                                            |     zbx_dsprintf ()
    0x0003b8bc vtbx.8 d15, {d17}, d8                                 |     __asm ("vtbx.8 d15, {d17}, d8");
    0x0003b8c0 movs r0, r0                                           |     
    0x0003b8c2 b 0x3b7dc                                             |     goto label_1;
    0x0003b8c4 mov r1, r8                                            |     r1 = r8;
    0x0003b8c6 mov r0, r5                                            |     r0 = r5;
    0x0003b8c8 bl 0x3ba98                                            |     r0 = fcn_0003ba98 (r0, r1);
    0x0003b8cc orrs.w r3, r0, r1                                     |     r3 = r0 | r1;
    0x0003b8d0 mov r4, r0                                            |     r4 = r0;
                                                                     |     if (r3 != r0) {
    0x0003b8d2 bne 0x3b84c                                           |         goto label_2;
                                                                     |     }
    0x0003b8d4 b 0x3b7dc                                             |     goto label_1;
    0x0003b8d6 ldr r1, [pc, 0x18c]                                   |     
    0x0003b8d8 mov r3, r5                                            |     r3 = r5;
    0x0003b8da add r1, pc                                            |     r1 = 0x77344;
    0x0003b8dc b 0x3b8e4                                             |     
                                                                     |     while (r2 == r4) {
    0x0003b8de ldrb r4, [r1, 1]!                                     |         r4 = *((r1 += 1));
                                                                     |         if (r4 == 0) {
    0x0003b8e2 cbz r4, 0x3b90c                                       |             goto label_11;
                                                                     |         }
    0x0003b8e4 ldrb r2, [r3], 1                                      |         r2 = *(r3);
                                                                     |         r3++;
    0x0003b8e8 cmp r2, r4                                            |         
    0x0003b8ea beq 0x3b8de                                           |         
                                                                     |     }
    0x0003b8ec cmp.w r8, 0                                           |     
                                                                     |     if (r8 == 0) {
    0x0003b8f0 beq.w 0x3b7dc                                         |         goto label_1;
                                                                     |     }
    0x0003b8f4 ldr r2, [pc, 0x170]                                   |     
    0x0003b8f6 mov r3, r5                                            |     r3 = r5;
    0x0003b8f8 ldr r1, [pc, 0x170]                                   |     
    0x0003b8fa ldr.w r0, [r8]                                        |     r0 = *(r8);
    0x0003b8fe add r2, pc                                            |     r2 = 0x7736a;
    0x0003b900 add r1, pc                                            |     r1 = 0x77370;
    0x0003b902 bl 0x44820                                            |     zbx_dsprintf ()
    0x0003b906 str.w r0, [r8]                                        |     __asm ("str.w r0, [r8]");
    0x0003b90a b 0x3b7dc                                             |     goto label_1;
                                                                     | label_11:
    0x0003b90c subs r4, r3, r5                                       |     r4 = r3 - r5;
    0x0003b90e orrs.w r3, r4, r4, asr 31                             |     r3 = r4 | (r4 >> 31);
    0x0003b912 asr.w r1, r4, 0x1f                                    |     r1 = r4 >> 0x1f;
                                                                     |     if (r3 != r4) {
    0x0003b916 bne 0x3b84c                                           |         goto label_2;
                                                                     |     }
    0x0003b918 b 0x3b7dc                                             |     goto label_1;
                                                                     | label_3:
    0x0003b91a cmp.w r8, 0                                           |     
                                                                     |     if (r8 == 0) {
    0x0003b91e beq.w 0x3b7dc                                         |         goto label_1;
                                                                     |     }
    0x0003b922 ldr r3, [pc, 0x14c]                                   |     
    0x0003b924 movs r1, 0x2e                                         |     r1 = 0x2e;
    0x0003b926 ldr r0, [pc, 0x14c]                                   |     
    0x0003b928 ldr.w r2, [r8]                                        |     r2 = *(r8);
    0x0003b92c add r3, pc                                            |     r3 = 0x773a2;
    0x0003b92e add r0, pc                                            |     r0 = 0x773a8;
    0x0003b930 bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0003b934 str.w r0, [r8]                                        |     __asm ("str.w r0, [r8]");
    0x0003b938 b 0x3b7dc                                             |     goto label_1;
                                                                     | label_5:
    0x0003b93a mov r1, r8                                            |     r1 = r8;
    0x0003b93c mov r0, r5                                            |     r0 = r5;
    0x0003b93e bl 0x3b604                                            |     r0 = fcn_0003b604 (r0, r1);
    0x0003b942 orrs.w r3, r0, r1                                     |     r3 = r0 | r1;
    0x0003b946 mov r4, r0                                            |     r4 = r0;
                                                                     |     if (r3 != r0) {
    0x0003b948 bne 0x3b84c                                           |         goto label_2;
                                                                     |     }
    0x0003b94a b 0x3b7dc                                             |     goto label_1;
                                                                     | label_10:
    0x0003b94c cmp.w sl, 0                                           |     
                                                                     |     if (sl == 0) {
    0x0003b950 beq 0x3b9c0                                           |         goto label_9;
                                                                     |     }
    0x0003b952 ldr r3, [sp, 4]                                       |     r3 = var_4h;
    0x0003b954 cmp.w sl, 1                                           |     
    0x0003b958 sub.w r3, r3, 0x30                                    |     r3 -= 0x30;
    0x0003b95c clz r3, r3                                            |     r3 &= r3;
    0x0003b960 lsr.w r3, r3, 5                                       |     r3 >>= 5;
    0x0003b964 it le                                                 |     
                                                                     |     if (sl > 1) {
    0x0003b966 movle r3, 0                                           |         r3 = 0;
                                                                     |     }
    0x0003b968 cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x0003b96a bne 0x3b9e0                                           |         goto label_12;
                                                                     |     }
    0x0003b96c and r3, sb, 0xdf                                      |     r3 = sb & 0xdf;
    0x0003b970 cmp r3, 0x45                                          |     
                                                                     |     if (r3 != 0x45) {
    0x0003b972 bne 0x3b9b0                                           |         goto label_13;
                                                                     |     }
    0x0003b974 ldrb r6, [r4, 1]                                      |     r6 = *((r4 + 1));
    0x0003b976 cmp r6, 0                                             |     
                                                                     |     if (r6 == 0) {
    0x0003b978 beq 0x3ba00                                           |         goto label_14;
                                                                     |     }
    0x0003b97a sub.w r3, r6, 0x2b                                    |     r3 = r6 - 0x2b;
    0x0003b97e tst.w r3, 0xfd                                        |     
    0x0003b982 it ne                                                 |     
                                                                     |     if ((r3 & 0xfd) == 0) {
    0x0003b984 addne r4, 1                                           |         r4++;
                                                                     |     }
                                                                     |     if ((r3 & 0xfd) == 0) {
    0x0003b986 bne 0x3b990                                           |         
    0x0003b988 ldrb r6, [r4, 2]                                      |         r6 = *((r4 + 2));
    0x0003b98a cmp r6, 0                                             |         
                                                                     |         if (r6 == 0) {
    0x0003b98c beq 0x3ba00                                           |             goto label_14;
                                                                     |         }
    0x0003b98e adds r4, 2                                            |         r4 += 2;
                                                                     |     }
    0x0003b990 blx 0xe110                                            |     r0 = fcn_0000e110 ();
    0x0003b994 ldr r2, [r0]                                          |     r2 = *(r0);
    0x0003b996 ldrh.w r3, [r2, r6, lsl 1]                            |     offset_1 = r6 << 1;
                                                                     |     r3 = *((r2 + offset_1));
    0x0003b99a lsls r1, r3, 0x14                                     |     r1 = r3 << 0x14;
                                                                     |     if (r1 < r3) {
    0x0003b99c bmi 0x3b9a8                                           |         goto label_15;
                                                                     |     }
    0x0003b99e b 0x3ba20                                             |     goto label_16;
                                                                     |     do {
    0x0003b9a0 ldrh.w r3, [r2, r3, lsl 1]                            |         offset_2 = r3 << 1;
                                                                     |         r3 = *((r2 + offset_2));
    0x0003b9a4 lsls r3, r3, 0x14                                     |         r3 <<= 0x14;
                                                                     |         if (r3 >= r3) {
    0x0003b9a6 bpl 0x3b9b0                                           |             goto label_13;
                                                                     |         }
                                                                     | label_15:
    0x0003b9a8 ldrb r3, [r4, 1]!                                     |         r3 = *((r4 += 1));
    0x0003b9ac cmp r3, 0                                             |         
    0x0003b9ae bne 0x3b9a0                                           |         
                                                                     |     } while (r3 != 0);
                                                                     | label_13:
    0x0003b9b0 subs r4, r4, r5                                       |     r4 -= r5;
    0x0003b9b2 orrs.w r3, r4, r4, asr 31                             |     r3 = r4 | (r4 >> 31);
    0x0003b9b6 asr.w r1, r4, 0x1f                                    |     r1 = r4 >> 0x1f;
                                                                     |     if (r3 != r4) {
    0x0003b9ba bne.w 0x3b84c                                         |         goto label_2;
                                                                     |     }
    0x0003b9be b 0x3b7dc                                             |     goto label_1;
                                                                     | label_9:
    0x0003b9c0 cmp.w r8, 0                                           |     
                                                                     |     if (r8 == 0) {
    0x0003b9c4 beq.w 0x3b7dc                                         |         goto label_1;
                                                                     |     }
    0x0003b9c8 ldr r2, [pc, 0xac]                                    |     
    0x0003b9ca mov r3, r5                                            |     r3 = r5;
    0x0003b9cc ldr r1, [pc, 0xac]                                    |     
    0x0003b9ce ldr.w r0, [r8]                                        |     r0 = *(r8);
    0x0003b9d2 add r2, pc                                            |     r2 = 0x7744e;
    0x0003b9d4 add r1, pc                                            |     r1 = 0x77454;
    0x0003b9d6 bl 0x44820                                            |     zbx_dsprintf ()
    0x0003b9da str.w r0, [r8]                                        |     __asm ("str.w r0, [r8]");
    0x0003b9de b 0x3b7dc                                             |     goto label_1;
                                                                     | label_12:
    0x0003b9e0 cmp.w r8, 0                                           |     
                                                                     |     if (r8 == 0) {
    0x0003b9e4 beq.w 0x3b7dc                                         |         goto label_1;
                                                                     |     }
    0x0003b9e8 ldr r2, [pc, 0x94]                                    |     
    0x0003b9ea mov r3, r5                                            |     r3 = r5;
    0x0003b9ec ldr r1, [pc, 0x94]                                    |     
    0x0003b9ee ldr.w r0, [r8]                                        |     r0 = *(r8);
    0x0003b9f2 add r2, pc                                            |     r2 = 0x77476;
    0x0003b9f4 add r1, pc                                            |     r1 = 0x7747c;
    0x0003b9f6 bl 0x44820                                            |     zbx_dsprintf ()
    0x0003b9fa str.w r0, [r8]                                        |     __asm ("str.w r0, [r8]");
    0x0003b9fe b 0x3b7dc                                             |     goto label_1;
                                                                     | label_14:
    0x0003ba00 cmp.w r8, 0                                           |     
                                                                     |     if (r8 == 0) {
    0x0003ba04 beq.w 0x3b7dc                                         |         goto label_1;
                                                                     |     }
    0x0003ba08 ldr r3, [pc, 0x7c]                                    |     
    0x0003ba0a movs r1, 0x2e                                         |     r1 = 0x2e;
    0x0003ba0c ldr r0, [pc, 0x7c]                                    |     
    0x0003ba0e ldr.w r2, [r8]                                        |     r2 = *(r8);
    0x0003ba12 add r3, pc                                            |     r3 = 0x7749e;
    0x0003ba14 add r0, pc                                            |     r0 = 0x774a4;
    0x0003ba16 bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0003ba1a str.w r0, [r8]                                        |     __asm ("str.w r0, [r8]");
    0x0003ba1e b 0x3b7dc                                             |     goto label_1;
                                                                     | label_16:
    0x0003ba20 cmp.w r8, 0                                           |     
                                                                     |     if (r8 == 0) {
    0x0003ba24 beq.w 0x3b7dc                                         |         goto label_1;
                                                                     |     }
    0x0003ba28 ldr r2, [pc, 0x64]                                    |     
    0x0003ba2a mov r3, r4                                            |     r3 = r4;
    0x0003ba2c ldr r1, [pc, 0x64]                                    |     
    0x0003ba2e ldr.w r0, [r8]                                        |     r0 = *(r8);
    0x0003ba32 add r2, pc                                            |     r2 = 0x774c6;
    0x0003ba34 add r1, pc                                            |     r1 = 0x774cc;
    0x0003ba36 bl 0x44820                                            |     zbx_dsprintf ()
    0x0003ba3a str.w r0, [r8]                                        |     __asm ("str.w r0, [r8]");
    0x0003ba3e b 0x3b7dc                                             |     goto label_1;
                                                                     | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x130d8 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.load_user_parameters ()                      | void load_user_parameters (int16_t arg_804h_2, int16_t arg_804h, int16_t arg1, int16_t arg2) {
                                                             |     int16_t var_4h_2;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x000130d8 ldr r2, [pc, 0xb0]                            |     
    0x000130da ldr r3, [pc, 0xb4]                            |     r3 = *(0x13192);
    0x000130dc push.w {r4, r5, r6, r7, r8, sb, sl, lr}       |     
    0x000130e0 subw sp, sp, 0x808                            |     __asm ("subw sp, sp, 0x808");
    0x000130e4 add r2, pc                                    |     r2 = 0x26274;
    0x000130e6 ldr r6, [r0]                                  |     r6 = *(r0);
    0x000130e8 ldr r3, [r2, r3]                              |     
    0x000130ea ldr r3, [r3]                                  |     r3 = *(0x26274);
    0x000130ec str.w r3, [sp, 0x804]                         |     __asm ("str.w r3, [arg_804h_2]");
    0x000130f0 mov.w r3, 0                                   |     r3 = 0;
    0x000130f4 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x000130f6 beq 0x1316c                                   |         goto label_1;
                                                             |     }
    0x000130f8 mov r5, r0                                    |     r5 = r0;
    0x000130fa mov sl, r1                                    |     sl = r1;
    0x000130fc mov.w sb, 0x2c                                |     sb = 0x2c;
    0x00013100 mov.w r8, 0                                   |     r8 = 0;
    0x00013104 add r7, sp, 4                                 |     r7 += var_4h_2;
    0x00013106 b 0x13128                                     |     
                                                             |     while (r0 != 0) {
    0x00013108 mov r1, r0                                    |         r1 = r0;
    0x0001310a mov.w r3, 0x800                               |         r3 = 0x800;
    0x0001310e strb r8, [r1], 1                              |         *(r1) = r8;
                                                             |         r1++;
    0x00013112 mov r2, r7                                    |         r2 = r7;
    0x00013114 ldr r0, [r5]                                  |         r0 = *(r5);
    0x00013116 bl 0x1c4ac                                    |         add_user_parameter ();
    0x0001311a adds r0, 1                                    |         r0++;
                                                             |         if (r0 == 1) {
    0x0001311c beq 0x13170                                   |             goto label_2;
                                                             |         }
    0x0001311e strb.w sb, [r4]                               |         *(r4) = sb;
    0x00013122 ldr r6, [r5, 4]!                              |         r6 = *((r5 += 4));
                                                             |         if (r6 == 0) {
    0x00013126 cbz r6, 0x1316c                               |             goto label_1;
                                                             |         }
    0x00013128 movs r1, 0x2c                                 |         r1 = 0x2c;
    0x0001312a mov r0, r6                                    |         r0 = r6;
    0x0001312c blx 0xdcd4                                    |         r0 = fcn_0000dcd4 ();
    0x00013130 mov r4, r0                                    |         r4 = r0;
    0x00013132 cmp r0, 0                                     |         
    0x00013134 bne 0x13108                                   |         
                                                             |     }
    0x00013136 ldr r1, [pc, 0x5c]                            |     
    0x00013138 mov r2, r6                                    |     r2 = r6;
    0x0001313a ldr.w r0, [sl]                                |     r0 = *(sl);
    0x0001313e add r1, pc                                    |     r1 = 0x262d8;
    0x00013140 bl 0x44820                                    |     r0 = zbx_dsprintf ()
    0x00013144 mov r3, r0                                    |     r3 = r0;
                                                             | label_0:
    0x00013146 mov.w r0, -1                                  |     r0 = -1;
    0x0001314a str.w r3, [sl]                                |     __asm ("str.w r3, [sl]");
                                                             |     do {
    0x0001314e ldr r2, [pc, 0x48]                            |         
    0x00013150 ldr r3, [pc, 0x3c]                            |         r3 = *(0x13190);
    0x00013152 add r2, pc                                    |         r2 = 0x262f0;
    0x00013154 ldr r3, [r2, r3]                              |         r3 = *(0x262f0);
    0x00013156 ldr r2, [r3]                                  |         r2 = *(0x262f0);
    0x00013158 ldr.w r3, [sp, 0x804]                         |         r3 = *(arg_804h);
    0x0001315c eors r2, r3                                   |         r2 ^= r3;
    0x0001315e mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x00013162 bne 0x13188                                   |             goto label_3;
                                                             |         }
    0x00013164 addw sp, sp, 0x808                            |         __asm ("addw sp, sp, 0x808");
    0x00013168 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |         
                                                             | label_1:
    0x0001316c movs r0, 0                                    |         r0 = 0;
    0x0001316e b 0x1314e                                     |         
                                                             |     } while (1);
                                                             | label_2:
    0x00013170 ldr r1, [pc, 0x28]                            |     
    0x00013172 movs r2, 0x2c                                 |     r2 = 0x2c;
    0x00013174 strb r2, [r4]                                 |     *(r4) = r2;
    0x00013176 mov r3, r7                                    |     r3 = r7;
    0x00013178 ldr r2, [r5]                                  |     r2 = *(r5);
    0x0001317a ldr.w r0, [sl]                                |     r0 = *(sl);
    0x0001317e add r1, pc                                    |     r1 = 0x2631e;
    0x00013180 bl 0x44820                                    |     r0 = zbx_dsprintf ()
    0x00013184 mov r3, r0                                    |     r3 = r0;
    0x00013186 b 0x13146                                     |     goto label_0;
                                                             | label_3:
    0x00013188 blx 0xe158                                    |     fcn_0000e158 ();
    0x0001318c ldrh r4, [r6, 0x16]                           |     r4 = *((r6 + 0x16));
    0x0001318e movs r4, r0                                   |     r4 = r0;
    0x00013190 lsls r4, r2, 0xe                              |     r4 = r2 << 0xe;
    0x00013192 movs r0, r0                                   |     
    0x00013194 invalid                                       |     
                                                             | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x16ba4 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.process_log_check ()                     | void process_log_check (int16_t arg_0h_2, int16_t arg_8h_2, int16_t arg_ch, int16_t arg_10h, int16_t arg_18h, int16_t arg_1ch, int16_t arg_1dh_2, int16_t arg_20h, int16_t arg_2ch, int16_t arg_bp_48h, int16_t arg_0h, int16_t arg_8h, int16_t arg_1dh, int16_t arg_bp_40h, int16_t arg_30h, int16_t arg_38h, int16_t arg_3ch, int16_t arg_40h, int16_t arg_44h, int16_t arg_48h, int16_t arg_4ch, int16_t arg_50h, int16_t arg_58h, int16_t arg_5ch, int16_t arg_60h, int16_t arg_68h, int16_t arg_6ch, int16_t arg_70h, int16_t arg_74h, int16_t arg_78h, int16_t arg_7ch, int16_t arg_80h, int16_t arg_84h, int16_t arg_9ch, int16_t arg_b0h, int16_t arg_b4h, int16_t arg_b8h, int16_t arg_c0h, int16_t arg_c4h, int16_t arg_c8h, int16_t arg_cch, int16_t arg_d0h, int16_t arg_d8h, int16_t arg_e0h, int16_t arg_e4h, int16_t arg_ech, int16_t arg_100h, int16_t arg_104h, int16_t arg_108h, int16_t arg_114h, int16_t arg_118h, int16_t arg_11ch, int16_t arg_124h, int16_t arg_128h, int16_t arg_12ch, int16_t arg_130h, int16_t arg_134h, int16_t arg_138h, int16_t arg_13ch, int16_t arg_140h, int16_t arg_144h, int16_t arg_148h, int16_t arg_14ch, int16_t arg_150h, int16_t arg_158h, int16_t arg_178h, int16_t arg_264h, int16_t arg_a64h, int16_t arg_ac0h, int16_t arg_ac4h, int16_t arg_ac8h, int16_t arg_acch, int16_t arg_ad0h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                         |     int16_t var_0h;
                                                         |     int16_t var_4h;
                                                         |     int16_t var_10h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
                                                         |     r3 = arg4;
    0x00016ba4 svcmi 0xf0e92d                            |     __asm ("svcmi 0xf0e92d");
    0x00016ba8 mov fp, r3                                |     
    0x00016baa vpush {d8, d9, d10, d11, d12, d13}        |     __asm ("vpush {d8, d9, d10, d11, d12, d13}");
    0x00016bae subw sp, sp, 0xa6c                        |     __asm ("subw sp, sp, 0xa6c");
    0x00016bb2 ldr.w r3, [sp, 0xac0]                     |     r3 = *(arg_ac0h);
    0x00016bb6 str r2, [sp, 0x68]                        |     *(arg_68h) = r2;
    0x00016bb8 ldr r2, [pc, 0x2e8]                       |     
    0x00016bba str r3, [sp, 0xc4]                        |     *(arg_c4h) = r3;
    0x00016bbc ldr r3, [pc, 0x2e8]                       |     r3 = *(0x16ea8);
    0x00016bbe add r2, pc                                |     r2 = 0x2da66;
    0x00016bc0 str r0, [sp, 0xb0]                        |     *(arg_b0h) = r0;
    0x00016bc2 str r1, [sp, 0xc0]                        |     *(arg_c0h) = r1;
    0x00016bc4 ldr r3, [r2, r3]                          |     
    0x00016bc6 add r2, sp, 0x130                         |     r2 += arg_130h;
    0x00016bc8 ldrb.w r5, [fp, 0x1d]                     |     r5 = *(arg_1dh);
    0x00016bcc ldr r3, [r3]                              |     r3 = *(0x2da66);
    0x00016bce str.w r3, [sp, 0xa64]                     |     __asm ("str.w r3, [arg_a64h]");
    0x00016bd2 mov.w r3, 0                               |     r3 = 0;
    0x00016bd6 add r3, sp, 0x158                         |     r3 += arg_158h;
    0x00016bd8 mov r4, r3                                |     r4 = r3;
    0x00016bda str r3, [sp, 0x48]                        |     *(arg_48h) = r3;
    0x00016bdc movs r3, 0                                |     r3 = 0;
    0x00016bde ubfx sl, r5, 5, 1                         |     sl = (r5 >> 5) & ((1 << 1) - 1);
    0x00016be2 str r3, [sp, 0x130]                       |     *(arg_130h) = r3;
    0x00016be4 mov r0, r4                                |     r0 = r4;
    0x00016be6 str r3, [sp, 0x134]                       |     *(arg_134h) = r3;
    0x00016be8 ldr.w r3, [sp, 0xac4]                     |     r3 = *(arg_ac4h);
    0x00016bec str r2, [sp, 0xe0]                        |     *(arg_e0h) = r2;
    0x00016bee add r2, sp, 0x134                         |     r2 += arg_134h;
    0x00016bf0 str r2, [sp, 0xe4]                        |     *(arg_e4h) = r2;
    0x00016bf2 str r3, [sp, 0xc8]                        |     *(arg_c8h) = r3;
    0x00016bf4 ldr.w r3, [sp, 0xac8]                     |     r3 = *(arg_ac8h);
    0x00016bf8 str r3, [sp, 0xcc]                        |     *(arg_cch) = r3;
    0x00016bfa ldr.w r3, [sp, 0xacc]                     |     r3 = *(arg_acch);
    0x00016bfe str r3, [sp, 0x7c]                        |     *(arg_7ch) = r3;
    0x00016c00 ldr.w r3, [sp, 0xad0]                     |     r3 = *(arg_ad0h);
    0x00016c04 str r3, [sp, 0x60]                        |     *(arg_60h) = r3;
    0x00016c06 and r3, r5, 0x20                          |     r3 = r5 & 0x20;
    0x00016c0a ldr r5, [pc, 0x2a0]                       |     
    0x00016c0c str r3, [sp, 0x74]                        |     *(arg_74h) = r3;
    0x00016c0e bl 0x1c350                                |     init_request ();
    0x00016c12 ldr.w r0, [fp]                            |     r0 = *(fp);
    0x00016c16 mov r1, r4                                |     r1 = r4;
    0x00016c18 bl 0x1c384                                |     parse_item_key ();
    0x00016c1c add r5, pc                                |     r5 = 0x2dace;
    0x00016c1e cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x00016c20 bne.w 0x18db4                             |         goto label_59;
                                                         |     }
    0x00016c24 ldr r3, [sp, 0x48]                        |     r3 = *(arg_48h);
    0x00016c26 ldrb.w r1, [fp, 0x1d]                     |     r1 = *(arg_1dh_2);
    0x00016c2a ldr r4, [r3, 4]                           |     r4 = *((r3 + 4));
    0x00016c2c cmp r4, 0                                 |     
                                                         |     if (r4 == 0) {
    0x00016c2e beq.w 0x19116                             |         goto label_60;
                                                         |     }
    0x00016c32 tst.w r1, 0x20                            |     
    0x00016c36 ite eq                                    |     
                                                         |     if ((r1 & 0x20) != 0) {
    0x00016c38 moveq r3, 9                               |         r3 = 9;
                                                         |     }
                                                         |     if ((r1 & 0x20) == 0) {
    0x00016c3a movne r3, 8                               |         r3 = 8;
                                                         |     }
    0x00016c3c cmp r4, r3                                |     
                                                         |     if (r4 > r3) {
    0x00016c3e bgt.w 0x19130                             |         goto label_61;
                                                         |     }
    0x00016c42 cmp r4, 0                                 |     
                                                         |     if (r4 <= 0) {
    0x00016c44 ble.w 0x18aa6                             |         goto label_62;
                                                         |     }
    0x00016c48 ldr r3, [sp, 0x48]                        |     r3 = *(arg_48h);
    0x00016c4a ldr r3, [r3, 8]                           |     r3 = *((r3 + 8));
    0x00016c4c ldr r6, [r3]                              |     r6 = *(r3);
    0x00016c4e cmp r6, 0                                 |     
                                                         |     if (r6 == 0) {
    0x00016c50 beq.w 0x18aa6                             |         goto label_62;
                                                         |     }
    0x00016c54 ldrb r2, [r6]                             |     r2 = *(r6);
    0x00016c56 cmp r2, 0                                 |     
                                                         |     if (r2 == 0) {
    0x00016c58 beq.w 0x18aa6                             |         goto label_62;
                                                         |     }
    0x00016c5c cmp r4, 1                                 |     
                                                         |     if (r4 == 1) {
    0x00016c5e beq.w 0x16dc8                             |         goto label_63;
                                                         |     }
    0x00016c62 ldr r3, [r3, 4]                           |     r3 = *((r3 + 4));
    0x00016c64 str r3, [sp, 0x64]                        |     *(arg_bp_40h) = r3;
    0x00016c66 cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x00016c68 beq.w 0x16e1c                             |         goto label_64;
                                                         |     }
    0x00016c6c ldrb r3, [r3]                             |     r3 = *(r3);
    0x00016c6e cmp r3, 0x40                              |     
                                                         |     if (r3 == 0x40) {
    0x00016c70 beq.w 0x17230                             |         goto label_65;
                                                         |     }
                                                         | label_11:
    0x00016c74 cmp r4, 2                                 |     
                                                         |     if (r4 <= 2) {
    0x00016c76 ble.w 0x16e28                             |         goto label_66;
                                                         |     }
                                                         | label_2:
    0x00016c7a ldr r7, [sp, 0x48]                        |     r7 = *(arg_48h);
    0x00016c7c ldr r3, [r7, 8]                           |     r3 = *((r7 + 8));
    0x00016c7e ldr r3, [r3, 8]                           |     r3 = *((r3 + 8));
    0x00016c80 str r3, [sp, 0x9c]                        |     *(arg_9ch) = r3;
    0x00016c82 cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x00016c84 beq.w 0x16e14                             |         goto label_67;
                                                         |     }
    0x00016c88 ldr r0, [pc, 0x224]                       |     
    0x00016c8a movs r2, 0                                |     r2 = 0;
    0x00016c8c movw r1, 0xf31                            |     r1 = 0xf31;
    0x00016c90 add r0, pc                                |     r0 = 0x2db44;
    0x00016c92 bl 0x40ed8                                |     r0 = zbx_strdup2 ();
    0x00016c96 mov r4, r0                                |     r4 = r0;
    0x00016c98 str r0, [sp, 0x44]                        |     *(arg_44h) = r0;
    0x00016c9a bl 0x4585c                                |     zbx_strupper ();
    0x00016c9e str r4, [sp, 0x9c]                        |     *(arg_9ch) = r4;
    0x00016ca0 ldr r4, [r7, 4]                           |     r4 = *((r7 + 4));
                                                         | label_1:
    0x00016ca2 cmp r4, 3                                 |     
                                                         |     if (r4 <= 3) {
    0x00016ca4 ble.w 0x16e32                             |         goto label_68;
                                                         |     }
    0x00016ca8 ldr r3, [sp, 0x48]                        |     r3 = *(arg_48h);
    0x00016caa ldr r3, [r3, 8]                           |     r3 = *((r3 + 8));
    0x00016cac ldr r0, [r3, 0xc]                         |     r0 = *((r3 + 0xc));
    0x00016cae cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x00016cb0 beq.w 0x16dfa                             |         goto label_69;
                                                         |     }
    0x00016cb4 ldrb r3, [r0]                             |     r3 = *(r0);
    0x00016cb6 cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x00016cb8 beq.w 0x16dfa                             |         goto label_69;
                                                         |     }
    0x00016cbc movs r2, 0xa                              |     r2 = 0xa;
    0x00016cbe movs r1, 0                                |     r1 = 0;
    0x00016cc0 blx 0xdfe8                                |     r0 = waitpid ();
    0x00016cc4 subs.w r8, r0, 0                          |     r8 = r0 - 0;
                                                         |     if (r8 <= r0) {
    0x00016cc8 ble.w 0x19076                             |         goto label_70;
                                                         |     }
    0x00016ccc ldr r2, [sp, 0x74]                        |     r2 = *(arg_74h);
    0x00016cce cmp.w r8, 0x3e8                           |     
    0x00016cd2 ite le                                    |     
                                                         |     if (r8 > 0x3e8) {
    0x00016cd4 movle r3, 0                               |         r3 = 0;
                                                         |     }
                                                         |     if (r8 <= 0x3e8) {
    0x00016cd6 movgt r3, 1                               |         r3 = 1;
                                                         |     }
    0x00016cd8 cmp r2, 0                                 |     
    0x00016cda it ne                                     |     
                                                         |     if (r2 == 0) {
    0x00016cdc movne r3, 0                               |         r3 = 0;
                                                         |     }
    0x00016cde cmp r3, 0                                 |     
                                                         |     if (r3 != 0) {
    0x00016ce0 bne.w 0x19076                             |         goto label_70;
                                                         |     }
    0x00016ce4 movw r2, 0x2710                           |     r2 = 0x2710;
    0x00016ce8 cmp r8, r2                                |     
    0x00016cea ite le                                    |     
                                                         |     if (r8 > r2) {
    0x00016cec movle r3, 0                               |         r3 = 0;
                                                         |     }
                                                         |     if (r8 <= r2) {
    0x00016cee andgt r3, sl, 1                           |         r3 = sl & 1;
                                                         |     }
    0x00016cf2 cmp r3, 0                                 |     
                                                         |     if (r3 != 0) {
    0x00016cf4 bne.w 0x19076                             |         goto label_70;
                                                         |     }
    0x00016cf8 ldr r3, [sp, 0x48]                        |     r3 = *(arg_48h);
    0x00016cfa ldr r4, [r3, 4]                           |     r4 = *((r3 + 4));
                                                         | label_0:
    0x00016cfc cmp r4, 4                                 |     
                                                         |     if (r4 <= 4) {
    0x00016cfe ble.w 0x16e42                             |         goto label_15;
                                                         |     }
    0x00016d02 ldr r3, [sp, 0x48]                        |     r3 = *(arg_48h);
    0x00016d04 ldr r7, [r3, 8]                           |     r7 = *((r3 + 8));
    0x00016d06 ldr.w sb, [r7, 0x10]                      |     sb = *((r7 + 0x10));
    0x00016d0a cmp.w sb, 0                               |     
    0x00016d0c lsrs r0, r0, 0x1c                         |     r0 >>= 0x1c;
                                                         |     if (r0 != r0) {
    0x00016d0e beq 0x16d1a                               |         
    0x00016d10 ldrb.w r3, [sb]                           |         r3 = *(sb);
    0x00016d14 cmp r3, 0                                 |         
                                                         |         if (r3 != 0) {
    0x00016d16 bne.w 0x16e62                             |             goto label_71;
                                                         |         }
                                                         |     }
                                                         | label_5:
    0x00016d1a movs r3, 0                                |     r3 = 0;
    0x00016d1c strb.w r3, [fp, 0x1c]                     |     *(arg_1ch) = r3;
                                                         | label_6:
    0x00016d20 ldr r3, [sp, 0x74]                        |     r3 = *(arg_74h);
    0x00016d22 cmp r3, 0                                 |     
                                                         |     if (r3 != 0) {
    0x00016d24 bne.w 0x16e56                             |         goto label_72;
                                                         |     }
    0x00016d28 cmp r4, 5                                 |     
                                                         |     if (r4 == 5) {
    0x00016d2a beq.w 0x186fe                             |         goto label_73;
                                                         |     }
    0x00016d2e ldr r3, [r7, 0x14]                        |     r3 = *((r7 + 0x14));
    0x00016d30 mov.w sb, 6                               |     sb = 6;
    0x00016d34 str r3, [sp, 0x100]                       |     *(arg_100h) = r3;
    0x00016d36 cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x00016d38 beq.w 0x18200                             |         goto label_74;
                                                         |     }
                                                         | label_4:
    0x00016d3c cmp sb, r4                                |     
                                                         |     if (sb >= r4) {
    0x00016d3e bge.w 0x1937a                             |         goto label_75;
                                                         |     }
    0x00016d42 ldr.w r0, [r7, sb, lsl 2]                 |     offset_0 = sb << 2;
                                                         |     r0 = *((r7 + offset_0));
                                                         |     if (r0 != 0) {
    0x00016d46 cbz r0, 0x16d50                           |         
    0x00016d48 ldrb r3, [r0]                             |         r3 = *(r0);
    0x00016d4a cmp r3, 0                                 |         
                                                         |         if (r3 != 0) {
    0x00016d4c bne.w 0x171d0                             |             goto label_76;
                                                         |         }
                                                         |     }
    0x00016d50 vldr s20, [pc, 0x14c]                     |     __asm ("vldr s20, [0x00016ea4]");
    0x00016d54 ldrb.w r1, [fp, 0x1d]                     |     r1 = *(arg_1dh_2);
                                                         |     do {
                                                         | label_8:
    0x00016d58 tst.w r1, 0x20                            |         
    0x00016d5c mov r3, r1                                |         r3 = r1;
    0x00016d5e ite eq                                    |         
                                                         |         if ((r1 & 0x20) != 0) {
    0x00016d60 moveq r3, 7                               |             r3 = 7;
                                                         |         }
                                                         |         if ((r1 & 0x20) == 0) {
    0x00016d62 movne r3, 6                               |             r3 = 6;
                                                         |         }
    0x00016d64 cmp r3, r4                                |         
    0x00016d66 and r2, r1, 8                             |         r2 = r1 & 8;
    0x00016d6a str r1, [sp, 0xd0]                        |         *(arg_d0h) = r1;
                                                         |         if (r3 >= r4) {
    0x00016d6c bge.w 0x16ee8                             |             goto label_77;
                                                         |         }
    0x00016d70 ldr r1, [sp, 0x48]                        |         r1 = *(arg_48h);
    0x00016d72 ldr.w sb, [r1, 8]                         |         sb = *((r1 + 8));
    0x00016d76 ldr.w r7, [sb, r3, lsl 2]                 |         offset_1 = r3 << 2;
                                                         |         r7 = *((sb + offset_1));
    0x00016d7a cmp r7, 0                                 |         
                                                         |         if (r7 == 0) {
    0x00016d7c beq.w 0x16ee8                             |             goto label_77;
                                                         |         }
    0x00016d80 ldrb r1, [r7]                             |         r1 = *(r7);
    0x00016d82 cmp r1, 0                                 |         
                                                         |         if (r1 == 0) {
    0x00016d84 beq.w 0x16ee8                             |             goto label_77;
                                                         |         }
    0x00016d88 cmp r2, 0                                 |         
                                                         |         if (r2 == 0) {
    0x00016d8a beq.w 0x171fe                             |             goto label_78;
                                                         |         }
    0x00016d8e ldr r1, [pc, 0x124]                       |         
    0x00016d90 mov r0, r7                                |         r0 = r7;
    0x00016d92 add r1, pc                                |         r1 = 0x2dc4c;
    0x00016d94 blx 0xe3b0                                |         r0 = fcn_0000e3b0 ();
    0x00016d98 cmp r0, 0                                 |         
                                                         |         if (r0 != 0) {
    0x00016d9a bne.w 0x18cb0                             |             goto label_79;
                                                         |         }
    0x00016d9e ldr r3, [sp, 0xb0]                        |         r3 = *(arg_b0h);
    0x00016da0 cmp r3, 0                                 |         
                                                         |         if (r3 == 0) {
    0x00016da2 beq.w 0x16f8a                             |             goto label_80;
                                                         |         }
    0x00016da6 ldr r3, [sp, 0xb0]                        |         r3 = *(arg_b0h);
    0x00016da8 rsb.w sl, sl, 8                           |         sl = 8 - sl;
    0x00016dac ldr.w r2, [fp]                            |         r2 = *(fp);
    0x00016db0 cmp r4, sl                                |         
    0x00016db2 ldr r3, [r3]                              |         r3 = *(r3);
    0x00016db4 str r2, [sp, 0x2c]                        |         *(arg_8h) = r2;
    0x00016db6 ldr r3, [r3]                              |         r3 = *(r3);
    0x00016db8 ldr r1, [r3]                              |         r1 = *(r3);
    0x00016dba ldrh r7, [r3, 4]                          |         r7 = *((r3 + 4));
    0x00016dbc itt gt                                    |         
                                                         |         if (r4 <= sl) {
    0x00016dbe movgt r3, 1                               |             r3 = 1;
                                                         |         }
                                                         |         if (r4 <= sl) {
    0x00016dc0 strgt r3, [sp, 0xec]                      |             *(arg_ech) = r3;
                                                         |         }
                                                         |         if (r4 > sl) {
    0x00016dc2 bgt.w 0x16f18                             |             goto label_81;
                                                         |         }
    0x00016dc6 b 0x16f8a                                 |         goto label_80;
                                                         | label_63:
    0x00016dc8 ldr r3, [pc, 0xec]                        |         r3 = *(0x16eb8);
    0x00016dca ldr r3, [r5, r3]                          |         r3 = *((r5 + r3));
    0x00016dcc ldr.w r8, [r3]                            |         r8 = *(0x16eb8);
    0x00016dd0 ldr r3, [sp, 0x74]                        |         r3 = *(arg_74h);
    0x00016dd2 cmp r3, 0                                 |         
                                                         |         if (r3 == 0) {
    0x00016dd4 beq 0x16e48                               |             goto label_82;
                                                         |         }
    0x00016dd6 add.w r8, r8, r8, lsl 2                   |         r8 += (r8 << 2);
    0x00016dda ldr r3, [pc, 0xe0]                        |         
    0x00016ddc str r0, [sp, 0x9c]                        |         *(arg_9ch) = r0;
    0x00016dde lsl.w r8, r8, 1                           |         r8 <<= 1;
    0x00016de2 add r3, pc                                |         r3 = 0x2dca4;
    0x00016de4 str r3, [sp, 0x64]                        |         *(arg_bp_40h) = r3;
    0x00016de6 str r3, [sp, 0x44]                        |         *(arg_44h) = r3;
                                                         | label_3:
    0x00016de8 movs r3, 0                                |         r3 = 0;
    0x00016dea strb.w r3, [fp, 0x1c]                     |         *(arg_1ch) = r3;
                                                         | label_19:
    0x00016dee ldr r3, [pc, 0xd0]                        |         
    0x00016df0 add r3, pc                                |         r3 = 0x2dcb6;
    0x00016df2 str r3, [sp, 0x100]                       |         *(arg_100h) = r3;
                                                         | label_48:
    0x00016df4 vldr s20, [pc, 0xa8]                      |         __asm ("vldr s20, [0x00016ea4]");
    0x00016df8 b 0x16d58                                 |         
                                                         |     } while (1);
                                                         | label_69:
    0x00016dfa ldr r3, [pc, 0xbc]                        |     r3 = *(0x16eba);
    0x00016dfc ldr r3, [r5, r3]                          |     r3 = *((r5 + r3));
    0x00016dfe ldr.w r8, [r3]                            |     r8 = *(0x16eba);
    0x00016e02 ldr r3, [sp, 0x74]                        |     r3 = *(arg_74h);
    0x00016e04 cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x00016e06 beq.w 0x16cfc                             |         goto label_0;
                                                         |     }
    0x00016e0a add.w r8, r8, r8, lsl 2                   |     r8 += (r8 << 2);
    0x00016e0e lsl.w r8, r8, 1                           |     r8 <<= 1;
    0x00016e12 b 0x16cfc                                 |     goto label_0;
                                                         | label_67:
    0x00016e14 ldr r3, [pc, 0xac]                        |     
    0x00016e16 add r3, pc                                |     r3 = 0x2dcde;
    0x00016e18 str r3, [sp, 0x44]                        |     *(arg_44h) = r3;
    0x00016e1a b 0x16ca2                                 |     goto label_1;
                                                         | label_64:
    0x00016e1c ldr r3, [pc, 0xa8]                        |     
    0x00016e1e cmp r4, 2                                 |     
    0x00016e20 add r3, pc                                |     r3 = 0x2dcec;
    0x00016e22 str r3, [sp, 0x64]                        |     *(arg_bp_40h) = r3;
                                                         |     if (r4 > 2) {
    0x00016e24 bgt.w 0x16c7a                             |         goto label_2;
                                                         |     }
                                                         | label_66:
    0x00016e28 ldr r3, [pc, 0xa0]                        |     
    0x00016e2a add r3, pc                                |     r3 = 0x2dcfa;
    0x00016e2c str r3, [sp, 0x44]                        |     *(arg_44h) = r3;
    0x00016e2e movs r3, 0                                |     r3 = 0;
    0x00016e30 str r3, [sp, 0x9c]                        |     *(arg_9ch) = r3;
                                                         | label_68:
    0x00016e32 ldr r3, [pc, 0x84]                        |     r3 = *(0x16eba);
    0x00016e34 ldr r3, [r5, r3]                          |     r3 = *((r5 + r3));
    0x00016e36 ldr.w r8, [r3]                            |     r8 = *(0x16eba);
    0x00016e3a ldr r3, [sp, 0x74]                        |     r3 = *(arg_74h);
    0x00016e3c cmp r3, 0                                 |     
                                                         |     if (r3 != 0) {
    0x00016e3e bne.w 0x17382                             |         goto label_83;
                                                         |     }
                                                         | label_15:
    0x00016e42 ldrb.w r1, [fp, 0x1d]                     |     r1 = *(arg_1dh_2);
    0x00016e46 b 0x16de8                                 |     goto label_3;
                                                         | label_82:
    0x00016e48 ldr r3, [pc, 0x84]                        |     
    0x00016e4a ldr r2, [sp, 0x74]                        |     r2 = *(arg_74h);
    0x00016e4c add r3, pc                                |     r3 = 0x2dd20;
    0x00016e4e str r3, [sp, 0x64]                        |     *(arg_bp_40h) = r3;
    0x00016e50 str r2, [sp, 0x9c]                        |     *(arg_9ch) = r2;
    0x00016e52 str r3, [sp, 0x44]                        |     *(arg_44h) = r3;
    0x00016e54 b 0x16de8                                 |     goto label_3;
                                                         | label_72:
    0x00016e56 ldr r3, [pc, 0x7c]                        |     
    0x00016e58 mov.w sb, 5                               |     sb = 5;
    0x00016e5c add r3, pc                                |     r3 = 0x2dd36;
    0x00016e5e str r3, [sp, 0x100]                       |     *(arg_100h) = r3;
    0x00016e60 b 0x16d3c                                 |     goto label_4;
                                                         | label_71:
    0x00016e62 ldr r1, [pc, 0x74]                        |     
    0x00016e64 mov r0, sb                                |     r0 = sb;
    0x00016e66 add r1, pc                                |     r1 = 0x2dd44;
    0x00016e68 blx 0xe3b0                                |     r0 = fcn_0000e3b0 ();
    0x00016e6c cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x00016e6e beq.w 0x16d1a                             |         goto label_5;
                                                         |     }
    0x00016e72 ldr r1, [pc, 0x68]                        |     
    0x00016e74 mov r0, sb                                |     r0 = sb;
    0x00016e76 add r1, pc                                |     r1 = 0x2dd58;
    0x00016e78 blx 0xe3b0                                |     r0 = fcn_0000e3b0 ();
    0x00016e7c cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x00016e7e beq.w 0x16d20                             |         goto label_6;
                                                         |     }
    0x00016e82 ldr r4, [sp, 0x7c]                        |     r4 = *(arg_7ch);
    0x00016e84 movw r1, 0xf42                            |     r1 = 0xf42;
    0x00016e88 ldr r3, [pc, 0x54]                        |     
    0x00016e8a ldr r0, [pc, 0x58]                        |     
    0x00016e8c ldr r2, [r4]                              |     r2 = *(r4);
    0x00016e8e add r3, pc                                |     r3 = 0x2dd72;
    0x00016e90 add r0, pc                                |     r0 = 0x2dd7a;
    0x00016e92 bl 0x40ed8                                |     zbx_strdup2 ();
    0x00016e96 str r0, [r4]                              |     *(r4) = r0;
                                                         |     do {
                                                         | label_35:
    0x00016e98 mov.w r3, -1                              |         r3 = -1;
    0x00016e9c str r3, [sp, 0x38]                        |         *(arg_38h) = r3;
    0x00016e9e b 0x17320                                 |         void (*0x17320)() ();
                                                         | label_77:
    0x00016ee8 ldr r3, [sp, 0xb0]                        |         r3 = *(arg_b0h);
    0x00016eea cmp r2, 0                                 |         
                                                         |         if (r2 == 0) {
    0x00016eec beq.w 0x17212                             |             goto label_84;
                                                         |         }
    0x00016ef0 cmp r3, 0                                 |         
                                                         |         if (r3 == 0) {
    0x00016ef2 beq.w 0x17262                             |             goto label_31;
                                                         |         }
    0x00016ef6 movs r3, 0                                |         r3 = 0;
    0x00016ef8 str r3, [sp, 0xec]                        |         *(arg_ech) = r3;
                                                         | label_9:
    0x00016efa ldr r3, [sp, 0xb0]                        |         r3 = *(arg_b0h);
    0x00016efc rsb.w sl, sl, 8                           |         sl = 8 - sl;
    0x00016f00 ldr.w r2, [fp]                            |         r2 = *(fp);
    0x00016f04 cmp r4, sl                                |         
    0x00016f06 ldr r3, [r3]                              |         r3 = *(r3);
    0x00016f08 str r2, [sp, 0x2c]                        |         *(arg_8h) = r2;
    0x00016f0a ldr r3, [r3]                              |         r3 = *(r3);
    0x00016f0c ldr r1, [r3]                              |         r1 = *(r3);
    0x00016f0e ldrh r7, [r3, 4]                          |         r7 = *((r3 + 4));
                                                         |         if (r4 <= sl) {
    0x00016f10 ble 0x16fa0                               |             goto label_13;
                                                         |         }
    0x00016f12 ldr r3, [sp, 0x48]                        |         r3 = *(arg_48h);
    0x00016f14 ldr.w sb, [r3, 8]                         |         sb = *((r3 + 8));
                                                         | label_81:
    0x00016f18 ldr.w r4, [sb, sl, lsl 2]                 |         offset_2 = sl << 2;
                                                         |         r4 = *((sb + offset_2));
                                                         |         if (r4 == 0) {
    0x00016f1c cbz r4, 0x16f7c                           |             goto label_85;
                                                         |         }
    0x00016f1e ldrb r3, [r4]                             |         r3 = *(r4);
                                                         |         if (r3 == 0) {
    0x00016f20 cbz r3, 0x16f7c                           |             goto label_85;
                                                         |         }
    0x00016f22 ldr.w r3, [fp, 0x48]                      |         r3 = *(arg_bp_48h);
                                                         |         if (r3 != 0) {
    0x00016f26 cbnz r3, 0x16f7c                          |             goto label_85;
                                                         |         }
    0x00016f28 mov r0, r4                                |         r0 = r4;
    0x00016f2a str r1, [sp, 0x38]                        |         *(arg_38h) = r1;
    0x00016f2c bl 0x45e80                                |         is_ascii_string ();
    0x00016f30 ldr r1, [sp, 0x38]                        |         r1 = *(arg_38h);
    0x00016f32 cmp r0, 0                                 |         
                                                         |         if (r0 != 0) {
    0x00016f34 bne.w 0x19502                             |             goto label_86;
                                                         |         }
    0x00016f38 mov r0, r4                                |         r0 = r4;
    0x00016f3a ldr r3, [sp, 0x7c]                        |         r3 = *(arg_7ch);
    0x00016f3c mov r2, r7                                |         r2 = r7;
    0x00016f3e bl 0x1a324                                |         r0 = zbx_create_persistent_server_directory ();
    0x00016f42 mov r4, r0                                |         r4 = r0;
    0x00016f44 cmp r0, 0                                 |         
    0x00016f46 beq 0x16e98                               |         
                                                         |     } while (r0 == 0);
    0x00016f48 ldr r1, [sp, 0x2c]                        |     r1 = *(arg_8h);
    0x00016f4a bl 0x1a504                                |     zbx_make_persistent_file_name ();
    0x00016f4e str.w r0, [fp, 0x48]                      |     __asm ("str.w r0, [arg_bp_48h]");
    0x00016f52 mov r0, r4                                |     r0 = r4;
    0x00016f54 blx 0xde30                                |     fcn_0000de30 ();
    0x00016f58 ldr.w r3, [pc, 0xaac]                     |     
    0x00016f5c ldr r3, [r5, r3]                          |     r3 = *((r5 + r3));
    0x00016f5e ldr r3, [r3]                              |     r3 = *(0x17a08);
    0x00016f60 cmp r3, 3                                 |     
                                                         |     if (r3 > 3) {
    0x00016f62 ble 0x16f7c                               |         
    0x00016f64 ldr.w r2, [pc, 0xaa4]                     |         r2 = *(0x00017a0c);
    0x00016f68 movs r0, 4                                |         r0 = 4;
    0x00016f6a ldr.w r1, [pc, 0xaa4]                     |         r1 = *(0x00017a10);
    0x00016f6e ldr.w r3, [fp, 0x48]                      |         r3 = *(arg_bp_48h);
    0x00016f72 add r2, pc                                |         r2 += pc;
    0x00016f74 adds r2, 0x28                             |         r2 += 0x28;
    0x00016f76 add r1, pc                                |         r1 += pc;
    0x00016f78 bl 0x30d1c                                |         zbx_zabbix_log ();
                                                         |     }
                                                         | label_85:
    0x00016f7c ldr r3, [sp, 0xec]                        |     r3 = *(arg_ech);
    0x00016f7e cmp r3, 1                                 |     
    0x00016f80 itt ne                                    |     
                                                         |     if (r3 == 1) {
    0x00016f82 ldrbne r3, [fp, 0x1d]                     |         r3 = *(arg_1dh_2);
                                                         |     }
                                                         |     if (r3 != 1) {
    0x00016f86 str r3, [sp, 0xd0]                        |         *(arg_d0h) = r3;
                                                         |     }
                                                         |     if (r3 == 1) {
    0x00016f88 bne 0x16fa0                               |         
                                                         | label_80:
    0x00016f8a vcmp.f32 s20, 0                           |         __asm ("vcmp.f32 s20, 0");
    0x00016f8e vmrs apsr_nzcv, fpscr                     |         __asm ("vmrs apsr_nzcv, fpscr");
                                                         |         if (r3 != 1) {
    0x00016f92 bne.w 0x18d62                             |             goto label_87;
                                                         |         }
    0x00016f96 ldrb.w r3, [fp, 0x1d]                     |         r3 = *(arg_1dh_2);
    0x00016f9a str r3, [sp, 0xd0]                        |         *(arg_d0h) = r3;
    0x00016f9c movs r3, 1                                |         r3 = 1;
    0x00016f9e str r3, [sp, 0xec]                        |         *(arg_ech) = r3;
                                                         |     }
                                                         | label_13:
    0x00016fa0 ldr.w r3, [fp, 0x10]                      |     r3 = *(arg_10h);
    0x00016fa4 ldr r2, [sp, 0x74]                        |     r2 = *(arg_74h);
    0x00016fa6 mul r3, r3, r8                            |     r3 *= r8;
    0x00016faa str r3, [sp, 0x40]                        |     *(arg_40h) = r3;
    0x00016fac cmp r2, 0                                 |     
                                                         |     if (r2 != 0) {
    0x00016fae bne.w 0x17248                             |         goto label_88;
                                                         |     }
    0x00016fb2 add.w r3, r3, r3, lsl 2                   |     r3 += (r3 << 2);
    0x00016fb6 lsls r3, r3, 1                            |     r3 <<= 1;
    0x00016fb8 str r3, [sp, 0x2c]                        |     *(arg_8h) = r3;
                                                         | label_12:
    0x00016fba ldr.w r3, [fp, 0x48]                      |     r3 = *(arg_bp_48h);
    0x00016fbe str r3, [sp, 0x6c]                        |     *(arg_6ch) = r3;
    0x00016fc0 ldr.w r3, [fp, 0x2c]                      |     r3 = *(arg_2ch);
    0x00016fc4 str r3, [sp, 0x4c]                        |     *(arg_4ch) = r3;
    0x00016fc6 add.w r3, fp, 0x30                        |     r3 = fp + 0x30;
    0x00016fca str r3, [sp, 0x114]                       |     *(arg_114h) = r3;
    0x00016fcc ldr r3, [sp, 0xd0]                        |     r3 = *(arg_d0h);
    0x00016fce lsls r4, r3, 0x1e                         |     r4 = r3 << 0x1e;
                                                         |     if (r4 < r3) {
    0x00016fd0 bpl 0x16fde                               |         
    0x00016fd2 ldr r3, [sp, 0x6c]                        |         r3 = *(arg_6ch);
                                                         |         if (r3 == 0) {
    0x00016fd4 cbz r3, 0x16fde                           |             goto label_89;
                                                         |         }
    0x00016fd6 ldr r3, [sp, 0x4c]                        |         r3 = *(arg_4ch);
    0x00016fd8 cmp r3, 0                                 |         
                                                         |         if (r3 == 0) {
    0x00016fda beq.w 0x1738c                             |             goto label_90;
                                                         |         }
                                                         |     }
                                                         | label_89:
    0x00016fde ldr.w r3, [pc, 0xa28]                     |     r3 = *(0x17a0a);
    0x00016fe2 ldr.w r4, [fp, 0x18]                      |     r4 = *(arg_18h);
    0x00016fe6 ldr r3, [r5, r3]                          |     r3 = *((r5 + r3));
    0x00016fe8 str r3, [sp, 0x70]                        |     *(arg_70h) = r3;
                                                         | label_16:
    0x00016fea ldr.w r3, [pc, 0xa28]                     |     r3 = *(0x17a16);
    0x00016fee add r0, sp, 0x138                         |     r0 += arg_138h;
    0x00016ff0 ldr r1, [r5, r3]                          |     r1 = *((r5 + r3));
    0x00016ff2 ldr r3, [sp, 0x70]                        |     r3 = *(arg_70h);
    0x00016ff4 str r0, [sp, 0x50]                        |     *(arg_50h) = r0;
    0x00016ff6 add r0, sp, 0x13c                         |     r0 += arg_13ch;
    0x00016ff8 str r0, [sp, 0x58]                        |     *(arg_58h) = r0;
    0x00016ffa add r0, sp, 0x140                         |     r0 += arg_140h;
    0x00016ffc ldr r2, [r3]                              |     r2 = *(0x17a16);
    0x00016ffe movs r3, 0                                |     r3 = 0;
    0x00017000 str r3, [sp, 0x138]                       |     *(arg_138h) = r3;
    0x00017002 str r3, [sp, 0x13c]                       |     *(arg_13ch) = r3;
    0x00017004 str r3, [sp, 0x140]                       |     *(arg_140h) = r3;
    0x00017006 cmp r2, 3                                 |     
    0x00017008 ldr r3, [r1]                              |     r3 = *(r1);
    0x0001700a str r1, [sp, 0x11c]                       |     *(arg_11ch) = r1;
    0x0001700c str r0, [sp, 0xb4]                        |     *(arg_b4h) = r0;
    0x0001700e str r3, [sp, 0x108]                       |     *(arg_108h) = r3;
    0x00017010 ldr.w r3, [fp, 4]                         |     r3 = *(arg_158h);
    0x00017014 str r3, [sp, 0xd8]                        |     *(arg_d8h) = r3;
    0x00017016 add.w r3, fp, 8                           |     r3 += arg_8h_2;
    0x0001701a str r3, [sp, 0x118]                       |     *(arg_118h) = r3;
    0x0001701c add.w r3, fp, 0x18                        |     r3 += arg_18h;
    0x00017020 str r3, [sp, 0x104]                       |     *(arg_104h) = r3;
                                                         |     if (r2 > 3) {
    0x00017022 bgt.w 0x1735a                             |         goto label_91;
                                                         |     }
    0x00017024 strh r2, [r3, 0xc]                        |     *((r3 + 0xc)) = r2;
                                                         | label_14:
    0x00017026 movs r0, 0                                |     r0 = 0;
    0x00017028 blx 0xe104                                |     r0 = fcn_0000e104 ();
    0x0001702c cmp r0, r4                                |     
    0x0001702e str r0, [sp, 0x38]                        |     *(arg_38h) = r0;
                                                         |     if (r0 >= r4) {
    0x00017030 bge.w 0x17228                             |         goto label_92;
                                                         |     }
    0x00017034 ldr r3, [sp, 0x70]                        |     r3 = *(arg_70h);
    0x00017036 ldr r1, [sp, 0x38]                        |     r1 = *(arg_38h);
    0x00017038 ldr.w r2, [fp, 0x18]                      |     r2 = *(arg_18h);
    0x0001703c ldr r3, [r3]                              |     r3 = *(r3);
    0x0001703e str.w r1, [fp, 0x18]                      |     __asm ("str.w r1, [arg_18h]");
    0x00017042 cmp r3, 2                                 |     
                                                         |     if (r3 > 2) {
    0x00017044 bgt.w 0x1721a                             |         goto label_93;
                                                         |     }
                                                         | label_10:
    0x00017048 ldr r3, [sp, 0xd0]                        |     r3 = *(arg_d0h);
    0x0001704a ands r3, r3, 4                            |     r3 &= 4;
    0x0001704e str r3, [sp, 0x3c]                        |     *(arg_3ch) = r3;
                                                         |     if (r3 != r3) {
    0x00017050 bne.w 0x1726c                             |         goto label_94;
                                                         |     }
    0x00017054 ldr r3, [sp, 0xd0]                        |     r3 = *(arg_d0h);
    0x00017056 lsls r1, r3, 0x1c                         |     r1 = r3 << 0x1c;
                                                         |     if (r1 >= r3) {
    0x00017058 bpl.w 0x19398                             |         goto label_95;
                                                         |     }
    0x0001705c ldr r3, [sp, 0x70]                        |     r3 = *(arg_70h);
    0x0001705e ldr r3, [r3]                              |     r3 = *(r3);
    0x00017060 cmp r3, 3                                 |     
                                                         |     if (r3 > 3) {
    0x00017062 ble 0x1707a                               |         
    0x00017064 ldr.w r2, [pc, 0x9b0]                     |         
    0x00017068 mov r3, r6                                |         r3 = r6;
    0x0001706a ldr.w r1, [pc, 0x9b0]                     |         
    0x0001706e movs r0, 4                                |         r0 = 4;
    0x00017070 add r2, pc                                |         r2 = 0x2ea8c;
    0x00017072 adds r2, 0x6c                             |         r2 += 0x6c;
    0x00017074 add r1, pc                                |         r1 = 0x2ea96;
    0x00017076 bl 0x30d1c                                |         zbx_zabbix_log ();
                                                         |     }
    0x0001707a ldrb r3, [r6]                             |     r3 = *(r6);
    0x0001707c cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x0001707e beq.w 0x19382                             |         goto label_96;
                                                         |     }
    0x00017082 movs r1, 0x2f                             |     r1 = 0x2f;
    0x00017084 mov r0, r6                                |     r0 = r6;
    0x00017086 blx 0xdda8                                |     statvfs64 ();
    0x0001708a ldr.w r1, [pc, 0x994]                     |     
    0x0001708e mov r4, r0                                |     r4 = r0;
    0x00017090 add r1, pc                                |     r1 = 0x2eab6;
    0x00017092 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x00017094 beq.w 0x185fe                             |         goto label_97;
                                                         |     }
    0x00017098 ldr r3, [sp, 0x70]                        |     r3 = *(arg_70h);
    0x0001709a ldr r3, [r3]                              |     r3 = *(r3);
    0x0001709c cmp r3, 3                                 |     
                                                         |     if (r3 > 3) {
    0x0001709e bgt.w 0x185aa                             |         goto label_98;
                                                         |     }
    0x000170a2 mov r0, r6                                |     r0 = r6;
    0x000170a4 blx 0xdf68                                |     fcn_0000df68 ();
    0x000170a8 cmp r6, r4                                |     
                                                         |     if (r6 > r4) {
    0x000170aa bhi.w 0x192f4                             |         goto label_99;
                                                         |     }
    0x000170ae subs r3, r0, 1                            |     r3 = r0 - 1;
    0x000170b0 add r3, r6                                |     r3 += r6;
    0x000170b2 cmp r4, r3                                |     
                                                         |     if (r4 >= r3) {
    0x000170b4 bhs.w 0x192f4                             |         goto label_99;
                                                         |     }
                                                         | label_17:
    0x000170b8 subs r4, r4, r6                           |     r4 -= r6;
    0x000170ba movs r2, 0                                |     r2 = 0;
    0x000170bc subs r5, r0, r4                           |     r5 = r0 - r4;
    0x000170be ldr.w r0, [pc, 0x964]                     |     r0 = *(0x00017a24);
    0x000170c2 add.w r8, r4, 2                           |     r8 = r4 + 2;
    0x000170c6 movs r1, 0x55                             |     r1 = 0x55;
    0x000170c8 mov r3, r8                                |     r3 = r8;
    0x000170ca add r0, pc                                |     r0 += pc;
    0x000170cc mov r7, r0                                |     r7 = r0;
    0x000170ce bl 0x40dd8                                |     zbx_malloc2 ();
    0x000170d2 mov r2, r8                                |     r2 = r8;
    0x000170d4 mov r1, r6                                |     r1 = r6;
    0x000170d6 mov r8, r0                                |     r8 = r0;
    0x000170d8 bl 0x4465c                                |     zbx_strlcpy ();
    0x000170dc mov r3, r5                                |     r3 = r5;
    0x000170de movs r2, 0                                |     r2 = 0;
    0x000170e0 movs r1, 0x58                             |     r1 = 0x58;
    0x000170e2 mov r0, r7                                |     r0 = r7;
    0x000170e4 bl 0x40dd8                                |     zbx_malloc2 ();
    0x000170e8 adds r1, r4, 1                            |     r1 = r4 + 1;
    0x000170ea mov r2, r5                                |     r2 = r5;
    0x000170ec add r1, r6                                |     r1 += r6;
    0x000170ee mov r6, r0                                |     r6 = r0;
    0x000170f0 bl 0x4465c                                |     zbx_strlcpy ();
    0x000170f4 ldr r3, [sp, 0x70]                        |     r3 = *(arg_70h);
    0x000170f6 ldr r3, [r3]                              |     r3 = *(r3);
    0x000170f8 cmp r3, 3                                 |     
                                                         |     if (r3 > 3) {
    0x000170fa bgt.w 0x186ce                             |         goto label_100;
                                                         |     }
                                                         | label_18:
    0x000170fe add r3, sp, 0x178                         |     r3 += arg_178h;
    0x00017100 mov r0, r8                                |     r0 = r8;
    0x00017102 mov r1, r3                                |     r1 = r3;
    0x00017104 str r3, [sp, 0x30]                        |     *(arg_30h) = r3;
    0x00017106 blx 0xdec0                                |     r0 = fcn_0000dec0 ();
    0x0001710a mov r5, r0                                |     r5 = r0;
    0x0001710c adds r5, 1                                |     r5++;
                                                         |     if (r5 == 1) {
    0x0001710e beq.w 0x19490                             |         goto label_101;
                                                         |     }
    0x00017112 ldr r3, [sp, 0x30]                        |     r3 = *(arg_30h);
    0x00017114 ldr r3, [r3, 0x10]                        |     r3 = *((r3 + 0x10));
    0x00017116 and r3, r3, 0xf000                        |     r3 &= 0xf000;
    0x0001711a cmp.w r3, 0x4000                          |     
                                                         |     if (r3 != 0x4000) {
    0x0001711e bne.w 0x19328                             |         goto label_102;
                                                         |     }
    0x00017122 ldr r3, [sp, 0x70]                        |     r3 = *(arg_70h);
    0x00017124 ldr r3, [r3]                              |     r3 = *(r3);
    0x00017126 cmp r3, 3                                 |     
                                                         |     if (r3 > 3) {
    0x00017128 bgt.w 0x18980                             |         goto label_103;
                                                         |     }
    0x0001712c add r4, sp, 0x154                         |     r4 += arg_0h_2;
    0x0001712e ldr r2, [sp, 0x30]                        |     r2 = *(arg_30h);
    0x00017130 mov r1, r4                                |     r1 = r4;
    0x00017132 mov r0, r6                                |     r0 = r6;
    0x00017134 bl 0x31a30                                |     r0 = zbx_regexp_compile ();
    0x00017138 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x0001713a bne.w 0x18d2c                             |         goto label_104;
                                                         |     }
                                                         | label_26:
    0x0001713e mov r0, r8                                |     r0 = r8;
    0x00017140 ldr.w sl, [r4]                            |     sl = *(r4);
    0x00017144 blx 0xdbdc                                |     r0 = fcn_0000dbdc ();
    0x00017148 mov sb, r0                                |     sb = r0;
    0x0001714a cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0001714c beq.w 0x195a2                             |         goto label_105;
                                                         |     }
    0x00017150 movs r3, 1                                |     r3 = 1;
    0x00017152 ldr.w r5, [pc, 0x8d4]                     |     r5 = *(0x00017a28);
    0x00017156 str.w r3, [fp, 0x24]                      |     __asm ("str.w r3, [arg_178h]");
    0x0001715a ldr.w r3, [pc, 0x8d0]                     |     r3 = *(0x00017a2c);
    0x0001715e str.w sl, [sp, 0x84]                      |     __asm ("str.w sl, [arg_84h]");
    0x00017162 add r5, pc                                |     r5 += pc;
    0x00017164 ldr r7, [sp, 0x30]                        |     r7 = *(arg_30h);
    0x00017166 add r3, pc                                |     r3 += pc;
    0x00017168 ldr.w sl, [sp, 0x70]                      |     sl = *(arg_70h);
    0x0001716c str r3, [sp, 0x5c]                        |     *(arg_5ch) = r3;
    0x0001716e str r6, [sp, 0x78]                        |     *(arg_78h) = r6;
    0x00017170 str r4, [sp, 0x80]                        |     *(arg_80h) = r4;
    0x00017172 b 0x17188                                 |     
                                                         |     while (r0 == 0) {
    0x00017174 ldr r2, [r7, 0x10]                        |         r2 = *((r7 + 0x10));
    0x00017176 and r2, r2, 0xf000                        |         r2 &= 0xf000;
    0x0001717a cmp.w r2, 0x8000                          |         
                                                         |         if (r2 == fcn.00000004) {
    0x0001717e beq.w 0x18580                             |             goto label_106;
                                                         |         }
                                                         | label_7:
    0x00017182 mov r0, r6                                |         r0 = r6;
    0x00017184 blx 0xde30                                |         fcn_0000de30 ();
    0x00017188 mov r0, sb                                |         r0 = sb;
    0x0001718a blx 0xe28c                                |         r0 = fcn_0000e28c ();
    0x0001718e cmp r0, 0                                 |         
                                                         |         if (r0 == 0) {
    0x00017190 beq.w 0x187b0                             |             goto label_107;
                                                         |         }
    0x00017194 add.w r4, r0, 0x13                        |         r4 = r0 + 0x13;
    0x00017198 mov r1, r5                                |         r1 = r5;
    0x0001719a mov r2, r8                                |         r2 = r8;
    0x0001719c mov r3, r4                                |         r3 = r4;
    0x0001719e movs r0, 0                                |         r0 = 0;
    0x000171a0 bl 0x44820                                |         zbx_dsprintf ()
    0x000171a4 mov r1, r7                                |         r1 = r7;
    0x000171a6 mov r6, r0                                |         r6 = r0;
    0x000171a8 blx 0xdec0                                |         r0 = fcn_0000dec0 ();
    0x000171ac cmp r0, 0                                 |         
    0x000171ae beq 0x17174                               |         
                                                         |     }
    0x000171b0 ldr.w r3, [sl]                            |     r3 = *(sl);
    0x000171b4 cmp r3, 3                                 |     
                                                         |     if (r3 <= 3) {
    0x000171b6 ble 0x17182                               |         goto label_7;
                                                         |     }
    0x000171b8 blx 0xe3d4                                |     r0 = fcn_0000e3d4 ();
    0x000171bc ldr r0, [r0]                              |     r0 = *(r0);
    0x000171be bl 0x30b74                                |     zbx_strerror ();
    0x000171c2 ldr r1, [sp, 0x5c]                        |     r1 = *(arg_5ch);
    0x000171c4 mov r3, r0                                |     r3 = r0;
    0x000171c6 mov r2, r6                                |     r2 = r6;
    0x000171c8 movs r0, 4                                |     r0 = 4;
    0x000171ca bl 0x30d1c                                |     zbx_zabbix_log ();
    0x000171ce b 0x17182                                 |     goto label_7;
                                                         | label_76:
    0x000171d0 add r3, sp, 0x178                         |     r3 += arg_178h;
    0x000171d2 mov r1, r3                                |     r1 = r3;
    0x000171d4 mov r4, r3                                |     r4 = r3;
    0x000171d6 bl 0x41798                                |     r0 = is_double ();
    0x000171da cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x000171dc bne.w 0x19210                             |         goto label_108;
                                                         |     }
    0x000171e0 vldr d10, [r4]                            |     __asm ("vldr d10, [r4]");
    0x000171e4 vcmpe.f64 d10, 0                          |     __asm ("vcmpe.f64 d10, 0");
    0x000171e8 vmrs apsr_nzcv, fpscr                     |     __asm ("vmrs apsr_nzcv, fpscr");
                                                         |     if (r0 < 0) {
    0x000171ec bmi.w 0x19210                             |         goto label_108;
                                                         |     }
    0x000171f0 ldr r3, [sp, 0x48]                        |     r3 = *(arg_48h);
    0x000171f2 vcvt.f32.f64 s20, d10                     |     __asm ("vcvt.f32.f64 s20, d10");
    0x000171f6 ldrb.w r1, [fp, 0x1d]                     |     r1 = *(arg_1dh_2);
    0x000171fa ldr r4, [r3, 4]                           |     r4 = *((r3 + 4));
    0x000171fc b 0x16d58                                 |     goto label_8;
                                                         | label_78:
    0x000171fe ldr.w r1, [pc, 0x830]                     |     
    0x00017202 mov r0, r7                                |     r0 = r7;
    0x00017204 add r1, pc                                |     r1 = 0x2ec3a;
    0x00017206 blx 0xe3b0                                |     r0 = fcn_0000e3b0 ();
    0x0001720a cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x0001720c bne.w 0x18c8e                             |         goto label_109;
                                                         |     }
    0x00017210 ldr r3, [sp, 0xb0]                        |     r3 = *(arg_b0h);
                                                         |     if (r3 != 0) {
                                                         | label_84:
    0x00017212 cbz r3, 0x17266                           |         
    0x00017214 movs r3, 2                                |         r3 = 2;
    0x00017216 str r3, [sp, 0xec]                        |         *(arg_ech) = r3;
    0x00017218 b 0x16efa                                 |         goto label_9;
                                                         | label_93:
    0x0001721a subs r2, r2, r1                           |         r2 -= r1;
    0x0001721c ldr.w r1, [pc, 0x814]                     |         r1 = *(0x00017a34);
    0x00017220 movs r0, 3                                |         r0 = 3;
    0x00017222 add r1, pc                                |         r1 += pc;
    0x00017224 bl 0x30d1c                                |         zbx_zabbix_log ();
                                                         | label_92:
    0x00017228 ldr.w r3, [fp, 0x18]                      |         r3 = *(arg_18h);
    0x0001722c str r3, [sp, 0x38]                        |         *(arg_38h) = r3;
    0x0001722e b 0x17048                                 |         goto label_10;
                                                         | label_65:
    0x00017230 ldr r3, [sp, 0x64]                        |         r3 = *(arg_bp_40h);
    0x00017232 ldr r1, [sp, 0x68]                        |         r1 = *(arg_68h);
    0x00017234 adds r4, r3, 1                            |         r4 = r3 + 1;
    0x00017236 mov r0, r4                                |         r0 = r4;
    0x00017238 bl 0x31f68                                |         r0 = zbx_global_regexp_exists ();
    0x0001723c cmp r0, 0                                 |         
                                                         |         if (r0 != 0) {
    0x0001723e bne.w 0x194f0                             |             goto label_110;
                                                         |         }
    0x00017242 ldr r3, [sp, 0x48]                        |         r3 = *(arg_48h);
    0x00017244 ldr r4, [r3, 4]                           |         r4 = *((r3 + 4));
    0x00017246 b 0x16c74                                 |         goto label_11;
                                                         | label_88:
    0x00017248 ldr.w r3, [fp, 0x18]                      |         r3 = *(arg_18h);
    0x0001724c vldr d9, [fp, 8]                          |         __asm ("vldr d9, [fp, 8]");
    0x00017250 str r3, [sp, 0x124]                       |         *(arg_124h) = r3;
    0x00017252 ldr.w r3, [fp, 0x20]                      |         r3 = *(arg_20h);
    0x00017256 str r3, [sp, 0x128]                       |         *(arg_128h) = r3;
    0x00017258 ldr r3, [sp, 0x40]                        |         r3 = *(arg_40h);
    0x0001725a str r3, [sp, 0x2c]                        |         *(arg_8h) = r3;
    0x0001725c str r3, [sp, 0x12c]                       |         *(arg_12ch) = r3;
    0x0001725e b 0x16fba                                 |         goto label_12;
                                                         | label_30:
    0x00017260 movs r3, 3                                |         r3 = 3;
                                                         | label_31:
    0x00017262 str r3, [sp, 0xec]                        |         *(arg_ech) = r3;
    0x00017264 b 0x16fa0                                 |         goto label_13;
                                                         |     }
    0x00017266 movs r3, 2                                |     r3 = 2;
    0x00017268 str r3, [sp, 0xec]                        |     *(arg_ech) = r3;
    0x0001726a b 0x16fa0                                 |     goto label_13;
                                                         | label_94:
    0x0001726c add r4, sp, 0x178                         |     r4 += arg_178h;
    0x0001726e mov r0, r6                                |     r0 = r6;
    0x00017270 mov r1, r4                                |     r1 = r4;
    0x00017272 blx 0xdec0                                |     r0 = fcn_0000dec0 ();
    0x00017276 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x00017278 bne.w 0x174a0                             |         
    0x0001727c ldr r3, [r4, 0x10]                        |         r3 = *((r4 + 0x10));
    0x0001727e and r3, r3, 0xf000                        |         r3 &= 0xf000;
    0x00017282 cmp.w r3, 0x8000                          |         
                                                         |         if (r3 == fcn.00000004) {
    0x00017286 beq.w 0x18a72                             |             goto label_111;
                                                         |         }
    0x0001728a ldr r4, [sp, 0x7c]                        |         r4 = *(arg_7ch);
    0x0001728c mov r2, r6                                |         r2 = r6;
    0x0001728e ldr.w r1, [pc, 0x7a8]                     |         
    0x00017292 ldr r0, [r4]                              |         r0 = *(r4);
    0x00017294 add r1, pc                                |         r1 = 0x2ecd2;
    0x00017296 bl 0x44820                                |         zbx_dsprintf ()
    0x0001729a str r0, [r4]                              |         *(r4) = r0;
                                                         | label_91:
    0x0001735a ldr.w r2, [pc, 0x6ec]                     |         
    0x0001735e movs r0, 4                                |         r0 = 4;
    0x00017360 str r4, [sp, 0x10]                        |         var_10h = r4;
    0x00017362 str r6, [sp]                              |         *(sp) = r6;
    0x00017364 ldr.w r1, [pc, 0x6e4]                     |         r1 = *(0x00017a4c);
    0x00017368 add r2, pc                                |         r2 = 0x2edb6;
    0x0001736a ldrd r4, r5, [fp, 8]                      |         __asm ("ldrd r4, r5, [arg_8h_2]");
    0x0001736e adds r2, 0x5c                             |         r2 += 0x5c;
    0x00017370 ldr r3, [sp, 0xd0]                        |         r3 = *(arg_d0h);
    0x00017372 add r1, pc                                |         r1 += pc;
    0x00017374 strd r4, r5, [sp, 8]                      |         __asm ("strd r4, r5, [sp, 8]");
    0x00017378 bl 0x30d1c                                |         zbx_zabbix_log ();
    0x0001737c ldr.w r4, [fp, 0x18]                      |         r4 = *(arg_18h);
    0x00017380 b 0x17026                                 |         goto label_14;
                                                         | label_83:
    0x00017382 add.w r8, r8, r8, lsl 2                   |         r8 += (r8 << 2);
    0x00017386 lsl.w r8, r8, 1                           |         r8 <<= 1;
    0x0001738a b 0x16e42                                 |         goto label_15;
                                                         | label_90:
    0x0001738c ldr r3, [sp, 0x4c]                        |         r3 = *(arg_4ch);
    0x0001738e add r4, sp, 0x144                         |         r4 += arg_144h;
    0x00017390 add r7, sp, 0x264                         |         r7 += arg_264h;
    0x00017392 ldr r0, [sp, 0x6c]                        |         r0 = *(arg_6ch);
    0x00017394 mov.w r2, 0x800                           |         r2 = 0x800;
    0x00017398 mov r1, r7                                |         r1 = r7;
    0x0001739a str r3, [r4]                              |         *(r4) = r3;
    0x0001739c mov r3, r4                                |         r3 = r4;
    0x0001739e bl 0x1a530                                |         r0 = zbx_read_persistent_file ();
    0x000173a2 cmp r0, 0                                 |         
                                                         |         if (r0 != 0) {
    0x000173a4 bne.w 0x18e18                             |             goto label_112;
                                                         |         }
    0x000173a8 ldr.w r3, [pc, 0x65c]                     |         
    0x000173ac add r2, sp, 0x178                         |         r2 += arg_178h;
    0x000173ae vmov.i32 d16, 0                           |         __asm ("vmov.i32 d16, 0");
    0x000173b2 add.w r8, sp, 0x148                       |         r8 += arg_148h;
    0x000173b6 str r2, [sp, 0x30]                        |         *(arg_30h) = r2;
    0x000173b8 str.w r0, [r8]                            |         __asm ("str.w r0, [r8]");
    0x000173bc vstr d16, [sp, 0x178]                     |         __asm ("vstr d16, [sp, 0x178]");
    0x000173c0 ldr r3, [r5, r3]                          |         r3 = *((r5 + r3));
    0x000173c2 str r3, [sp, 0x70]                        |         *(arg_70h) = r3;
    0x000173c4 ldr r3, [r3]                              |         r3 = *(0x17a08);
    0x000173c6 cmp r3, 3                                 |         
                                                         |         if (r3 > 3) {
    0x000173c8 bgt.w 0x19234                             |             goto label_113;
                                                         |         }
                                                         | label_45:
    0x000173cc mov r0, r7                                |         r0 = r7;
    0x000173ce ldr r7, [sp, 0x30]                        |         r7 = *(arg_30h);
    0x000173d0 ldr r1, [sp, 0x114]                       |         r1 = *(arg_114h);
    0x000173d2 add.w r2, fp, 0x2c                        |         r2 += arg_2ch;
    0x000173d6 strd r8, r4, [sp]                         |         __asm ("strd r8, r4, [sp]");
    0x000173da mov r3, r7                                |         r3 = r7;
    0x000173dc bl 0x1aeb8                                |         r0 = zbx_restore_file_details ();
    0x000173e0 cmp r0, 0                                 |         
                                                         |         if (r0 != 0) {
    0x000173e2 bne.w 0x1915c                             |             goto label_114;
                                                         |         }
    0x000173e4 strh r3, [r7, 0x34]                       |         *((r7 + 0x34)) = r3;
    0x000173e6 ldrd r0, r2, [fp, 8]                      |         __asm ("ldrd r0, r2, [arg_8h_2]");
    0x000173ea ldrd r1, r3, [r7]                         |         __asm ("ldrd r1, r3, [r7]");
    0x000173ee cmp r2, r3                                |         
    0x000173f0 it eq                                     |         
                                                         |         if (r2 == r3) {
    0x000173f2 cmpeq r0, r1                              |             __asm ("cmpeq r0, r1");
                                                         |         }
                                                         |         if (r2 == r3) {
    0x000173f4 bne 0x17402                               |             
    0x000173f6 ldr.w r4, [fp, 0x18]                      |             r4 = *(arg_18h);
    0x000173fa ldr.w r3, [r8]                            |             r3 = *(r8);
    0x000173fe cmp r4, r3                                |             
                                                         |             if (r4 >= r3) {
    0x00017400 bge 0x1748c                               |                 goto label_115;
                                                         |             }
                                                         |         }
    0x00017402 ldr.w r3, [pc, 0x64c]                     |         r3 = *(0x00017a50);
    0x00017406 add r7, sp, 0x14c                         |         r7 += arg_14ch;
    0x00017408 add r4, sp, 0x154                         |         r4 += arg_0h_2;
    0x0001740a mov r0, r7                                |         r0 = r7;
    0x0001740c mov r2, r4                                |         r2 = r4;
    0x0001740e add r3, pc                                |         r3 += pc;
    0x00017410 adds r3, 0x48                             |         r3 += 0x48;
    0x00017412 str r3, [sp]                              |         *(sp) = r3;
    0x00017414 ldr.w r3, [fp]                            |         r3 = *(fp);
    0x00017418 str r3, [sp, 4]                           |         var_4h = r3;
    0x0001741a add r3, sp, 0x150                         |         r3 += arg_150h;
    0x0001741c mov r1, r3                                |         r1 = r3;
    0x0001741e str r3, [sp, 0xb8]                        |         *(arg_b8h) = r3;
    0x00017420 movs r3, 0                                |         r3 = 0;
    0x00017422 mov sb, r1                                |         sb = r1;
    0x00017424 str r3, [r1]                              |         *(r1) = r3;
    0x00017426 str r3, [r7]                              |         *(r7) = r3;
    0x00017428 str r3, [r4]                              |         *(r4) = r3;
    0x0001742a ldr.w r3, [pc, 0x628]                     |         r3 = *(0x00017a54);
    0x0001742e add r3, pc                                |         r3 += pc;
    0x00017430 bl 0x43fb4                                |         zbx_snprintf_alloc ();
    0x00017434 ldr r1, [sp, 0x30]                        |         r1 = *(arg_30h);
    0x00017436 ldrd r2, r3, [fp, 8]                      |         __asm ("ldrd r2, r3, [arg_8h_2]");
    0x0001743a ldr r0, [r1]                              |         r0 = *(r1);
    0x0001743c ldr r1, [r1, 4]                           |         r1 = *((r1 + 4));
    0x0001743e cmp r3, r1                                |         
    0x00017440 it eq                                     |         
                                                         |         if (r3 == r1) {
    0x00017442 cmpeq r2, r0                              |             __asm ("cmpeq r2, r0");
                                                         |         }
                                                         |         if (r3 != r1) {
    0x00017444 beq 0x17468                               |             
    0x00017446 strd r2, r3, [sp]                         |             __asm ("strd r2, r3, [sp]");
    0x0001744a mov r2, r4                                |             r2 = r4;
    0x0001744c ldr.w r3, [pc, 0x608]                     |             
    0x00017450 strd r0, r1, [sp, 8]                      |             __asm ("strd r0, r1, [sp, 8]");
    0x00017454 mov r1, sb                                |             r1 = sb;
    0x00017456 mov r0, r7                                |             r0 = r7;
    0x00017458 add r3, pc                                |             r3 = 0x2eeb4;
    0x0001745a bl 0x43fb4                                |             zbx_snprintf_alloc ();
    0x0001745e ldr r1, [sp, 0x30]                        |             r1 = *(arg_30h);
    0x00017460 ldrd r2, r3, [r1]                         |             __asm ("ldrd r2, r3, [r1]");
    0x00017464 strd r2, r3, [fp, 8]                      |             __asm ("strd r2, r3, [fp, 8]");
                                                         |         }
    0x00017468 ldr.w r3, [fp, 0x18]                      |         r3 = *(arg_18h);
    0x0001746c ldr.w r2, [r8]                            |         r2 = *(r8);
    0x00017470 cmp r3, r2                                |         
                                                         |         if (r3 < r2) {
    0x00017472 blt.w 0x19426                             |             goto label_116;
                                                         |         }
                                                         | label_52:
    0x00017476 ldr r3, [sp, 0x70]                        |         r3 = *(arg_70h);
    0x00017478 ldr r3, [r3]                              |         r3 = *(r3);
    0x0001747a cmp r3, 2                                 |         
                                                         |         if (r3 > 2) {
    0x0001747c bgt.w 0x19416                             |             goto label_117;
                                                         |         }
                                                         | label_51:
    0x00017480 ldr r0, [r7]                              |         r0 = *(r7);
                                                         |         if (r0 != 0) {
    0x00017482 cbz r0, 0x17488                           |             
                                                         | label_38:
    0x00017484 blx 0xde30                                |             fcn_0000de30 ();
                                                         |         }
                                                         | label_39:
    0x00017488 ldr.w r4, [fp, 0x18]                      |         r4 = *(arg_18h);
                                                         | label_115:
    0x0001748c ldrb.w r3, [fp, 0x1d]                     |         r3 = *(arg_1dh_2);
    0x00017490 str r3, [sp, 0xd0]                        |         *(arg_d0h) = r3;
    0x00017492 ldr.w r3, [fp, 0x2c]                      |         r3 = *(arg_2ch);
    0x00017496 str r3, [sp, 0x4c]                        |         *(arg_4ch) = r3;
    0x00017498 ldr.w r3, [fp, 0x48]                      |         r3 = *(arg_bp_48h);
    0x0001749c str r3, [sp, 0x6c]                        |         *(arg_6ch) = r3;
    0x0001749e b 0x16fea                                 |         goto label_16;
                                                         |     }
    0x000174a0 ldr r5, [sp, 0x7c]                        |     r5 = *(arg_7ch);
    0x000174a2 blx 0xe3d4                                |     r0 = fcn_0000e3d4 ();
    0x000174a6 ldr r0, [r0]                              |     r0 = *(r0);
    0x000174a8 ldr r4, [r5]                              |     r4 = *(r5);
    0x000174aa bl 0x30b74                                |     zbx_strerror ();
    0x000174ac invalid                                   |     
    0x000174b0 asrs r4, r5, 0x16                         |     r4 = r5 >> 0x16;
    0x000174b2 mov r3, r0                                |     r3 = r0;
    0x000174b4 mov r2, r6                                |     r2 = r6;
    0x000174b6 mov r0, r4                                |     r0 = r4;
    0x000174b8 add r1, pc                                |     r1 += pc;
    0x000174ba bl 0x44820                                |     zbx_dsprintf ()
    0x000174be str r0, [r5]                              |     *(r5) = r0;
    0x000174c0 ldrb.w r3, [fp, 0x1c]                     |     r3 = *(arg_1ch);
    0x000174c4 cmp r3, 1                                 |     
                                                         |     if (r3 == 1) {
    0x000174c6 beq.w 0x18b50                             |         goto label_118;
                                                         |     }
    0x000174ca ldr r3, [sp, 0xd0]                        |     r3 = *(arg_d0h);
    0x000174cc lsls r0, r3, 0x1c                         |     r0 = r3 << 0x1c;
                                                         |     if (r0 >= r3) {
    0x000174ce bpl.w 0x1729c                             |         void (*0x1729c)() ();
                                                         |     }
    0x000174d0 add r6, sp, 0x394                         |     r6 = sp + 0x394;
                                                         | label_20:
    0x00017558 adds r3, r5, 1                            |     r3 = r5 + 1;
    0x0001755a ldr.w fp, [sp, 0x38]                      |     fp = *(arg_38h);
    0x0001755e bics r3, r3, 4                            |     __asm ("bics r3, r3, 4");
                                                         |     if (r3 == r5) {
    0x00017562 beq.w 0x18b34                             |         goto label_119;
                                                         |     }
                                                         |     if (r5 == 0) {
    0x00017566 cbz r5, 0x17570                           |         void (*0x17570)() ();
                                                         |     }
    0x00017568 ldr r3, [sp, 0x3c]                        |     r3 = *(arg_3ch);
    0x0001756a cmp r3, 0                                 |     
                                                         |     if (r3 != 0) {
    0x0001756c bne.w 0x1729c                             |         void (*0x1729c)() ();
                                                         |     }
                                                         | label_74:
    0x00018200 ldr.w r3, [pc, 0x628]                     |     
    0x00018204 mov.w sb, 6                               |     sb = 6;
    0x00018208 add r3, pc                                |     r3 = 0x30a38;
    0x0001820a str r3, [sp, 0x100]                       |     *(arg_100h) = r3;
    0x0001820c b.w 0x16d3c                               |     goto label_4;
                                                         | label_106:
    0x00018580 ldr r2, [r7, 0x50]                        |     r2 = *((r7 + 0x50));
    0x00018582 ldr r3, [sp, 0x38]                        |     r3 = *(arg_38h);
    0x00018584 cmp r2, r3                                |     
                                                         |     if (r2 < r3) {
    0x00018586 blt.w 0x17182                             |         goto label_7;
                                                         |     }
    0x0001858a ldr r1, [sp, 0x84]                        |     r1 = *(arg_84h);
    0x0001858c mov r0, r4                                |     r0 = r4;
    0x0001858e bl 0x31a70                                |     r0 = zbx_regexp_match_precompiled ();
    0x00018592 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x00018594 bne.w 0x17182                             |         goto label_7;
                                                         |     }
    0x00018598 ldr r2, [sp, 0x50]                        |     r2 = *(arg_50h);
    0x0001859a mov r3, r6                                |     r3 = r6;
    0x0001859c ldr r1, [sp, 0x58]                        |     r1 = *(arg_58h);
    0x0001859e ldr r0, [sp, 0xb4]                        |     r0 = *(arg_b4h);
    0x000185a0 str r7, [sp]                              |     *(sp) = r7;
    0x000185a2 bl 0x153fc                                |     fcn_000153fc (r0, r1, r2, r3, r4);
    0x000185a6 b.w 0x17182                               |     goto label_7;
                                                         | label_98:
    0x000185aa ldr r2, [pc, 0x288]                       |     
    0x000185ac mov r3, r6                                |     r3 = r6;
    0x000185ae ldr r1, [pc, 0x288]                       |     
    0x000185b0 str r0, [sp]                              |     *(sp) = r0;
    0x000185b2 movs r0, 4                                |     r0 = 4;
    0x000185b4 add r2, pc                                |     r2 = 0x30dee;
    0x000185b6 adds r2, 0x7c                             |     r2 += 0x7c;
    0x000185b8 add r1, pc                                |     r1 = 0x30df6;
    0x000185ba bl 0x30d1c                                |     zbx_zabbix_log ();
    0x000185be mov r0, r6                                |     r0 = r6;
    0x000185c0 blx 0xdf68                                |     fcn_0000df68 ();
    0x000185c4 cmp r6, r4                                |     
                                                         |     if (r6 > r4) {
    0x000185c6 bhi 0x185d2                               |         goto label_120;
                                                         |     }
    0x000185c8 subs r3, r0, 1                            |     r3 = r0 - 1;
    0x000185ca add r3, r6                                |     r3 += r6;
    0x000185cc cmp r4, r3                                |     
                                                         |     if (r4 <= r3) {
    0x000185ce blo.w 0x170b8                             |         goto label_17;
                                                         |     }
                                                         | label_120:
    0x000185d2 ldr r3, [sp, 0x70]                        |     r3 = *(arg_70h);
    0x000185d4 ldr r3, [r3]                              |     r3 = *(r3);
    0x000185d6 cmp r3, 3                                 |     
                                                         |     if (r3 <= 3) {
    0x000185d8 ble.w 0x192f4                             |         goto label_99;
                                                         |     }
    0x000185dc ldr r3, [pc, 0x25c]                       |     
    0x000185de movs r0, 4                                |     r0 = 4;
    0x000185e0 ldr r1, [pc, 0x25c]                       |     
    0x000185e2 add r3, pc                                |     
    0x000185e4 add.w r4, r3, 0x7c                        |     r4 = r3 + 0x7c;
    0x000185e8 add r1, pc                                |     r1 = 0x30e2c;
    0x000185ea mov r2, r4                                |     r2 = r4;
    0x000185ec bl 0x30d1c                                |     zbx_zabbix_log ();
    0x000185f0 ldr r3, [sp, 0x70]                        |     r3 = *(arg_70h);
    0x000185f2 ldr r3, [r3]                              |     r3 = *(0x30e22);
    0x000185f4 cmp r3, 3                                 |     
                                                         |     if (r3 > 3) {
    0x000185f6 bgt.w 0x194cc                             |         goto label_121;
                                                         |     }
    0x000185fa ldr r1, [pc, 0x248]                       |     
    0x000185fc add r1, pc                                |     r1 = 0x30e46;
                                                         | label_97:
    0x000185fe ldr r4, [sp, 0x7c]                        |     r4 = *(arg_7ch);
    0x00018600 movs r2, 0x2f                             |     r2 = 0x2f;
    0x00018602 ldr r0, [r4]                              |     r0 = *(r4);
    0x00018604 bl 0x44820                                |     zbx_dsprintf ()
                                                         | label_49:
    0x00018608 str r0, [r4]                              |     *(r4) = r0;
                                                         | label_47:
    0x0001860a ldr r3, [sp, 0x70]                        |     r3 = *(arg_70h);
    0x0001860c ldr r3, [r3]                              |     r3 = *(r3);
    0x0001860e cmp r3, 3                                 |     
                                                         |     if (r3 > 3) {
    0x00018610 bgt.w 0x19354                             |         goto label_122;
                                                         |     }
                                                         | label_24:
    0x00018614 ldr r3, [sp, 0x70]                        |     r3 = *(arg_70h);
    0x00018616 vcmp.f32 s20, 0                           |     __asm ("vcmp.f32 s20, 0");
    0x0001861a vmrs apsr_nzcv, fpscr                     |     __asm ("vmrs apsr_nzcv, fpscr");
    0x0001861e ldr r3, [r3]                              |     r3 = *(r3);
                                                         |     if (r3 != 3) {
    0x00018620 bne.w 0x19482                             |         void (*0x19482)() ();
                                                         |     }
                                                         | label_100:
    0x000186ce movs r0, 0                                |     r0 = 0;
    0x000186d0 bl 0x45514                                |     r0 = zbx_result_string ();
    0x000186d4 mov r3, r0                                |     r3 = r0;
    0x000186d6 cmp.w r8, 0                               |     
                                                         |     if (r8 == 0) {
    0x000186da beq.w 0x18e0a                             |         goto label_123;
                                                         |     }
    0x000186de mov r2, r8                                |     r2 = r8;
    0x000186e0 cmp r6, 0                                 |     
                                                         |     if (r6 == 0) {
    0x000186e2 beq.w 0x18de8                             |         goto label_124;
                                                         |     }
    0x000186e6 ldr r2, [pc, 0x170]                       |     
    0x000186e8 movs r0, 4                                |     r0 = 4;
    0x000186ea ldr r1, [pc, 0x170]                       |     
    0x000186ec strd r8, r6, [sp]                         |     __asm ("strd r8, r6, [sp]");
    0x000186f0 add r2, pc                                |     r2 = 0x30f4e;
    0x000186f2 adds r2, 0x7c                             |     r2 += 0x7c;
    0x000186f4 add r1, pc                                |     r1 = 0x30f56;
    0x000186f6 bl 0x30d1c                                |     zbx_zabbix_log ();
    0x000186fa b.w 0x170fe                               |     goto label_18;
                                                         | label_73:
    0x000186fe ldrb.w r1, [fp, 0x1d]                     |     r1 = *(arg_1dh_2);
    0x00018702 b.w 0x16dee                               |     goto label_19;
                                                         | label_107:
    0x000187b0 mov r0, sb                                |     r0 = sb;
    0x000187b2 ldr r6, [sp, 0x78]                        |     r6 = *(arg_78h);
    0x000187b4 ldr r4, [sp, 0x80]                        |     r4 = *(arg_80h);
    0x000187b6 blx 0xe0d0                                |     fcn_0000e0d0 ();
    0x000187ba adds r0, 1                                |     r0++;
                                                         |     if (r0 == 1) {
    0x000187bc beq.w 0x1954e                             |         goto label_125;
                                                         |     }
    0x000187c0 ldr r3, [sp, 0x50]                        |     r3 = *(arg_50h);
    0x000187c2 ldr r3, [r3]                              |     r3 = *(r3);
    0x000187c4 cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x000187c6 beq.w 0x190c4                             |         goto label_126;
                                                         |     }
                                                         | label_42:
    0x000187ca ldr r0, [r4]                              |     r0 = *(r4);
    0x000187cc bl 0x31a44                                |     zbx_regexp_free ();
    0x000187d0 mov r0, r8                                |     r0 = r8;
    0x000187d2 blx 0xde30                                |     fcn_0000de30 ();
                                                         |     if (r6 != 0) {
    0x000187d6 cbz r6, 0x187de                           |         
    0x000187d8 mov r0, r6                                |         r0 = r6;
    0x000187da blx 0xde30                                |         fcn_0000de30 ();
                                                         |     }
                                                         | label_28:
    0x000187de ldr r3, [sp, 0x50]                        |     r3 = *(arg_50h);
    0x000187e0 ldr r2, [sp, 0xb4]                        |     r2 = *(arg_b4h);
    0x000187e2 ldr r3, [r3]                              |     r3 = *(r3);
    0x000187e4 ldr r4, [r2]                              |     r4 = *(r2);
    0x000187e6 cmp r3, 0                                 |     
    0x000187e8 str r3, [sp, 0x84]                        |     *(arg_84h) = r3;
                                                         |     if (r3 <= 0) {
    0x000187ea ble.w 0x174f0                             |         void (*0x174f0)() ();
                                                         |     }
    0x000187ee ldr r7, [sp, 0x7c]                        |     r7 = *(arg_7ch);
    0x000187f0 adds r4, 0x60                             |     r4 += 0x60;
    0x000187f2 mov.w r8, 0                               |     r8 = 0;
    0x000187f6 movw sb, 0x201                            |     sb = 0x201;
    0x000187fa mov sl, r3                                |     sl = r3;
    0x000187fc str.w fp, [sp, 0x38]                      |     __asm ("str.w fp, [arg_38h]");
    0x00018800 b 0x18896                                 |     goto label_127;
                                                         | label_22:
    0x00018864 str r7, [sp, 4]                           |     var_4h = r7;
    0x00018866 mov r0, r6                                |     r0 = r6;
    0x00018868 ldr r3, [r4, -0x60]                       |     r3 = *((r4 - 0x60));
    0x0001886c str r3, [sp]                              |     *(sp) = r3;
    0x0001886e mov r3, r4                                |     r3 = r4;
    0x00018870 bl 0x15710                                |     r0 = fcn_00015710 (r0, r1, r2, r3, r4, r5, r6);
    0x00018874 mov r5, r0                                |     r5 = r0;
                                                         | label_21:
    0x00018876 mov r0, r6                                |     r0 = r6;
    0x00018878 ldr r6, [r4, -0x60]                       |     r6 = *((r4 - 0x60));
    0x0001887c blx 0xe0ac                                |     r0 = fcn_0000e0ac ();
    0x00018880 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x00018882 bne 0x1891c                               |         goto label_128;
                                                         |     }
    0x00018884 adds r3, r5, 1                            |     r3 = r5 + 1;
                                                         |     if (r3 == r5) {
    0x00018886 beq.w 0x19520                             |         goto label_129;
                                                         |     }
                                                         | label_23:
    0x0001888a add.w r8, r8, 1                           |     r8++;
    0x0001888e adds r4, 0x70                             |     r4 += 0x70;
    0x00018890 cmp sl, r8                                |     
                                                         |     if (sl == r8) {
    0x00018892 beq.w 0x17558                             |         goto label_20;
                                                         |     }
                                                         | label_127:
    0x00018896 ldr r5, [r4, -0x60]                       |     r5 = *((r4 - 0x60));
    0x0001889a movs r1, 0                                |     r1 = 0;
    0x0001889c mov r0, r5                                |     r0 = r5;
    0x0001889e blx 0xe030                                |     r0 = fcntl64 ();
    0x000188a2 adds r2, r0, 1                            |     r2 = r0 + 1;
    0x000188a4 mov r6, r0                                |     r6 = r0;
                                                         |     if (r2 == r0) {
    0x000188a6 beq 0x1895a                               |         goto label_130;
                                                         |     }
    0x000188a8 ldrd r2, r3, [r4, -0x30]                  |     __asm ("ldrd r2, r3, [r4, -0x30]");
    0x000188ac sub.w fp, r4, 0x1c                        |     
    0x000188b0 movs r1, 0                                |     r1 = 0;
    0x000188b2 cmp r2, sb                                |     
    0x000188b4 sbcs r3, r3, 0                            |     __asm ("sbcs r3, r3, 0");
    0x000188b8 it hs                                     |     
                                                         |     if (r2 < sb) {
    0x000188ba movhs r2, 0x200                           |         r2 = 0x200;
                                                         |     }
    0x000188be str r2, [r4, -0x20]                       |     *((r4 - 0x20)) = r2;
    0x000188c2 str r7, [sp, 4]                           |     var_4h = r7;
    0x000188c4 ldr r3, [r4, -0x60]                       |     r3 = *((r4 - 0x60));
    0x000188c8 str r3, [sp]                              |     *(sp) = r3;
    0x000188ca mov r3, fp                                |     r3 = fp;
    0x000188cc bl 0x15710                                |     r0 = fcn_00015710 (r0, r1, r2, r3, r4, r5, r6);
    0x000188d0 mov r5, r0                                |     r5 = r0;
    0x000188d2 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x000188d4 bne 0x18876                               |         goto label_21;
                                                         |     }
    0x000188d6 ldr r2, [r4, -0x20]                       |     r2 = *((r4 - 0x20));
    0x000188da ldr r1, [r4, -0x30]                       |     r1 = *((r4 - 0x30));
    0x000188de ldr r0, [r4, -0x2c]                       |     r0 = *((r4 - 0x2c));
    0x000188e2 subs r1, r1, r2                           |     r1 -= r2;
    0x000188e4 sbc r0, r0, 0                             |     __asm ("sbc r0, r0, 0");
    0x000188e8 str r1, [r4, -0x8]                        |     *((r4 - 0x8)) = r1;
    0x000188ec str r0, [r4, -0x4]                        |     *((r4 - 0x4)) = r0;
    0x000188f0 orrs r0, r1                               |     r0 |= r1;
                                                         |     if (r0 != r1) {
    0x000188f2 bne 0x18864                               |         goto label_22;
                                                         |     }
    0x000188f4 ldr.w r5, [fp]                            |     r5 = *(fp);
    0x000188f8 mov r0, r6                                |     r0 = r6;
    0x000188fa ldr.w r1, [fp, 4]                         |     r1 = *(arg_158h);
    0x000188fe ldr.w r2, [fp, 8]                         |     r2 = *(arg_8h_2);
    0x00018902 ldr.w r3, [fp, 0xc]                       |     r3 = *(arg_ch);
    0x00018906 str r5, [r4]                              |     *(r4) = r5;
    0x00018908 str r1, [r4, 4]                           |     *((r4 + 4)) = r1;
    0x0001890a str r2, [r4, 8]                           |     *((r4 + 8)) = r2;
    0x0001890c str r3, [r4, 0xc]                         |     *((r4 + 0xc)) = r3;
    0x0001890e ldr r6, [r4, -0x60]                       |     r6 = *((r4 - 0x60));
    0x00018912 blx 0xe0ac                                |     r0 = fcn_0000e0ac ();
    0x00018916 mov r5, r0                                |     r5 = r0;
    0x00018918 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0001891a beq 0x1888a                               |         goto label_23;
                                                         |     }
                                                         | label_128:
    0x0001891c ldr r3, [sp, 0x7c]                        |     r3 = *(arg_7ch);
    0x0001891e ldr.w fp, [sp, 0x38]                      |     fp = *(arg_38h);
    0x00018922 ldr r4, [r3]                              |     r4 = *(r3);
    0x00018924 cmp r4, 0                                 |     
                                                         |     if (r4 == 0) {
    0x00018926 beq.w 0x191ee                             |         goto label_131;
                                                         |     }
                                                         | label_25:
    0x0001892a ldr r0, [sp, 0xb4]                        |     r0 = *(arg_b4h);
    0x0001892c ldr r3, [r0]                              |     r3 = *(r0);
                                                         |     if (r3 != 0) {
    0x0001892e cbz r3, 0x18938                           |         
                                                         | label_33:
    0x00018930 ldr r2, [sp, 0x50]                        |         r2 = *(arg_50h);
    0x00018932 ldr r1, [sp, 0x58]                        |         r1 = *(arg_58h);
    0x00018934 bl 0x16b54                                |         destroy_logfile_list ();
                                                         |     }
                                                         | label_27:
    0x00018938 mov.w r5, -1                              |     r5 = -1;
                                                         | label_29:
    0x0001893c ldr r3, [sp, 0x3c]                        |     r3 = *(arg_3ch);
    0x0001893e cmp r3, 0                                 |     
                                                         |     if (r3 != 0) {
    0x00018940 bne.w 0x1729c                             |         void (*0x1729c)() ();
                                                         |     }
                                                         | label_34:
    0x00018944 ldr r3, [sp, 0xd0]                        |     r3 = *(arg_d0h);
    0x00018946 sub.w r5, r5, -1                          |     r5 -= -1;
    0x0001894a clz r5, r5                                |     r5 &= r5;
    0x0001894e lsrs r5, r5, 5                            |     r5 >>= 5;
    0x00018950 ands.w r5, r5, r3, lsr 3                  |     r5 &= (r3 >> 3);
                                                         |     if (r5 == r5) {
    0x00018954 beq.w 0x174ea                             |         void (*0x174ea)() ();
                                                         |     }
    0x00018958 b 0x18614                                 |     goto label_24;
                                                         | label_130:
    0x0001895a ldr r6, [sp, 0x7c]                        |     r6 = *(arg_7ch);
    0x0001895c blx 0xe3d4                                |     r0 = fcn_0000e3d4 ();
    0x00018960 ldr r0, [r0]                              |     r0 = *(r0);
    0x00018962 ldr r4, [r6]                              |     r4 = *(r6);
    0x00018964 ldr.w fp, [sp, 0x38]                      |     fp = *(arg_38h);
    0x00018968 bl 0x30b74                                |     zbx_strerror ();
    0x0001896c ldr.w r1, [pc, 0xc58]                     |     r1 = *(0x000195c8);
    0x00018970 mov r3, r0                                |     r3 = r0;
    0x00018972 mov r2, r5                                |     r2 = r5;
    0x00018974 mov r0, r4                                |     r0 = r4;
    0x00018976 add r1, pc                                |     r1 += pc;
    0x00018978 bl 0x44820                                |     zbx_dsprintf ()
    0x0001897c str r0, [r6]                              |     *(r6) = r0;
    0x0001897e b 0x1892a                                 |     goto label_25;
                                                         | label_103:
    0x00018980 movs r0, 0                                |     r0 = 0;
    0x00018982 mov r5, r8                                |     r5 = r8;
    0x00018984 bl 0x45514                                |     r0 = zbx_result_string ();
    0x00018988 mov r3, r0                                |     r3 = r0;
    0x0001898a cmp r6, 0                                 |     
                                                         |     if (r6 != 0) {
    0x0001898c bne.w 0x18fbe                             |         goto label_132;
                                                         |     }
                                                         | label_46:
    0x00018990 ldr.w r1, [pc, 0xc38]                     |     r1 = *(0x000195cc);
    0x00018994 movs r0, 4                                |     r0 = 4;
    0x00018996 ldr.w r2, [pc, 0xc38]                     |     r2 = *(0x000195d0);
    0x0001899a str.w r8, [sp]                            |     __asm ("str.w r8, [sp]");
    0x0001899e add r1, pc                                |     r1 += pc;
    0x000189a0 str r1, [sp, 4]                           |     var_4h = r1;
    0x000189a2 add r2, pc                                |     r2 += pc;
    0x000189a4 ldr.w r1, [pc, 0xc2c]                     |     r1 = *(0x000195d4);
    0x000189a8 adds r2, 0x6c                             |     r2 += 0x6c;
    0x000189aa add r1, pc                                |     r1 += pc;
    0x000189ac bl 0x30d1c                                |     zbx_zabbix_log ();
    0x000189b0 cmp r6, 0                                 |     
                                                         |     if (r6 != 0) {
    0x000189b2 bne.w 0x18614                             |         goto label_24;
                                                         |     }
    0x000189b6 mov r8, r5                                |     r8 = r5;
    0x000189b8 add r3, sp, 0x178                         |     r3 += arg_178h;
    0x000189ba str r3, [sp, 0x30]                        |     *(arg_30h) = r3;
                                                         | label_40:
    0x000189bc add r4, sp, 0x154                         |     r4 += arg_0h_2;
    0x000189be ldr r2, [sp, 0x30]                        |     r2 = *(arg_30h);
    0x000189c0 mov r1, r4                                |     r1 = r4;
    0x000189c2 mov r0, r6                                |     r0 = r6;
    0x000189c4 bl 0x31a30                                |     r0 = zbx_regexp_compile ();
    0x000189c8 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x000189ca beq.w 0x1713e                             |         goto label_26;
                                                         |     }
    0x000189ce ldr r4, [sp, 0x30]                        |     r4 = *(arg_30h);
    0x000189d0 ldr r5, [sp, 0x7c]                        |     r5 = *(arg_7ch);
    0x000189d2 ldr.w r1, [pc, 0xc04]                     |     r1 = *(0x000195d8);
    0x000189d6 ldr r2, [r4]                              |     r2 = *(r4);
    0x000189d8 ldr r0, [r5]                              |     r0 = *(r5);
    0x000189da add r1, pc                                |     r1 += pc;
    0x000189dc bl 0x44820                                |     zbx_dsprintf ()
    0x000189e0 str r0, [r5]                              |     *(r5) = r0;
    0x000189e2 ldr r0, [r4]                              |     r0 = *(r4);
    0x000189e4 bl 0x3211c                                |     zbx_regexp_err_msg_free ();
    0x000189e8 cmp.w r8, 0                               |     
                                                         |     if (r8 != 0) {
    0x000189ec bne.w 0x18d46                             |         goto label_133;
                                                         |     }
    0x000189f0 cmp r6, 0                                 |     
                                                         |     if (r6 == 0) {
    0x000189f2 beq.w 0x18d52                             |         goto label_134;
                                                         |     }
                                                         | label_32:
    0x000189f6 mov r0, r6                                |     r0 = r6;
    0x000189f8 blx 0xde30                                |     fcn_0000de30 ();
    0x000189fc ldr r3, [sp, 0xb4]                        |     r3 = *(arg_b4h);
    0x000189fe ldr r3, [r3]                              |     r3 = *(r3);
    0x00018a00 cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x00018a02 beq 0x18938                               |         goto label_27;
                                                         |     }
                                                         | label_56:
    0x00018a04 ldr r2, [sp, 0x50]                        |     r2 = *(arg_50h);
    0x00018a06 ldr r1, [sp, 0x58]                        |     r1 = *(arg_58h);
    0x00018a08 ldr r0, [sp, 0xb4]                        |     r0 = *(arg_b4h);
    0x00018a0a bl 0x16b54                                |     destroy_logfile_list ();
    0x00018a0e b 0x18938                                 |     goto label_27;
                                                         | label_111:
    0x00018a72 str r0, [r4, 0x50]                        |     *((r4 + 0x50)) = r0;
    0x00018a74 mov r3, r6                                |     r3 = r6;
    0x00018a76 ldr r2, [sp, 0x50]                        |     r2 = *(arg_50h);
    0x00018a78 ldr r1, [sp, 0x58]                        |     r1 = *(arg_58h);
    0x00018a7a ldr r0, [sp, 0xb4]                        |     r0 = *(arg_b4h);
    0x00018a7c str r4, [sp]                              |     *(sp) = r4;
    0x00018a7e bl 0x153fc                                |     fcn_000153fc (r0, r1, r2, r3, r4);
    0x00018a82 movs r3, 1                                |     r3 = 1;
    0x00018a84 str.w r3, [fp, 0x24]                      |     __asm ("str.w r3, [arg_178h]");
    0x00018a88 b 0x187de                                 |     goto label_28;
                                                         | label_62:
    0x00018aa6 ldr.w r3, [pc, 0xb34]                     |     
    0x00018aaa movw r1, 0xf19                            |     r1 = 0xf19;
    0x00018aae ldr r2, [sp, 0x7c]                        |     r2 = *(arg_7ch);
    0x00018ab0 ldr.w r0, [pc, 0xb2c]                     |     
    0x00018ab4 add r3, pc                                |     r3 = 0x32096;
    0x00018ab6 ldr r2, [r2]                              |     r2 = *(r2);
    0x00018ab8 add r0, pc                                |     r0 = zbx_wildcard_match;
    0x00018aba bl 0x40ed8                                |     zbx_strdup2 ();
                                                         | label_36:
    0x00018abe mov.w r3, -1                              |     r3 = -1;
    0x00018ac2 str r3, [sp, 0x38]                        |     *(arg_38h) = r3;
    0x00018ac4 ldr r3, [sp, 0x7c]                        |     r3 = *(arg_7ch);
    0x00018ac6 str r0, [r3]                              |     *(r3) = r0;
    0x00018ac8 b.w 0x1732a                               |     void (*0x1732a)() ();
                                                         | label_41:
    0x00018b18 cmp r3, 2                                 |     
                                                         |     if (r3 > 2) {
    0x00018b1a bgt.w 0x193d0                             |         goto label_135;
                                                         |     }
                                                         | label_50:
    0x00018b1e movs r5, 3                                |     r5 = 3;
                                                         | label_57:
    0x00018b20 ldr r0, [r4]                              |     r0 = *(r4);
    0x00018b22 bl 0x31a44                                |     zbx_regexp_free ();
    0x00018b26 mov r0, r8                                |     r0 = r8;
    0x00018b28 blx 0xde30                                |     fcn_0000de30 ();
                                                         |     if (r6 != 0) {
    0x00018b2c cbz r6, 0x18b34                           |         
    0x00018b2e mov r0, r6                                |         r0 = r6;
    0x00018b30 blx 0xde30                                |         fcn_0000de30 ();
                                                         |     }
                                                         | label_119:
    0x00018b34 ldr r0, [sp, 0xb4]                        |     r0 = *(arg_b4h);
    0x00018b36 ldr r3, [r0]                              |     r3 = *(r0);
                                                         |     if (r3 != 0) {
    0x00018b38 cbz r3, 0x18b42                           |         
    0x00018b3a ldr r2, [sp, 0x50]                        |         r2 = *(arg_50h);
    0x00018b3c ldr r1, [sp, 0x58]                        |         r1 = *(arg_58h);
    0x00018b3e bl 0x16b54                                |         destroy_logfile_list ();
                                                         |     }
    0x00018b42 cmp r5, 3                                 |     
                                                         |     if (r5 != 3) {
    0x00018b44 bne.w 0x1893c                             |         goto label_29;
                                                         |     }
    0x00018b48 ldrb.w r3, [fp, 0x1c]                     |     r3 = *(arg_1ch);
    0x00018b4c cmp r3, 1                                 |     
                                                         |     if (r3 != 1) {
    0x00018b4e bne 0x18b60                               |         void (*0x18b60)() ();
                                                         |     }
                                                         | label_118:
    0x00018b50 ldr r3, [sp, 0x70]                        |     r3 = *(arg_70h);
    0x00018b52 movs r2, 0                                |     r2 = 0;
    0x00018b54 strb.w r2, [fp, 0x1c]                     |     *(arg_1ch) = r2;
    0x00018b58 ldr r3, [r3]                              |     r3 = *(r3);
    0x00018b5a cmp r3, 3                                 |     
                                                         |     if (r3 > 3) {
    0x00018b5c bgt.w 0x1927c                             |         void (*0x1927c)() ();
                                                         |     }
                                                         | label_109:
    0x00018c8e ldr.w r1, [pc, 0x95c]                     |     
    0x00018c92 mov r0, r7                                |     r0 = r7;
    0x00018c94 add r1, pc                                |     r1 = 0x32286;
    0x00018c96 blx 0xe3b0                                |     r0 = fcn_0000e3b0 ();
    0x00018c9a cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x00018c9c bne.w 0x191d0                             |         goto label_136;
                                                         |     }
                                                         | label_44:
    0x00018ca0 ldr r3, [sp, 0xb0]                        |     r3 = *(arg_b0h);
    0x00018ca2 cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x00018ca4 beq.w 0x17260                             |         goto label_30;
                                                         |     }
    0x00018ca8 movs r3, 3                                |     r3 = 3;
    0x00018caa str r3, [sp, 0xec]                        |     *(arg_ech) = r3;
    0x00018cac b.w 0x16efa                               |     goto label_9;
                                                         | label_79:
    0x00018cb0 ldr.w r1, [pc, 0x93c]                     |     r1 = *(0x000195f0);
    0x00018cb4 mov r0, r7                                |     r0 = r7;
    0x00018cb6 add r1, pc                                |     r1 += pc;
    0x00018cb8 blx 0xe3b0                                |     r0 = fcn_0000e3b0 ();
    0x00018cbc cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x00018cbe bne.w 0x19048                             |         goto label_137;
                                                         |     }
    0x00018cc2 ldr r3, [sp, 0xb0]                        |     r3 = *(arg_b0h);
    0x00018cc4 cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x00018cc6 beq.w 0x17262                             |         goto label_31;
                                                         |     }
    0x00018cca str r0, [sp, 0xec]                        |     *(arg_ech) = r0;
    0x00018ccc b.w 0x16efa                               |     goto label_9;
                                                         | label_104:
    0x00018d2c ldr r4, [sp, 0x30]                        |     r4 = *(arg_30h);
    0x00018d2e ldr r5, [sp, 0x7c]                        |     r5 = *(arg_7ch);
    0x00018d30 ldr.w r1, [pc, 0x8c0]                     |     
    0x00018d34 ldr r2, [r4]                              |     r2 = *(r4);
    0x00018d36 ldr r0, [r5]                              |     r0 = *(r5);
    0x00018d38 add r1, pc                                |     r1 = 0x32330;
    0x00018d3a bl 0x44820                                |     zbx_dsprintf ()
    0x00018d3e str r0, [r5]                              |     *(r5) = r0;
    0x00018d40 ldr r0, [r4]                              |     r0 = *(r4);
    0x00018d42 bl 0x3211c                                |     zbx_regexp_err_msg_free ();
                                                         | label_133:
    0x00018d46 mov r0, r8                                |     r0 = r8;
    0x00018d48 blx 0xde30                                |     fcn_0000de30 ();
    0x00018d4c cmp r6, 0                                 |     
                                                         |     if (r6 != 0) {
    0x00018d4e bne.w 0x189f6                             |         goto label_32;
                                                         |     }
                                                         | label_134:
    0x00018d52 ldr r0, [sp, 0xb4]                        |     r0 = *(arg_b4h);
    0x00018d54 ldr r3, [r0]                              |     r3 = *(r0);
    0x00018d56 cmp r3, 0                                 |     
                                                         |     if (r3 != 0) {
    0x00018d58 bne.w 0x18930                             |         goto label_33;
                                                         |     }
    0x00018d5c mov.w r5, -1                              |     r5 = -1;
    0x00018d60 b 0x18944                                 |     goto label_34;
                                                         | label_87:
    0x00018d62 ldr r4, [sp, 0x7c]                        |     r4 = *(arg_7ch);
    0x00018d64 movw r1, 0xf65                            |     r1 = 0xf65;
    0x00018d68 ldr.w r3, [pc, 0x88c]                     |     r3 = *(0x000195f8);
    0x00018d6c ldr.w r0, [pc, 0x88c]                     |     
    0x00018d70 ldr r2, [r4]                              |     r2 = *(r4);
    0x00018d72 add r3, pc                                |     r3 += pc;
    0x00018d74 add r0, pc                                |     r0 = 0x32374;
    0x00018d76 bl 0x40ed8                                |     zbx_strdup2 ();
    0x00018d7a str r0, [r4]                              |     *(r4) = r0;
    0x00018d7c b.w 0x16e98                               |     goto label_35;
                                                         | label_59:
    0x00018db4 ldr r2, [sp, 0x7c]                        |     r2 = *(arg_7ch);
    0x00018db6 movw r1, 0xf0e                            |     r1 = 0xf0e;
    0x00018dba ldr.w r3, [pc, 0x844]                     |     
    0x00018dbe ldr.w r0, [pc, 0x844]                     |     r0 = *(0x00019604);
    0x00018dc2 ldr r2, [r2]                              |     r2 = *(r2);
    0x00018dc4 add r3, pc                                |     r3 = 0x323ca;
    0x00018dc6 add r0, pc                                |     r0 += pc;
    0x00018dc8 bl 0x40ed8                                |     zbx_strdup2 ();
    0x00018dcc b 0x18abe                                 |     goto label_36;
                                                         |     do {
    0x00018de2 ldr.w r2, [pc, 0x828]                     |         r2 = *(0x0001960c);
    0x00018de6 add r2, pc                                |         r2 += pc;
                                                         | label_124:
    0x00018de8 ldr.w r1, [pc, 0x824]                     |         
    0x00018dec add r1, pc                                |         r1 = 0x32400;
                                                         | label_37:
    0x00018dee strd r2, r1, [sp]                         |         __asm ("strd r2, r1, [sp]");
    0x00018df2 movs r0, 4                                |         r0 = 4;
    0x00018df4 ldr.w r2, [pc, 0x81c]                     |         
    0x00018df8 ldr.w r1, [pc, 0x81c]                     |         
    0x00018dfc add r2, pc                                |         r2 = 0x32414;
    0x00018dfe adds r2, 0x7c                             |         r2 += 0x7c;
    0x00018e00 add r1, pc                                |         r1 = 0x3241c;
    0x00018e02 bl 0x30d1c                                |         zbx_zabbix_log ();
    0x00018e06 b.w 0x170fe                               |         goto label_18;
                                                         | label_123:
    0x00018e0a cmp r6, 0                                 |         
    0x00018e0c beq 0x18de2                               |         
                                                         |     } while (r6 == 0);
    0x00018e0e ldr.w r2, [pc, 0x80c]                     |     
    0x00018e12 mov r1, r6                                |     r1 = r6;
    0x00018e14 add r2, pc                                |     r2 = 0x32436;
    0x00018e16 b 0x18dee                                 |     goto label_37;
                                                         | label_112:
    0x00018e18 ldr.w r3, [pc, 0x804]                     |     
    0x00018e1c ldr r3, [r5, r3]                          |     r3 = *((r5 + r3));
    0x00018e1e str r3, [sp, 0x70]                        |     *(arg_70h) = r3;
    0x00018e20 ldr r3, [r3]                              |     r3 = *(0x19620);
    0x00018e22 cmp r3, 3                                 |     
                                                         |     if (r3 > 3) {
    0x00018e24 bgt.w 0x19258                             |         goto label_138;
                                                         |     }
                                                         | label_43:
    0x00018e28 ldr r0, [r4]                              |     r0 = *(r4);
    0x00018e2a cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x00018e2c bne.w 0x17484                             |         goto label_38;
                                                         |     }
    0x00018e30 b.w 0x17488                               |     goto label_39;
                                                         | label_132:
    0x00018fbe ldr.w r2, [pc, 0x668]                     |     
    0x00018fc2 movs r0, 4                                |     r0 = 4;
    0x00018fc4 ldr.w r1, [pc, 0x664]                     |     
    0x00018fc8 strd r8, r6, [sp]                         |     __asm ("strd r8, r6, [sp]");
    0x00018fcc add r2, pc                                |     r2 = 0x325fa;
    0x00018fce adds r2, 0x6c                             |     r2 += 0x6c;
    0x00018fd0 add r1, pc                                |     r1 = 0x32600;
    0x00018fd2 bl 0x30d1c                                |     zbx_zabbix_log ();
    0x00018fd6 b 0x189bc                                 |     goto label_40;
                                                         | label_137:
    0x00019048 ldr.w r1, [pc, 0x5e8]                     |     r1 = *(0x00019634);
    0x0001904c mov r0, r7                                |     r0 = r7;
    0x0001904e add r1, pc                                |     r1 += pc;
    0x00019050 blx 0xe3b0                                |     r0 = fcn_0000e3b0 ();
    0x00019054 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x00019056 bne.w 0x191be                             |         goto label_139;
                                                         |     }
    0x0001905a ldr r3, [sp, 0xb0]                        |     r3 = *(arg_b0h);
    0x0001905c cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x0001905e beq.w 0x17262                             |         goto label_31;
                                                         |     }
    0x00019062 str r0, [sp, 0xec]                        |     *(arg_ech) = r0;
    0x00019064 b.w 0x16efa                               |     goto label_9;
                                                         | label_70:
    0x00019076 ldr r4, [sp, 0x7c]                        |     r4 = *(arg_7ch);
    0x00019078 movw r1, 0xe5e                            |     r1 = 0xe5e;
    0x0001907c ldr.w r3, [pc, 0x5b8]                     |     r3 = *(0x00019638);
    0x00019080 ldr.w r0, [pc, 0x5b8]                     |     
    0x00019084 ldr r2, [r4]                              |     r2 = *(r4);
    0x00019086 add r3, pc                                |     r3 += pc;
    0x00019088 add r0, pc                                |     r0 = zbx_vector_uint64_remove;
    0x0001908a bl 0x40ed8                                |     zbx_strdup2 ();
    0x0001908e str r0, [r4]                              |     *(r4) = r0;
    0x00019090 b.w 0x16e98                               |     goto label_35;
                                                         | label_126:
    0x000190c4 movs r1, 1                                |     r1 = 1;
    0x000190c6 mov r0, r8                                |     r0 = r8;
    0x000190c8 blx 0xde6c                                |     fcn_0000de6c ();
    0x000190cc ldr r3, [sp, 0x70]                        |     r3 = *(arg_70h);
    0x000190ce ldr r3, [r3]                              |     r3 = *(r3);
    0x000190d0 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x000190d2 beq.w 0x18b18                             |         goto label_41;
                                                         |     }
    0x000190d6 cmp r3, 2                                 |     
                                                         |     if (r3 <= 2) {
    0x000190d8 ble.w 0x187ca                             |         goto label_42;
                                                         |     }
    0x000190dc blx 0xe3d4                                |     r0 = fcn_0000e3d4 ();
    0x000190e0 ldr r0, [r0]                              |     r0 = *(r0);
    0x000190e2 bl 0x30b74                                |     zbx_strerror ();
    0x000190e6 ldr.w r1, [pc, 0x55c]                     |     
    0x000190ea mov r3, r0                                |     r3 = r0;
    0x000190ec mov r2, r8                                |     r2 = r8;
    0x000190ee movs r0, 3                                |     r0 = 3;
    0x000190f0 add r1, pc                                |     r1 = 0x3273a;
    0x000190f2 bl 0x30d1c                                |     zbx_zabbix_log ();
    0x000190f6 b.w 0x187ca                               |     goto label_42;
                                                         | label_60:
    0x00019116 ldr r2, [sp, 0x7c]                        |     r2 = *(arg_7ch);
    0x00019118 movw r1, 0xe32                            |     r1 = 0xe32;
    0x0001911c ldr.w r3, [pc, 0x528]                     |     r3 = *(0x00019648);
    0x00019120 ldr.w r0, [pc, 0x528]                     |     
    0x00019124 ldr r2, [r2]                              |     r2 = *(r2);
    0x00019126 add r3, pc                                |     r3 += pc;
    0x00019128 add r0, pc                                |     r0 = zbx_vector_uint64_nearestindex;
    0x0001912a bl 0x40ed8                                |     zbx_strdup2 ();
    0x0001912e b 0x18abe                                 |     goto label_36;
                                                         | label_61:
    0x00019130 ldr r2, [sp, 0x7c]                        |     r2 = *(arg_7ch);
    0x00019132 movw r1, 0xe3d                            |     r1 = 0xe3d;
    0x00019136 ldr.w r3, [pc, 0x518]                     |     
    0x0001913a ldr.w r0, [pc, 0x518]                     |     r0 = *(0x00019654);
    0x0001913e ldr r2, [r2]                              |     r2 = *(r2);
    0x00019140 add r3, pc                                |     r3 = 0x32796;
    0x00019142 add r0, pc                                |     r0 += pc;
    0x00019144 bl 0x40ed8                                |     zbx_strdup2 ();
    0x00019148 b 0x18abe                                 |     goto label_36;
                                                         | label_114:
    0x0001915c ldr r3, [sp, 0x70]                        |     r3 = *(arg_70h);
    0x0001915e ldr r3, [r3]                              |     r3 = *(r3);
    0x00019160 cmp r3, 2                                 |     
                                                         |     if (r3 <= 2) {
    0x00019162 ble.w 0x18e28                             |         goto label_43;
                                                         |     }
    0x00019166 ldr r3, [r4]                              |     r3 = *(r4);
    0x00019168 movs r0, 3                                |     r0 = 3;
    0x0001916a ldr.w r2, [pc, 0x4ec]                     |     
    0x0001916e ldr.w r1, [pc, 0x4ec]                     |     
    0x00019172 str r3, [sp, 4]                           |     var_4h = r3;
    0x00019174 ldr.w r3, [fp, 0x48]                      |     r3 = *(arg_bp_48h);
    0x00019178 add r2, pc                                |     r2 = 0x327d6;
    0x0001917a adds r2, 0x48                             |     r2 += 0x48;
    0x0001917c add r1, pc                                |     r1 = 0x327de;
    0x0001917e str r3, [sp]                              |     *(sp) = r3;
    0x00019180 ldr.w r3, [fp]                            |     r3 = *(fp);
    0x00019184 bl 0x30d1c                                |     zbx_zabbix_log ();
    0x00019188 b 0x18e28                                 |     goto label_43;
                                                         | label_139:
    0x000191be ldr.w r1, [pc, 0x4a8]                     |     
    0x000191c2 mov r0, r7                                |     r0 = r7;
    0x000191c4 add r1, pc                                |     r1 = 0x32832;
    0x000191c6 blx 0xe3b0                                |     r0 = fcn_0000e3b0 ();
    0x000191ca cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x000191cc beq.w 0x18ca0                             |         goto label_44;
                                                         |     }
                                                         | label_136:
    0x000191d0 ldr r4, [sp, 0x7c]                        |     r4 = *(arg_7ch);
    0x000191d2 movw r1, 0xeb1                            |     r1 = 0xeb1;
    0x000191d6 ldr.w r3, [pc, 0x494]                     |     
    0x000191da ldr.w r0, [pc, 0x494]                     |     r0 = *(0x00019670);
    0x000191de ldr r2, [r4]                              |     r2 = *(r4);
    0x000191e0 add r3, pc                                |     r3 = 0x32852;
    0x000191e2 add r0, pc                                |     r0 += pc;
    0x000191e4 bl 0x40ed8                                |     zbx_strdup2 ();
    0x000191e8 str r0, [r4]                              |     *(r4) = r0;
    0x000191ea b.w 0x16e98                               |     goto label_35;
                                                         | label_131:
    0x000191ee blx 0xe3d4                                |     r0 = fcn_0000e3d4 ();
    0x000191f2 ldr r0, [r0]                              |     r0 = *(r0);
    0x000191f4 bl 0x30b74                                |     zbx_strerror ();
    0x000191f8 ldr.w r1, [pc, 0x478]                     |     r1 = *(0x00019674);
    0x000191fc mov r3, r0                                |     r3 = r0;
    0x000191fe mov r2, r6                                |     r2 = r6;
    0x00019200 mov r0, r4                                |     r0 = r4;
    0x00019202 add r1, pc                                |     r1 += pc;
    0x00019204 bl 0x44820                                |     zbx_dsprintf ()
    0x00019208 ldr r3, [sp, 0x7c]                        |     r3 = *(arg_7ch);
    0x0001920a str r0, [r3]                              |     *(r3) = r0;
    0x0001920c b.w 0x1892a                               |     goto label_25;
                                                         | label_108:
    0x00019210 ldr r3, [sp, 0x7c]                        |     r3 = *(arg_7ch);
    0x00019212 cmp.w sb, 5                               |     
    0x00019216 ldr r0, [r3]                              |     r0 = *(r3);
                                                         |     if (sb == 5) {
    0x00019218 beq.w 0x19444                             |         goto label_140;
                                                         |     }
    0x0001921c ldr.w r2, [pc, 0x458]                     |     
    0x00019220 add r2, pc                                |     r2 = 0x3289c;
                                                         | label_53:
    0x00019222 ldr.w r1, [pc, 0x458]                     |     r1 = *(0x0001967c);
    0x00019226 add r1, pc                                |     r1 += pc;
    0x00019228 bl 0x44820                                |     zbx_dsprintf ()
    0x0001922c ldr r3, [sp, 0x7c]                        |     r3 = *(arg_7ch);
    0x0001922e str r0, [r3]                              |     *(r3) = r0;
    0x00019230 b.w 0x16e98                               |     goto label_35;
                                                         | label_113:
    0x00019234 ldr.w r2, [pc, 0x448]                     |     
    0x00019238 movs r0, 4                                |     r0 = 4;
    0x0001923a str r7, [sp, 4]                           |     var_4h = r7;
    0x0001923c ldr.w r1, [pc, 0x444]                     |     
    0x00019240 ldr.w r3, [fp, 0x48]                      |     r3 = *(arg_bp_48h);
    0x00019244 add r2, pc                                |     r2 = 0x328c8;
    0x00019246 adds r2, 0x48                             |     r2 += 0x48;
    0x00019248 add r1, pc                                |     r1 = 0x328d0;
    0x0001924a str r3, [sp]                              |     *(sp) = r3;
    0x0001924c ldr.w r3, [fp]                            |     r3 = *(fp);
    0x00019250 bl 0x30d1c                                |     zbx_zabbix_log ();
    0x00019254 b.w 0x173cc                               |     goto label_45;
                                                         | label_138:
    0x00019258 ldr r3, [r4]                              |     r3 = *(r4);
    0x0001925a movs r0, 4                                |     r0 = 4;
    0x0001925c ldr.w r2, [pc, 0x428]                     |     r2 = *(0x00019688);
    0x00019260 ldr.w r1, [pc, 0x428]                     |     r1 = *(0x0001968c);
    0x00019264 str r3, [sp, 4]                           |     var_4h = r3;
    0x00019266 ldr.w r3, [fp, 0x48]                      |     r3 = *(arg_bp_48h);
    0x0001926a add r2, pc                                |     r2 += pc;
    0x0001926c adds r2, 0x48                             |     r2 += 0x48;
    0x0001926e add r1, pc                                |     r1 += pc;
    0x00019270 str r3, [sp]                              |     *(sp) = r3;
    0x00019272 ldr.w r3, [fp]                            |     r3 = *(fp);
    0x00019276 bl 0x30d1c                                |     zbx_zabbix_log ();
    0x0001927a b 0x18e28                                 |     goto label_43;
                                                         | label_99:
    0x000192f4 ldr r1, [pc, 0x3a4]                       |     
    0x000192f6 add r1, pc                                |     r1 = 0x32996;
                                                         | label_55:
    0x000192f8 ldr r4, [sp, 0x7c]                        |     r4 = *(arg_7ch);
    0x000192fa movs r2, 0x2f                             |     r2 = 0x2f;
    0x000192fc ldr r0, [r4]                              |     r0 = *(r4);
    0x000192fe bl 0x44820                                |     zbx_dsprintf ()
    0x00019302 ldr r3, [sp, 0x70]                        |     r3 = *(arg_70h);
    0x00019304 str r0, [r4]                              |     *(r4) = r0;
    0x00019306 ldr r3, [r3]                              |     r3 = *(r3);
    0x00019308 cmp r3, 3                                 |     
                                                         |     if (r3 <= 3) {
    0x0001930a ble.w 0x18614                             |         goto label_24;
                                                         |     }
    0x0001930e ldr.w r8, [pc, 0x390]                     |     r8 = *(0x000196a0);
    0x00019312 mov.w r0, -1                              |     r0 = -1;
    0x00019316 bl 0x45514                                |     zbx_result_string ();
    0x0001931a movs r5, 0                                |     r5 = 0;
    0x0001931c mov r3, r0                                |     r3 = r0;
    0x0001931e add r8, pc                                |     r8 += pc;
    0x00019320 mov.w r6, -1                              |     r6 = -1;
    0x00019324 b.w 0x18990                               |     goto label_46;
                                                         | label_102:
    0x00019328 ldr r4, [sp, 0x7c]                        |     r4 = *(arg_7ch);
    0x0001932a mov r2, r8                                |     r2 = r8;
    0x0001932c ldr r1, [pc, 0x374]                       |     
    0x0001932e ldr r0, [r4]                              |     r0 = *(r4);
    0x00019330 add r1, pc                                |     r1 = zbx_vector_str_destroy;
    0x00019332 bl 0x44820                                |     zbx_dsprintf ()
    0x00019336 str r0, [r4]                              |     *(r4) = r0;
    0x00019338 mov r0, r8                                |     r0 = r8;
    0x0001933a blx 0xde30                                |     fcn_0000de30 ();
    0x0001933e cmp r6, 0                                 |     
                                                         |     if (r6 == 0) {
    0x00019340 beq.w 0x1860a                             |         goto label_47;
                                                         |     }
                                                         | label_54:
    0x00019344 mov r0, r6                                |     r0 = r6;
    0x00019346 blx 0xde30                                |     fcn_0000de30 ();
    0x0001934a ldr r3, [sp, 0x70]                        |     r3 = *(arg_70h);
    0x0001934c ldr r3, [r3]                              |     r3 = *(r3);
    0x0001934e cmp r3, 3                                 |     
                                                         |     if (r3 <= 3) {
    0x00019350 ble.w 0x18614                             |         goto label_24;
                                                         |     }
                                                         | label_122:
    0x00019354 mov.w r0, -1                              |     r0 = -1;
    0x00019358 bl 0x45514                                |     zbx_result_string ();
    0x0001935c ldr r2, [pc, 0x348]                       |     
    0x0001935e mov r3, r0                                |     r3 = r0;
    0x00019360 ldr r1, [pc, 0x348]                       |     
    0x00019362 movs r0, 4                                |     r0 = 4;
    0x00019364 add r2, pc                                |     r2 = 0x32a10;
    0x00019366 strd r2, r2, [sp]                         |     __asm ("strd r2, r2, [sp]");
    0x0001936a add r1, pc                                |     r1 = 0x32a1a;
    0x0001936c ldr r2, [pc, 0x340]                       |     
    0x0001936e add r2, pc                                |     r2 = 0x32a22;
    0x00019370 adds r2, 0x6c                             |     r2 += 0x6c;
    0x00019372 bl 0x30d1c                                |     zbx_zabbix_log ();
    0x00019376 b.w 0x18614                               |     goto label_24;
                                                         | label_75:
    0x0001937a ldrb.w r1, [fp, 0x1d]                     |     r1 = *(arg_1dh_2);
    0x0001937e b.w 0x16df4                               |     goto label_48;
                                                         | label_96:
    0x00019382 ldr r4, [sp, 0x7c]                        |     r4 = *(arg_7ch);
    0x00019384 movs r1, 0x86                             |     r1 = 0x86;
    0x00019386 ldr r3, [pc, 0x32c]                       |     
    0x00019388 ldr r0, [pc, 0x32c]                       |     
    0x0001938a ldr r2, [r4]                              |     r2 = *(r4);
    0x0001938c add r3, pc                                |     r3 = 0x32a46;
    0x0001938e add r0, pc                                |     r0 = 0x32a4a;
    0x00019390 bl 0x40ed8                                |     zbx_strdup2 ();
    0x00019394 b.w 0x18608                               |     goto label_49;
                                                         | label_95:
    0x00019398 ldr r4, [pc, 0x320]                       |     
    0x0001939a movw r3, 0x777                            |     r3 = 0x777;
    0x0001939e str r3, [sp]                              |     *(sp) = r3;
    0x000193a0 ldr r1, [pc, 0x31c]                       |     
    0x000193a2 ldr r0, [pc, 0x320]                       |     
    0x000193a4 add r4, pc                                |     r4 = 0x32a64;
    0x000193a6 ldr r3, [pc, 0x320]                       |     
    0x000193a8 adds r4, 0x8c                             |     r4 += 0x8c;
    0x000193aa mov r2, r4                                |     r2 = r4;
    0x000193ac add r1, pc                                |     r1 = zbx_vector_str_append_ptr;
    0x000193ae add r0, pc                                |     r0 = 0x32a78;
    0x000193b0 add r3, pc                                |     r3 = 0x32a7e;
    0x000193b2 bl 0x43cd4                                |     zbx_error ();
    0x000193b6 bl 0x356ac                                |     zbx_backtrace ();
    0x000193ba mov r2, r4                                |     r2 = r4;
    0x000193bc ldr r1, [pc, 0x30c]                       |     
    0x000193be ldr r4, [sp, 0x7c]                        |     r4 = *(arg_7ch);
    0x000193c0 ldr r3, [sp, 0xd0]                        |     r3 = *(arg_d0h);
    0x000193c2 add r1, pc                                |     r1 = 0x32a92;
    0x000193c4 ldr r0, [r4]                              |     r0 = *(0x32a64);
    0x000193c6 bl 0x44820                                |     zbx_dsprintf ()
    0x000193ca str r0, [r4]                              |     *(r4) = r0;
    0x000193cc b.w 0x174ea                               |     void (*0x174ea)() ();
                                                         | label_135:
    0x000193d0 ldr r1, [pc, 0x2fc]                       |     
    0x000193d2 mov r3, r8                                |     r3 = r8;
    0x000193d4 mov r2, r6                                |     r2 = r6;
    0x000193d6 movs r0, 3                                |     r0 = 3;
    0x000193d8 add r1, pc                                |     r1 = 0x32aac;
    0x000193da bl 0x30d1c                                |     zbx_zabbix_log ();
    0x000193de b.w 0x18b1e                               |     goto label_50;
                                                         | label_117:
    0x00019416 ldr r1, [pc, 0x2c0]                       |     
    0x00019418 movs r0, 3                                |     r0 = 3;
    0x0001941a ldr r2, [r7]                              |     r2 = *(r7);
    0x0001941c add r1, pc                                |     r1 = 0x32afa;
    0x0001941e bl 0x30d1c                                |     zbx_zabbix_log ();
    0x00019422 b.w 0x17480                               |     goto label_51;
                                                         | label_116:
    0x00019426 strd r3, r2, [sp]                         |     __asm ("strd r3, r2, [sp]");
    0x0001942a mov r0, r7                                |     r0 = r7;
    0x0001942c ldr r3, [pc, 0x2ac]                       |     
    0x0001942e mov r2, r4                                |     r2 = r4;
    0x00019430 ldr r1, [sp, 0xb8]                        |     r1 = *(arg_b8h);
    0x00019432 add r3, pc                                |     r3 = 0x32b12;
    0x00019434 bl 0x43fb4                                |     zbx_snprintf_alloc ();
    0x00019438 ldr.w r3, [r8]                            |     r3 = *(r8);
    0x0001943c str.w r3, [fp, 0x18]                      |     __asm ("str.w r3, [arg_18h]");
    0x00019440 b.w 0x17476                               |     goto label_52;
                                                         | label_140:
    0x00019444 ldr r2, [pc, 0x298]                       |     
    0x00019446 add r2, pc                                |     r2 = 0x32b2a;
    0x00019448 b 0x19222                                 |     goto label_53;
                                                         | label_101:
    0x00019490 ldr r7, [sp, 0x7c]                        |     r7 = *(arg_7ch);
    0x00019492 blx 0xe3d4                                |     r0 = fcn_0000e3d4 ();
    0x00019496 ldr r0, [r0]                              |     r0 = *(r0);
    0x00019498 ldr r4, [r7]                              |     r4 = *(r7);
    0x0001949a bl 0x30b74                                |     zbx_strerror ();
    0x0001949e ldr r1, [pc, 0x244]                       |     
    0x000194a0 mov r2, r0                                |     r2 = r0;
    0x000194a2 mov r0, r4                                |     r0 = r4;
    0x000194a4 add r1, pc                                |     r1 = 0x32b8e;
    0x000194a6 bl 0x44820                                |     zbx_dsprintf ()
    0x000194aa str r0, [r7]                              |     *(r7) = r0;
    0x000194ac mov r0, r8                                |     r0 = r8;
    0x000194ae blx 0xde30                                |     fcn_0000de30 ();
    0x000194b2 cmp r6, 0                                 |     
                                                         |     if (r6 != 0) {
    0x000194b4 bne.w 0x19344                             |         goto label_54;
                                                         |     }
    0x000194b8 b.w 0x1860a                               |     goto label_47;
                                                         | label_121:
    0x000194cc mov.w r0, -1                              |     r0 = -1;
    0x000194d0 bl 0x45514                                |     zbx_result_string ();
    0x000194d4 ldr r1, [pc, 0x210]                       |     
    0x000194d6 mov r3, r0                                |     r3 = r0;
    0x000194d8 mov r2, r4                                |     r2 = r4;
    0x000194da movs r0, 4                                |     r0 = 4;
    0x000194dc add r1, pc                                |     r1 = 0x32bc8;
    0x000194de strd r1, r1, [sp]                         |     __asm ("strd r1, r1, [sp]");
    0x000194e2 ldr r1, [pc, 0x208]                       |     
    0x000194e4 add r1, pc                                |     r1 = 0x32bd6;
    0x000194e6 bl 0x30d1c                                |     zbx_zabbix_log ();
    0x000194ea ldr r1, [pc, 0x204]                       |     
    0x000194ec add r1, pc                                |     r1 = 0x32be2;
    0x000194ee b 0x192f8                                 |     goto label_55;
                                                         | label_110:
    0x000194f0 ldr r3, [sp, 0x7c]                        |     r3 = *(arg_7ch);
    0x000194f2 mov r2, r4                                |     r2 = r4;
    0x000194f4 ldr r1, [pc, 0x1fc]                       |     
    0x000194f6 ldr r0, [r3]                              |     r0 = *(r3);
    0x000194f8 add r1, pc                                |     r1 = 0x32bf0;
    0x000194fa bl 0x44820                                |     zbx_dsprintf ()
    0x000194fe b.w 0x18abe                               |     goto label_36;
                                                         | label_86:
    0x00019502 ldr r3, [sp, 0x7c]                        |     r3 = *(arg_7ch);
    0x00019504 cmp.w sl, 8                               |     
    0x00019508 ldr r0, [r3]                              |     r0 = *(r3);
                                                         |     if (sl == 8) {
    0x0001950a beq 0x195c0                               |         goto label_141;
                                                         |     }
    0x0001950c ldr r2, [pc, 0x1e8]                       |     
    0x0001950e add r2, pc                                |     r2 = 0x32c0a;
                                                         | label_58:
    0x00019510 ldr r1, [pc, 0x1e8]                       |     
    0x00019512 add r1, pc                                |     r1 = 0x32c12;
    0x00019514 bl 0x44820                                |     zbx_dsprintf ()
    0x00019518 ldr r3, [sp, 0x7c]                        |     r3 = *(arg_7ch);
    0x0001951a str r0, [r3]                              |     *(r3) = r0;
    0x0001951c b.w 0x16e98                               |     goto label_35;
                                                         | label_129:
    0x00019520 ldr r3, [sp, 0xb4]                        |     r3 = *(arg_b4h);
    0x00019522 ldr.w fp, [sp, 0x38]                      |     fp = *(arg_38h);
    0x00019526 ldr r3, [r3]                              |     r3 = *(r3);
    0x00019528 cmp r3, 0                                 |     
                                                         |     if (r3 != 0) {
    0x0001952a bne.w 0x18a04                             |         goto label_56;
                                                         |     }
    0x0001952e b.w 0x18938                               |     goto label_27;
                                                         | label_125:
    0x0001954e ldr r3, [sp, 0x7c]                        |     r3 = *(arg_7ch);
    0x00019550 ldr r5, [r3]                              |     r5 = *(r3);
    0x00019552 blx 0xe3d4                                |     r0 = fcn_0000e3d4 ();
    0x00019556 ldr r0, [r0]                              |     r0 = *(r0);
    0x00019558 bl 0x30b74                                |     zbx_strerror ();
    0x0001955c ldr r1, [pc, 0x1a0]                       |     
    0x0001955e mov r3, r0                                |     r3 = r0;
    0x00019560 mov r2, r8                                |     r2 = r8;
    0x00019562 mov r0, r5                                |     r0 = r5;
    0x00019564 add r1, pc                                |     r1 = 0x32c68;
    0x00019566 bl 0x44820                                |     zbx_dsprintf ()
                                                         |     do {
    0x0001956a ldr r3, [sp, 0x7c]                        |         r3 = *(arg_7ch);
    0x0001956c mov.w r5, -1                              |         r5 = -1;
    0x00019570 str r0, [r3]                              |         *(r3) = r0;
    0x00019572 b.w 0x18b20                               |         goto label_57;
                                                         | label_105:
    0x000195a2 ldr r3, [sp, 0x7c]                        |         r3 = *(arg_7ch);
    0x000195a4 ldr r5, [r3]                              |         r5 = *(r3);
    0x000195a6 blx 0xe3d4                                |         r0 = fcn_0000e3d4 ();
    0x000195aa ldr r0, [r0]                              |         r0 = *(r0);
    0x000195ac bl 0x30b74                                |         zbx_strerror ();
    0x000195b0 ldr r1, [pc, 0x150]                       |         
    0x000195b2 mov r3, r0                                |         r3 = r0;
    0x000195b4 mov r2, r8                                |         r2 = r8;
    0x000195b6 mov r0, r5                                |         r0 = r5;
    0x000195b8 add r1, pc                                |         r1 = 0x32cc0;
    0x000195ba bl 0x44820                                |         zbx_dsprintf ()
    0x000195be b 0x1956a                                 |         
                                                         |     } while (1);
                                                         | label_141:
    0x000195c0 ldr r2, [pc, 0x144]                       |     
    0x000195c2 add r2, pc                                |     r2 = 0x32cce;
    0x000195c4 b 0x19510                                 |     goto label_58;
                                                         | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x30ba4 */
                                                         | #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;
                                                         |     int16_t var_ch;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
                                                         |     r3 = arg4;
    0x00030ba4 push.w {r4, r5, r6, r7, r8, lr}           |     
    0x00030ba8 cmp r0, 1                                 |     
    0x00030baa ldr r7, [pc, 0x134]                       |     
    0x00030bac sub sp, 0x10                              |     
    0x00030bae ldr r4, [pc, 0x134]                       |     
    0x00030bb0 ldr r5, [pc, 0x134]                       |     
    0x00030bb2 add r7, pc                                |     r7 = 0x61898;
    0x00030bb4 str.w r0, [r7, 0xc90]                     |     __asm ("str.w r0, [r7, 0xc90]");
    0x00030bb8 add r4, pc                                |     r4 = 0x618a2;
    0x00030bba add r5, pc                                |     r5 = 0x618a6;
    0x00030bbc str r1, [r4, 4]                           |     *((r4 + 4)) = r1;
                                                         |     if (r0 == 1) {
    0x00030bbe beq 0x30c3c                               |         goto label_3;
                                                         |     }
    0x00030bc0 cmp r0, 2                                 |     
    0x00030bc2 mov r6, r3                                |     r6 = r3;
                                                         |     if (r0 == 2) {
    0x00030bc4 beq 0x30bfa                               |         goto label_4;
                                                         |     }
    0x00030bc6 cmp r0, 0                                 |     
    0x00030bc8 it ne                                     |     
                                                         |     if (r0 != 0) {
    0x00030bca cmpne r0, 3                               |         __asm ("cmpne r0, 3");
                                                         |     }
                                                         |     if (r0 != 0) {
    0x00030bcc bne 0x30c7a                               |         goto label_5;
                                                         |     }
    0x00030bce mov r2, r3                                |     r2 = r3;
    0x00030bd0 mov r0, r4                                |     r0 = r4;
    0x00030bd2 movs r1, 0                                |     r1 = 0;
    0x00030bd4 bl 0x344e4                                |     r0 = zbx_mutex_create ();
    0x00030bd8 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x00030bda bne 0x30c94                               |         goto label_6;
                                                         |     }
    0x00030bdc ldr r3, [pc, 0x10c]                       |     r3 = *(0x30cec);
    0x00030bde ldr r3, [r5, r3]                          |     r3 = *((r5 + r3));
    0x00030be0 ldr r0, [r3]                              |     r0 = *(0x30cec);
    0x00030be2 blx 0xdf20                                |     fcn_0000df20 ();
    0x00030be6 movs r1, 2                                |     r1 = 2;
    0x00030be8 movs r0, 1                                |     r0 = 1;
    0x00030bea blx 0xe1f8                                |     closelog ();
    0x00030bee adds r0, 1                                |     r0++;
                                                         |     if (r0 == 1) {
    0x00030bf0 beq 0x30c4e                               |         goto label_7;
                                                         |     }
                                                         |     do {
                                                         | label_0:
    0x00030bf2 movs r0, 0                                |         r0 = 0;
                                                         | label_1:
    0x00030bf4 add sp, 0x10                              |         
    0x00030bf6 pop.w {r4, r5, r6, r7, r8, pc}            |         
                                                         | label_4:
    0x00030bfa mov r0, r2                                |         r0 = r2;
    0x00030bfc mov r8, r2                                |         r8 = r2;
    0x00030bfe blx 0xdf68                                |         r0 = fcn_0000df68 ();
    0x00030c02 cmp.w r0, 0x800                           |         
                                                         |         if (r0 >= 0x800) {
    0x00030c06 bhs 0x30caa                               |             goto label_8;
                                                         |         }
    0x00030c08 mov r2, r6                                |         r2 = r6;
    0x00030c0a mov r0, r4                                |         r0 = r4;
    0x00030c0c movs r1, 0                                |         r1 = 0;
    0x00030c0e bl 0x344e4                                |         r0 = zbx_mutex_create ();
    0x00030c12 cmp r0, 0                                 |         
                                                         |         if (r0 != 0) {
    0x00030c14 bne 0x30c8e                               |             goto label_2;
                                                         |         }
    0x00030c16 ldr r1, [pc, 0xd8]                        |         
    0x00030c18 mov r0, r8                                |         r0 = r8;
    0x00030c1a add r1, pc                                |         r1 = 0x61910;
    0x00030c1c blx 0xdf90                                |         r0 = fcn_0000df90 ();
    0x00030c20 mov r4, r0                                |         r4 = r0;
    0x00030c22 cmp r0, 0                                 |         
                                                         |         if (r0 == 0) {
    0x00030c24 beq 0x30cc0                               |             goto label_9;
                                                         |         }
    0x00030c26 mov.w r2, 0x800                           |         r2 = 0x800;
    0x00030c2a mov r1, r8                                |         r1 = r8;
    0x00030c2c add.w r0, r7, 0x480                       |         r0 = r7 + 0x480;
    0x00030c30 bl 0x4465c                                |         zbx_strlcpy ();
    0x00030c34 mov r0, r4                                |         r0 = r4;
    0x00030c36 blx 0xdc8c                                |         fcn_0000dc8c ();
    0x00030c3a b 0x30bf2                                 |         
                                                         |     } while (1);
                                                         | label_3:
    0x00030c3c ldr r3, [pc, 0xb4]                        |     r3 = *(0x30cf4);
    0x00030c3e mov r1, r0                                |     r1 = r0;
    0x00030c40 movs r2, 0x18                             |     r2 = 0x18;
    0x00030c42 ldr r3, [r5, r3]                          |     r3 = *((r5 + r3));
    0x00030c44 mov r0, r3                                |     r0 = r3;
    0x00030c46 str r3, [sp, 0xc]                         |     var_ch = r3;
    0x00030c48 blx 0xde78                                |     fcn_0000de78 ();
    0x00030c4c b 0x30bf2                                 |     goto label_0;
                                                         | label_7:
    0x00030c4e blx 0xe3d4                                |     r0 = fcn_0000e3d4 ();
    0x00030c52 ldr r5, [r0]                              |     r5 = *(r0);
    0x00030c54 adds r7, 0x80                             |     r7 += 0x80;
    0x00030c56 mov r0, r5                                |     r0 = r5;
    0x00030c58 blx 0xdb48                                |     fcn_0000db48 ();
    0x00030c5c ldr r2, [pc, 0x98]                        |     
    0x00030c5e mov r3, r5                                |     r3 = r5;
    0x00030c60 str r0, [sp]                              |     *(sp) = r0;
    0x00030c62 mov.w r1, 0x400                           |     r1 = 0x400;
    0x00030c66 mov r0, r7                                |     r0 = r7;
    0x00030c68 add r2, pc                                |     r2 = 0x61964;
    0x00030c6a bl 0x43f38                                |     zbx_snprintf ();
    0x00030c6e ldr r0, [pc, 0x8c]                        |     
    0x00030c70 mov r1, r7                                |     r1 = r7;
    0x00030c72 add r0, pc                                |     r0 = 0x61974;
    0x00030c74 bl 0x43cd4                                |     zbx_error ();
    0x00030c78 b 0x30bf2                                 |     goto label_0;
                                                         | label_5:
    0x00030c7a ldr r3, [pc, 0x84]                        |     
    0x00030c7c movw r1, 0x159                            |     r1 = 0x159;
    0x00030c80 ldr r0, [pc, 0x80]                        |     
    0x00030c82 ldr r2, [r6]                              |     r2 = *(r6);
    0x00030c84 add r3, pc                                |     r3 = 0x6198a;
    0x00030c86 add r0, pc                                |     r0 = 0x6198e;
    0x00030c88 bl 0x40ed8                                |     zbx_strdup2 ();
    0x00030c8c str r0, [r6]                              |     *(r6) = r0;
                                                         |     do {
                                                         | label_2:
    0x00030c8e mov.w r0, -1                              |         r0 = -1;
    0x00030c92 b 0x30bf4                                 |         goto label_1;
                                                         | label_6:
    0x00030c94 ldr r3, [pc, 0x70]                        |         
    0x00030c96 movw r1, 0x14f                            |         r1 = 0x14f;
    0x00030c9a ldr r0, [pc, 0x70]                        |         
    0x00030c9c ldr r2, [r6]                              |         r2 = *(r6);
    0x00030c9e add r3, pc                                |         r3 = 0x619aa;
    0x00030ca0 add r0, pc                                |         r0 = 0x619b2;
    0x00030ca2 bl 0x40ed8                                |         zbx_strdup2 ();
    0x00030ca6 str r0, [r6]                              |         *(r6) = r0;
    0x00030ca8 b 0x30c8e                                 |         
                                                         |     } while (1);
                                                         | label_8:
    0x00030caa ldr r3, [pc, 0x64]                        |     
    0x00030cac movw r1, 0x13b                            |     r1 = 0x13b;
    0x00030cb0 ldr r0, [pc, 0x60]                        |     
    0x00030cb2 ldr r2, [r6]                              |     r2 = *(r6);
    0x00030cb4 add r3, pc                                |     r3 = 0x619ca;
    0x00030cb6 add r0, pc                                |     r0 = 0x619ce;
    0x00030cb8 bl 0x40ed8                                |     zbx_strdup2 ();
    0x00030cbc str r0, [r6]                              |     *(r6) = r0;
    0x00030cbe b 0x30c8e                                 |     goto label_2;
                                                         | label_9:
    0x00030cc0 blx 0xe3d4                                |     r0 = fcn_0000e3d4 ();
    0x00030cc4 ldr r0, [r0]                              |     r0 = *(r0);
    0x00030cc6 ldr r4, [r6]                              |     r4 = *(r6);
    0x00030cc8 bl 0x30b74                                |     zbx_strerror ();
    0x00030ccc ldr r1, [pc, 0x48]                        |     
    0x00030cce mov r3, r0                                |     r3 = r0;
    0x00030cd0 mov r2, r8                                |     r2 = r8;
    0x00030cd2 mov r0, r4                                |     r0 = r4;
    0x00030cd4 add r1, pc                                |     r1 = 0x619f0;
    0x00030cd6 bl 0x44820                                |     zbx_dsprintf ()
    0x00030cda str r0, [r6]                              |     *(r6) = r0;
    0x00030cdc b 0x30c8e                                 |     goto label_2;
                                                         | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x4494c */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.zbx_check_hostname ()            | void zbx_check_hostname (int16_t arg1, uint32_t arg2) {
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x0004494c push {r3, r4, r5, r6, r7, lr}     |     
    0x0004494e mov r7, r1                        |     r7 = r1;
    0x00044950 ldrb r4, [r0]                     |     r4 = *(r0);
                                                 |     if (r4 == 0) {
    0x00044952 cbz r4, 0x44990                   |         goto label_1;
                                                 |     }
    0x00044954 mov r6, r0                        |     r6 = r0;
    0x00044956 mov r5, r0                        |     r5 = r0;
    0x00044958 b 0x44960                         |     
                                                 |     while (r0 != 1) {
    0x0004495a ldrb r4, [r5, 1]!                 |         r4 = *((r5 += 1));
                                                 |         if (r4 == 0) {
    0x0004495e cbz r4, 0x44982                   |             goto label_2;
                                                 |         }
    0x00044960 mov r0, r4                        |         r0 = r4;
    0x00044962 bl 0x42cc0                        |         is_hostname_char ();
    0x00044966 adds r0, 1                        |         r0++;
    0x00044968 mov r3, r5                        |         r3 = r5;
    0x0004496a bne 0x4495a                       |         
                                                 |     }
                                                 |     if (r7 == 0) {
    0x0004496c cbz r7, 0x4497c                   |         goto label_0;
                                                 |     }
    0x0004496e ldr r1, [pc, 0x50]                |     
    0x00044970 movs r0, 0                        |     r0 = 0;
    0x00044972 ldrb r2, [r5]                     |     r2 = *(r5);
    0x00044974 add r1, pc                        |     r1 = 0x8933a;
    0x00044976 bl 0x44820                        |     zbx_dsprintf ()
    0x0004497a str r0, [r7]                      |     *(r7) = r0;
                                                 |     do {
                                                 | label_0:
    0x0004497c mov.w r0, -1                      |         r0 = -1;
    0x00044980 pop {r3, r4, r5, r6, r7, pc}      |         
                                                 | label_2:
    0x00044982 rsb.w r6, r6, 1                   |         r6 = 1 - r6;
    0x00044986 add r6, r3                        |         r6 += r3;
    0x00044988 cmp r6, 0x80                      |         
                                                 |         if (r6 > 0x80) {
    0x0004498a bgt 0x449aa                       |             goto label_3;
                                                 |         }
    0x0004498c mov r0, r4                        |         r0 = r4;
    0x0004498e pop {r3, r4, r5, r6, r7, pc}      |         
                                                 | label_1:
    0x00044990 cmp r1, 0                         |         
    0x00044992 beq 0x4497c                       |         
                                                 |     } while (r1 == 0);
    0x00044994 ldr r3, [pc, 0x2c]                |     
    0x00044996 mov r2, r4                        |     r2 = r4;
    0x00044998 ldr r0, [pc, 0x2c]                |     
    0x0004499a movw r1, 0x351                    |     r1 = 0x351;
    0x0004499e add r3, pc                        |     r3 = 0x89366;
    0x000449a0 add r0, pc                        |     r0 = 0x8936c;
    0x000449a2 bl 0x40ed8                        |     zbx_strdup2 ();
    0x000449a6 str r0, [r7]                      |     *(r7) = r0;
    0x000449a8 b 0x4497c                         |     goto label_0;
                                                 | label_3:
    0x000449aa cmp r7, 0                         |     
                                                 |     if (r7 == 0) {
    0x000449ac beq 0x4497c                       |         goto label_0;
                                                 |     }
    0x000449ae ldr r1, [pc, 0x1c]                |     
    0x000449b0 movs r2, 0x80                     |     r2 = 0x80;
    0x000449b2 mov r0, r4                        |     r0 = r4;
    0x000449b4 add r1, pc                        |     r1 = 0x89386;
    0x000449b6 bl 0x44820                        |     zbx_dsprintf ()
    0x000449ba str r0, [r7]                      |     *(r7) = r0;
    0x000449bc b 0x4497c                         |     goto label_0;
                                                 | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x1a324 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.zbx_create_persistent_server_directory ()            | void zbx_create_persistent_server_directory (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                     |     int16_t var_4h;
                                                                     |     int16_t var_8h;
                                                                     |     int16_t var_ch;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
                                                                     |     r3 = arg4;
    0x0001a324 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0001a328 mov sl, r2                                            |     sl = r2;
    0x0001a32a ldr r6, [pc, 0x194]                                   |     
    0x0001a32c sub sp, 0x14                                          |     
    0x0001a32e mov r8, r0                                            |     r8 = r0;
    0x0001a330 ldr r5, [pc, 0x190]                                   |     r5 = *(0x1a4c4);
    0x0001a332 add r6, pc                                            |     r6 = 0x347f8;
    0x0001a334 ldr r4, [pc, 0x190]                                   |     
    0x0001a336 ldr r2, [pc, 0x194]                                   |     r2 = *(0x1a4ce);
    0x0001a338 ldr r5, [r6, r5]                                      |     
    0x0001a33a mov r6, r3                                            |     r6 = r3;
    0x0001a33c add r4, pc                                            |     r4 = 0x34808;
    0x0001a33e mov r3, r4                                            |     r3 = r4;
    0x0001a340 ldr r5, [r5]                                          |     r5 = *(0x347f8);
    0x0001a342 str r5, [sp, 0xc]                                     |     var_ch = r5;
    0x0001a344 mov.w r5, 0                                           |     r5 = 0;
    0x0001a348 str r1, [sp, 4]                                       |     var_4h = r1;
    0x0001a34a movs r1, 0                                            |     r1 = 0;
    0x0001a34c str r1, [sp, 8]                                       |     var_8h = r1;
    0x0001a34e ldr r7, [r4, r2]                                      |     r7 = *(0x34808);
    0x0001a350 ldr r3, [r7]                                          |     r3 = *(0x34808);
    0x0001a352 cmp r3, 3                                             |     
                                                                     |     if (r3 > 3) {
    0x0001a354 bgt.w 0x1a466                                         |         goto label_6;
                                                                     |     }
                                                                     | label_3:
    0x0001a358 ldrb.w r3, [r8]                                       |     r3 = *(r8);
    0x0001a35c cmp r3, 0x2f                                          |     
                                                                     |     if (r3 != 0x2f) {
    0x0001a35e bne.w 0x1a4ae                                         |         goto label_7;
                                                                     |     }
    0x0001a362 ldr r0, [pc, 0x16c]                                   |     
    0x0001a364 mov r3, r8                                            |     r3 = r8;
    0x0001a366 ldr.w sb, [pc, 0x16c]                                 |     
    0x0001a36a movs r2, 0                                            |     r2 = 0;
    0x0001a36c ldr.w fp, [pc, 0x168]                                 |     
    0x0001a370 movs r1, 0xf5                                         |     r1 = 0xf5;
    0x0001a372 add r0, pc                                            |     r0 = 0x34848;
    0x0001a374 add sb, pc                                            |     
    0x0001a376 bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0001a37a add.w sb, sb, 0x1c                                    |     sb = 0x3486a;
    0x0001a37e mov r5, r0                                            |     r5 = r0;
    0x0001a380 add fp, pc                                            |     fp = 0x3485c;
    0x0001a382 mov r4, r0                                            |     r4 = r0;
                                                                     |     do {
                                                                     | label_0:
    0x0001a384 ldrb r1, [r4, 1]!                                     |         r1 = *((r4 += 1));
    0x0001a388 cmp r1, 0x2f                                          |         
                                                                     |         if (r1 == 0x2f) {
    0x0001a38a beq 0x1a414                                           |             goto label_8;
                                                                     |         }
    0x0001a38c cmp r1, 0                                             |         
    0x0001a38e bne 0x1a384                                           |         
                                                                     |     } while (r1 != 0);
    0x0001a390 ldr r3, [r7]                                          |     r3 = *(r7);
    0x0001a392 cmp r3, 3                                             |     
                                                                     |     if (r3 > 3) {
    0x0001a394 bgt 0x1a452                                           |         goto label_9;
                                                                     |     }
                                                                     | label_2:
    0x0001a396 mov r1, r6                                            |     r1 = r6;
    0x0001a398 mov r0, r5                                            |     r0 = r5;
    0x0001a39a bl 0x197f0                                            |     r0 = fcn_000197f0 (r0, r1);
    0x0001a39e cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0001a3a0 bne 0x1a446                                           |         goto label_4;
                                                                     |     }
                                                                     |     if (r5 != 0) {
    0x0001a3a2 cbz r5, 0x1a3aa                                       |         
    0x0001a3a4 mov r0, r5                                            |         r0 = r5;
    0x0001a3a6 blx 0xde30                                            |         fcn_0000de30 ();
                                                                     |     }
    0x0001a3aa ldr r1, [pc, 0x130]                                   |     
    0x0001a3ac mov r3, sl                                            |     r3 = sl;
    0x0001a3ae ldr r2, [sp, 4]                                       |     r2 = var_4h;
    0x0001a3b0 movs r0, 0                                            |     r0 = 0;
    0x0001a3b2 add r1, pc                                            |     r1 = 0x34894;
    0x0001a3b4 bl 0x44820                                            |     r0 = zbx_dsprintf ()
    0x0001a3b8 mov r4, r0                                            |     r4 = r0;
    0x0001a3ba bl 0x19748                                            |     r0 = fcn_00019748 (r0);
    0x0001a3be mov r5, r0                                            |     r5 = r0;
                                                                     |     if (r4 != 0) {
    0x0001a3c0 cbz r4, 0x1a3c8                                       |         
    0x0001a3c2 mov r0, r4                                            |         r0 = r4;
    0x0001a3c4 blx 0xde30                                            |         fcn_0000de30 ();
                                                                     |     }
    0x0001a3c8 ldr r1, [pc, 0x114]                                   |     
    0x0001a3ca mov r3, r5                                            |     r3 = r5;
    0x0001a3cc mov r2, r8                                            |     r2 = r8;
    0x0001a3ce movs r0, 0                                            |     r0 = 0;
    0x0001a3d0 add r1, pc                                            |     r1 = 0x348b4;
    0x0001a3d2 bl 0x44820                                            |     r0 = zbx_dsprintf ()
    0x0001a3d6 mov r4, r0                                            |     r4 = r0;
                                                                     |     if (r5 != 0) {
    0x0001a3d8 cbz r5, 0x1a3e0                                       |         
    0x0001a3da mov r0, r5                                            |         r0 = r5;
    0x0001a3dc blx 0xde30                                            |         fcn_0000de30 ();
                                                                     |     }
    0x0001a3e0 add r1, sp, 8                                         |     r1 += var_8h;
    0x0001a3e2 mov r0, r4                                            |     r0 = r4;
    0x0001a3e4 bl 0x197f0                                            |     r0 = fcn_000197f0 (r0, r1);
    0x0001a3e8 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0001a3ea bne 0x1a47a                                           |         goto label_10;
                                                                     |     }
    0x0001a3ec movs r1, 7                                            |     r1 = 7;
    0x0001a3ee mov r0, r4                                            |     r0 = r4;
    0x0001a3f0 blx 0xde6c                                            |     r0 = fcn_0000de6c ();
    0x0001a3f4 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0001a3f6 bne 0x1a498                                           |         goto label_11;
                                                                     |     }
                                                                     | label_1:
    0x0001a3f8 ldr r2, [pc, 0xe8]                                    |     
    0x0001a3fa ldr r3, [pc, 0xc8]                                    |     r3 = *(0x1a4c6);
    0x0001a3fc add r2, pc                                            |     r2 = 0x348e4;
    0x0001a3fe ldr r3, [r2, r3]                                      |     r3 = *(0x348e4);
    0x0001a400 ldr r2, [r3]                                          |     r2 = *(0x348e4);
    0x0001a402 ldr r3, [sp, 0xc]                                     |     r3 = var_ch;
    0x0001a404 eors r2, r3                                           |     r2 ^= r3;
    0x0001a406 mov.w r3, 0                                           |     r3 = 0;
                                                                     |     if (r2 != r3) {
    0x0001a40a bne 0x1a4bc                                           |         goto label_12;
                                                                     |     }
    0x0001a40c mov r0, r4                                            |     r0 = r4;
    0x0001a40e add sp, 0x14                                          |     
    0x0001a410 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
                                                                     | label_8:
    0x0001a414 movs r3, 0                                            |     r3 = 0;
    0x0001a416 strb r3, [r4]                                         |     *(r4) = r3;
    0x0001a418 ldr r3, [r7]                                          |     r3 = *(r7);
    0x0001a41a cmp r3, 3                                             |     
                                                                     |     if (r3 > 3) {
    0x0001a41c bgt 0x1a42e                                           |         goto label_13;
                                                                     |     }
    0x0001a41e mov r1, r6                                            |     r1 = r6;
    0x0001a420 mov r0, r5                                            |     r0 = r5;
    0x0001a422 bl 0x197f0                                            |     r0 = fcn_000197f0 (r0, r1);
                                                                     |     if (r0 != 0) {
    0x0001a426 cbnz r0, 0x1a446                                      |         goto label_4;
                                                                     |     }
                                                                     |     do {
    0x0001a428 movs r3, 0x2f                                         |         r3 = 0x2f;
    0x0001a42a strb r3, [r4]                                         |         *(r4) = r3;
    0x0001a42c b 0x1a384                                             |         goto label_0;
                                                                     | label_13:
    0x0001a42e mov r1, fp                                            |         r1 = fp;
    0x0001a430 movs r0, 4                                            |         r0 = 4;
    0x0001a432 mov r3, r5                                            |         r3 = r5;
    0x0001a434 mov r2, sb                                            |         r2 = sb;
    0x0001a436 bl 0x30d1c                                            |         zbx_zabbix_log ();
    0x0001a43a mov r1, r6                                            |         r1 = r6;
    0x0001a43c mov r0, r5                                            |         r0 = r5;
    0x0001a43e bl 0x197f0                                            |         r0 = fcn_000197f0 (r0, r1);
    0x0001a442 cmp r0, 0                                             |         
    0x0001a444 beq 0x1a428                                           |         
                                                                     |     } while (r0 == 0);
                                                                     |     do {
                                                                     |         if (r5 != 0) {
                                                                     | label_4:
    0x0001a446 cbz r5, 0x1a44e                                       |             
    0x0001a448 mov r0, r5                                            |             r0 = r5;
    0x0001a44a blx 0xde30                                            |             fcn_0000de30 ();
                                                                     |         }
                                                                     | label_5:
    0x0001a44e movs r4, 0                                            |         r4 = 0;
    0x0001a450 b 0x1a3f8                                             |         goto label_1;
                                                                     | label_9:
    0x0001a452 ldr r2, [pc, 0x94]                                    |         
    0x0001a454 mov r3, r5                                            |         r3 = r5;
    0x0001a456 ldr r1, [pc, 0x94]                                    |         
    0x0001a458 movs r0, 4                                            |         r0 = 4;
    0x0001a45a add r2, pc                                            |         r2 = 0x34948;
    0x0001a45c adds r2, 0x1c                                         |         r2 += 0x1c;
    0x0001a45e add r1, pc                                            |         r1 = 0x34950;
    0x0001a460 bl 0x30d1c                                            |         zbx_zabbix_log ();
    0x0001a464 b 0x1a396                                             |         goto label_2;
                                                                     | label_6:
    0x0001a466 ldr r2, [pc, 0x88]                                    |         
    0x0001a468 mov r3, r0                                            |         r3 = r0;
    0x0001a46a ldr r1, [pc, 0x88]                                    |         
    0x0001a46c movs r0, 4                                            |         r0 = 4;
    0x0001a46e add r2, pc                                            |         r2 = 0x34964;
    0x0001a470 adds r2, 0x1c                                         |         r2 += 0x1c;
    0x0001a472 add r1, pc                                            |         r1 = 0x3496c;
    0x0001a474 bl 0x30d1c                                            |         zbx_zabbix_log ();
    0x0001a478 b 0x1a358                                             |         goto label_3;
                                                                     | label_10:
    0x0001a47a ldr r5, [sp, 8]                                       |         r5 = var_8h;
    0x0001a47c mov r2, r4                                            |         r2 = r4;
    0x0001a47e ldr r1, [pc, 0x78]                                    |         
    0x0001a480 ldr r0, [r6]                                          |         r0 = *(r6);
    0x0001a482 mov r3, r5                                            |         r3 = r5;
    0x0001a484 add r1, pc                                            |         r1 = 0x34982;
    0x0001a486 bl 0x44820                                            |         zbx_dsprintf ()
    0x0001a48a str r0, [r6]                                          |         *(r6) = r0;
    0x0001a48c cmp r4, 0                                             |         
    0x0001a48e beq 0x1a446                                           |         
                                                                     |     } while (r4 == 0);
    0x0001a490 mov r0, r4                                            |     r0 = r4;
    0x0001a492 blx 0xde30                                            |     fcn_0000de30 ();
    0x0001a496 b 0x1a446                                             |     goto label_4;
                                                                     | label_11:
    0x0001a498 ldr r1, [pc, 0x60]                                    |     
    0x0001a49a mov r2, r4                                            |     r2 = r4;
    0x0001a49c ldr r0, [r6]                                          |     r0 = *(r6);
    0x0001a49e add r1, pc                                            |     r1 = 0x3499e;
    0x0001a4a0 bl 0x44820                                            |     zbx_dsprintf ()
    0x0001a4a4 str r0, [r6]                                          |     *(r6) = r0;
    0x0001a4a6 mov r0, r4                                            |     r0 = r4;
    0x0001a4a8 blx 0xde30                                            |     fcn_0000de30 ();
    0x0001a4ac b 0x1a44e                                             |     goto label_5;
                                                                     | label_7:
    0x0001a4ae ldr r1, [pc, 0x50]                                    |     
    0x0001a4b0 ldr r0, [r6]                                          |     r0 = *(r6);
    0x0001a4b2 add r1, pc                                            |     r1 = 0x349b8;
    0x0001a4b4 bl 0x44820                                            |     zbx_dsprintf ()
    0x0001a4b8 str r0, [r6]                                          |     *(r6) = r0;
    0x0001a4ba b 0x1a44e                                             |     goto label_5;
                                                                     | label_12:
    0x0001a4bc blx 0xe158                                            |     fcn_0000e158 ();
    0x0001a4c0 adds r6, r4, r2                                       |     r6 = r4 + r2;
    0x0001a4c2 movs r4, r0                                           |     r4 = r0;
    0x0001a4c4 lsls r4, r2, 0xe                                      |     r4 = r2 << 0xe;
    0x0001a4c6 movs r0, r0                                           |     
    0x0001a4c8 adds r4, r3, r2                                       |     r4 = r3 + r2;
    0x0001a4ca movs r4, r0                                           |     r4 = r0;
    0x0001a4cc lsls r4, r7, 0xe                                      |     r4 = r7 << 0xe;
    0x0001a4ce movs r0, r0                                           |     
    0x0001a4d0 ldrsh r6, [r4, r2]                                    |     r6 = *((r4 + r2));
    0x0001a4d2 movs r3, r0                                           |     r3 = r0;
    0x0001a4d4 str r0, [r4, 0x40]                                    |     *((r4 + 0x40)) = r0;
    0x0001a4d6 movs r3, r0                                           |     r3 = r0;
    0x0001a4d8 ldrsh r0, [r2, r7]                                    |     r0 = *((r2 + r7));
    0x0001a4da movs r3, r0                                           |     r3 = r0;
    0x0001a4dc ldrsh r6, [r7, r6]                                    |     r6 = *((r7 + r6));
    0x0001a4de movs r3, r0                                           |     r3 = r0;
    0x0001a4e0 ldrsh r0, [r5, r6]                                    |     r0 = *((r5 + r6));
    0x0001a4e2 movs r3, r0                                           |     r3 = r0;
    0x0001a4e4 asrs r4, r3, 0x1f                                     |     r4 = r3 >> 0x1f;
    0x0001a4e6 movs r4, r0                                           |     r4 = r0;
    0x0001a4e8 str r2, [r7, 0x30]                                    |     *((r7 + 0x30)) = r2;
    0x0001a4ea movs r3, r0                                           |     r3 = r0;
    0x0001a4ec ldrsh r2, [r6, r3]                                    |     r2 = *((r6 + r3));
    0x0001a4ee movs r3, r0                                           |     r3 = r0;
    0x0001a4f0 str r6, [r4, 0x30]                                    |     *((r4 + 0x30)) = r6;
    0x0001a4f2 movs r3, r0                                           |     r3 = r0;
    0x0001a4f4 ldrsh r2, [r7, r1]                                    |     r2 = *((r7 + r1));
    0x0001a4f6 movs r3, r0                                           |     r3 = r0;
    0x0001a4f8 ldrsh r4, [r7, r3]                                    |     r4 = *((r7 + r3));
    0x0001a4fa movs r3, r0                                           |     r3 = r0;
    0x0001a4fc ldrsh r6, [r0, r4]                                    |     r6 = *((r0 + r4));
    0x0001a4fe movs r3, r0                                           |     r3 = r0;
    0x0001a500 ldrsh r6, [r1, r1]                                    |     r6 = *((r1 + r1));
    0x0001a502 movs r3, r0                                           |     r3 = r0;
                                                                     | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x352bc */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.zbx_dshm_destroy ()      | void zbx_dshm_destroy (int16_t arg1, int16_t arg2) {
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x000352bc invalid                   |     
    0x000352c0 ldr r3, [pc, 0x88]        |     
    0x000352c2 mov r6, r1                |     r6 = r1;
    0x000352c4 ldr r2, [pc, 0x88]        |     r2 = *(0x35350);
    0x000352c6 add r3, pc                |     r3 = 0x6a616;
    0x000352c8 ldr r7, [r3, r2]          |     r7 = *(0x6a616);
    0x000352ca ldr r3, [r7]              |     r3 = *(0x6a616);
    0x000352cc cmp r3, 3                 |     
                                         |     if (r3 > 3) {
    0x000352ce bgt 0x3531c               |         goto label_1;
                                         |     }
                                         | label_0:
    0x000352d0 add.w r0, r4, 0xc         |     r0 = r4 + 0xc;
    0x000352d4 bl 0x34628                |     zbx_mutex_destroy ();
    0x000352d8 ldr r0, [r4]              |     r0 = *(r4);
    0x000352da adds r2, r0, 1            |     r2 = r0 + 1;
    0x000352dc bne 0x352ea               |     
                                         |     while (r3 != r0) {
    0x000352de movs r5, 0                |         r5 = 0;
    0x000352ea movs r2, 0                |         r2 = 0;
    0x000352ec mov r1, r2                |         r1 = r2;
    0x000352ee blx 0xe268                |         r0 = fcn_0000e268 ();
    0x000352f2 adds r3, r0, 1            |         r3 = r0 + 1;
    0x000352f4 mov r5, r0                |         r5 = r0;
    0x000352f6 itt ne                    |         
                                         |         if (r3 == r0) {
    0x000352f8 movne r3, -1              |             r3 = -1;
                                         |         }
                                         |         if (r3 != r0) {
    0x000352fc str r3, [r4]              |             *(r4) = r3;
                                         |         }
    0x000352fe bne 0x352de               |         
                                         |     }
    0x00035300 blx 0xe3d4                |     r0 = fcn_0000e3d4 ();
    0x00035304 ldr r0, [r0]              |     r0 = *(r0);
    0x00035306 ldr r4, [r6]              |     r4 = *(r6);
    0x00035308 bl 0x30b74                |     zbx_strerror ();
    0x0003530c ldr r1, [pc, 0x44]        |     
    0x0003530e mov r2, r0                |     r2 = r0;
    0x00035310 mov r0, r4                |     r0 = r4;
    0x00035312 add r1, pc                |     r1 = 0x6a66a;
    0x00035314 bl 0x44820                |     zbx_dsprintf ()
    0x00035318 str r0, [r6]              |     *(r6) = r0;
    0x0003531a b 0x352e0                 |     void (*0x352e0)() ();
                                         | label_1:
    0x0003531c ldr r2, [pc, 0x38]        |     
    0x0003531e ldr r1, [pc, 0x3c]        |     
    0x00035320 ldr r3, [r0]              |     r3 = *(r0);
    0x00035322 movs r0, 4                |     r0 = 4;
    0x00035324 add r2, pc                |     r2 = 0x6a680;
    0x00035326 adds r2, 0x10             |     r2 += 0x10;
    0x00035328 add r1, pc                |     r1 = 0x6a68a;
    0x0003532a bl 0x30d1c                |     zbx_zabbix_log ();
    0x0003532e b 0x352d0                 |     goto label_0;
                                         | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x3548c */
                                                             | #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;
    0x0003548c ldr r3, [pc, 0x148]                           |     
    0x0003548e push.w {r4, r5, r6, r7, r8, sb, sl, lr}       |     
    0x00035492 mov r5, r0                                    |     r5 = r0;
    0x00035494 ldr r6, [pc, 0x144]                           |     r6 = *(0x355dc);
    0x00035496 sub sp, 8                                     |     
    0x00035498 add r3, pc                                    |     r3 = 0x6aa74;
    0x0003549a mov r4, r1                                    |     r4 = r1;
    0x0003549c mov r8, r2                                    |     r8 = r2;
    0x0003549e ldr.w sb, [r3, r6]                            |     sb = *(0x6aa74);
    0x000354a2 ldr.w r3, [sb]                                |     r3 = *(0x6aa74);
    0x000354a6 cmp r3, 3                                     |     
                                                             |     if (r3 > 3) {
    0x000354a8 bgt 0x35518                                   |         goto label_3;
                                                             |     }
                                                             | label_0:
    0x000354aa ldr r0, [r5]                                  |     r0 = *(r5);
    0x000354ac adds r4, 7                                    |     r4 += 7;
    0x000354ae bic r4, r4, 7                                 |     r4 = BIT_MASK (r4, 7);
    0x000354b2 adds r1, r0, 1                                |     r1 = r0 + 1;
                                                             |     if (r1 == r0) {
    0x000354b4 beq 0x35514                                   |         goto label_4;
                                                             |     }
    0x000354b6 movs r2, 0                                    |     r2 = 0;
    0x000354b8 mov r1, r2                                    |     r1 = r2;
    0x000354ba blx 0xdd44                                    |     r0 = fcn_0000dd44 ();
    0x000354be adds r2, r0, 1                                |     r2 = r0 + 1;
    0x000354c0 mov r7, r0                                    |     r7 = r0;
                                                             |     if (r2 == r0) {
    0x000354c2 beq 0x355a8                                   |         goto label_5;
                                                             |     }
                                                             |     do {
    0x000354c4 mov r0, r4                                    |         r0 = r4;
    0x000354c6 bl 0x35924                                    |         zbx_shm_create ();
    0x000354c8 invalid                                       |         
    0x000354cc mov r6, r0                                    |         r6 = r0;
                                                             |         if (r2 == r0) {
    0x000354ce beq 0x35556                                   |             goto label_6;
                                                             |         }
    0x000354d0 movs r2, 0                                    |         r2 = 0;
    0x000354d2 mov r1, r2                                    |         r1 = r2;
    0x000354d4 blx 0xdd44                                    |         r0 = fcn_0000dd44 ();
    0x000354d8 cmp.w r0, -1                                  |         
    0x000354dc mov sl, r0                                    |         sl = r0;
                                                             |         if (r0 == -1) {
    0x000354de beq 0x35570                                   |             goto label_7;
                                                             |         }
    0x000354e0 ldr r3, [r5, 8]                               |         r3 = *((r5 + 8));
    0x000354e2 mov r2, r7                                    |         r2 = r7;
    0x000354e4 mov r1, r4                                    |         r1 = r4;
    0x000354e6 blx r3                                        |         uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r1, r2, r3);
    0x000354e8 mov r0, sl                                    |         r0 = sl;
    0x000354ea blx 0xddfc                                    |         getuid ();
    0x000354ee adds r0, 1                                    |         r0++;
                                                             |         if (r0 == 1) {
    0x000354f0 beq 0x35594                                   |             goto label_8;
                                                             |         }
                                                             |         if (r7 != 0) {
    0x000354f2 cbz r7, 0x354fe                               |             
    0x000354f4 ldr r0, [r5]                                  |             r0 = *(r5);
    0x000354f6 bl 0x35978                                    |             zbx_shm_destroy ();
    0x000354fa adds r0, 1                                    |             r0++;
                                                             |             if (r0 == 1) {
    0x000354fc beq 0x355c4                                   |                 goto label_9;
                                                             |             }
                                                             |         }
    0x000354fe movs r7, 0                                    |         r7 = 0;
    0x00035500 strd r6, r4, [r5]                             |         __asm ("strd r6, r4, [r5]");
                                                             | label_1:
    0x00035504 ldr.w r3, [sb]                                |         r3 = *(sb);
    0x00035508 cmp r3, 3                                     |         
                                                             |         if (r3 > 3) {
    0x0003550a bgt 0x35532                                   |             goto label_10;
                                                             |         }
    0x0003550c mov r0, r7                                    |         r0 = r7;
    0x0003550e add sp, 8                                     |         
    0x00035510 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |         
                                                             | label_4:
    0x00035514 movs r7, 0                                    |         r7 = 0;
    0x00035516 b 0x354c4                                     |         
                                                             |     } while (1);
                                                             | label_3:
    0x00035518 ldr r2, [pc, 0xc4]                            |     
    0x0003551a movs r3, 0                                    |     r3 = 0;
    0x0003551c str r1, [sp]                                  |     *(sp) = r1;
    0x0003551e ldr r1, [pc, 0xc4]                            |     
    0x00035520 add r2, pc                                    |     r2 = 0x6ab04;
    0x00035522 str r3, [sp, 4]                               |     var_4h = r3;
    0x00035524 adds r2, 0x3c                                 |     r2 += 0x3c;
    0x00035526 ldr r3, [r0]                                  |     r3 = *(r0);
    0x00035528 add r1, pc                                    |     r1 = 0x6ab12;
    0x0003552a movs r0, 4                                    |     r0 = 4;
    0x0003552c bl 0x30d1c                                    |     zbx_zabbix_log ();
    0x00035530 b 0x354aa                                     |     goto label_0;
                                                             | label_10:
    0x00035532 mov r0, r7                                    |     r0 = r7;
    0x00035534 bl 0x45514                                    |     zbx_result_string ();
    0x00035538 ldr r2, [pc, 0xac]                            |     
    0x0003553a mov r3, r0                                    |     r3 = r0;
    0x0003553c ldr r4, [r5]                                  |     r4 = *(r5);
    0x0003553e movs r0, 4                                    |     r0 = 4;
    0x00035540 ldr r1, [pc, 0xa8]                            |     
    0x00035542 add r2, pc                                    |     r2 = 0x6ab2e;
    0x00035544 adds r2, 0x3c                                 |     r2 += 0x3c;
    0x00035546 str r4, [sp]                                  |     *(sp) = r4;
    0x00035548 add r1, pc                                    |     r1 = 0x6ab38;
    0x0003554a bl 0x30d1c                                    |     zbx_zabbix_log ();
    0x0003554e mov r0, r7                                    |     r0 = r7;
    0x00035550 add sp, 8                                     |     
    0x00035552 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |     
                                                             | label_6:
    0x00035556 ldr r3, [pc, 0x98]                            |     
    0x00035558 movs r2, 0                                    |     r2 = 0;
    0x0003555a ldr r0, [pc, 0x98]                            |     
    0x0003555c movs r1, 0xd9                                 |     r1 = 0xd9;
    0x0003555e add r3, pc                                    |     r3 = 0x6ab54;
    0x00035560 add r0, pc                                    |     r0 = 0x6ab5a;
    0x00035562 bl 0x40ed8                                    |     zbx_strdup2 ();
                                                             |     do {
                                                             | label_2:
    0x00035566 mov.w r7, -1                                  |         r7 = -1;
    0x0003556a str.w r0, [r8]                                |         __asm ("str.w r0, [r8]");
    0x0003556e b 0x35504                                     |         goto label_1;
                                                             |         if (r7 != 0) {
                                                             | label_7:
    0x00035570 cbz r7, 0x35578                               |             
    0x00035572 mov r0, r7                                    |             r0 = r7;
    0x00035574 blx 0xddfc                                    |             getuid ();
                                                             |         }
    0x00035578 blx 0xe3d4                                    |         r0 = fcn_0000e3d4 ();
    0x0003557c ldr r0, [r0]                                  |         r0 = *(r0);
    0x0003557e ldr.w r4, [r8]                                |         r4 = *(r8);
    0x00035582 bl 0x30b74                                    |         zbx_strerror ();
    0x00035586 ldr r1, [pc, 0x70]                            |         
    0x00035588 mov r2, r0                                    |         r2 = r0;
    0x0003558a mov r0, r4                                    |         r0 = r4;
    0x0003558c add r1, pc                                    |         r1 = 0x6ab8a;
    0x0003558e bl 0x44820                                    |         zbx_dsprintf ()
    0x00035592 b 0x35566                                     |         
                                                             |     } while (1);
                                                             | label_8:
    0x00035594 ldr r3, [pc, 0x64]                            |     
    0x00035596 movs r1, 0xeb                                 |     r1 = 0xeb;
    0x00035598 ldr r0, [pc, 0x64]                            |     
    0x0003559a ldr.w r2, [r8]                                |     r2 = *(r8);
    0x0003559e add r3, pc                                    |     r3 = 0x6ab9e;
    0x000355a0 add r0, pc                                    |     r0 = 0x6aba4;
    0x000355a2 bl 0x40ed8                                    |     zbx_strdup2 ();
    0x000355a6 b 0x35566                                     |     goto label_2;
                                                             | label_5:
    0x000355a8 blx 0xe3d4                                    |     r0 = fcn_0000e3d4 ();
    0x000355ac ldr r0, [r0]                                  |     r0 = *(r0);
    0x000355ae ldr.w r4, [r8]                                |     r4 = *(r8);
    0x000355b2 bl 0x30b74                                    |     zbx_strerror ();
    0x000355b6 ldr r1, [pc, 0x4c]                            |     
    0x000355b8 mov r2, r0                                    |     r2 = r0;
    0x000355ba mov r0, r4                                    |     r0 = r4;
    0x000355bc add r1, pc                                    |     r1 = 0x6abc6;
    0x000355be bl 0x44820                                    |     zbx_dsprintf ()
    0x000355c2 b 0x35566                                     |     goto label_2;
                                                             | label_9:
    0x000355c4 ldr r3, [pc, 0x40]                            |     
    0x000355c6 movs r1, 0xf2                                 |     r1 = 0xf2;
    0x000355c8 ldr r0, [pc, 0x40]                            |     
    0x000355ca ldr.w r2, [r8]                                |     r2 = *(r8);
    0x000355ce add r3, pc                                    |     r3 = 0x6abda;
    0x000355d0 add r0, pc                                    |     r0 = 0x6abe0;
    0x000355d2 bl 0x40ed8                                    |     zbx_strdup2 ();
    0x000355d6 b 0x35566                                     |     goto label_2;
                                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x35388 */
                                             | #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;
    0x00035388 ldr r3, [pc, 0xe0]            |     
    0x0003538a push {r4, r5, r6, r7, lr}     |     
    0x0003538c mov r6, r2                    |     r6 = r2;
    0x0003538e ldr r2, [pc, 0xe0]            |     r2 = *(0x35472);
    0x00035390 mov r5, r0                    |     r5 = r0;
    0x00035392 add r3, pc                    |     r3 = 0x6a802;
    0x00035394 mov r4, r1                    |     r4 = r1;
    0x00035396 ldr r0, [r0]                  |     r0 = *(r0);
    0x00035398 sub sp, 0xc                   |     
    0x0003539a ldr r7, [r3, r2]              |     r7 = *(0x6a802);
    0x0003539c ldr r1, [r1]                  |     r1 = *(r1);
    0x0003539e ldr r3, [r7]                  |     r3 = *(0x6a802);
    0x000353a0 cmp r3, 4                     |     
                                             |     if (r3 > 4) {
    0x000353a2 bgt 0x3540a                   |         goto label_3;
                                             |     }
    0x000353a4 cmp r1, r0                    |     
                                             |     if (r1 == r0) {
    0x000353a6 beq 0x35402                   |         goto label_4;
                                             |     }
    0x000353a8 adds r1, 1                    |     r1++;
                                             |     if (r1 != 1) {
    0x000353aa beq 0x353c2                   |         
                                             | label_0:
    0x000353ac ldr r0, [r4, 4]               |         r0 = *((r4 + 4));
    0x000353ae blx 0xddfc                    |         getuid ();
    0x000353b2 adds r0, 1                    |         r0++;
                                             |         if (r0 == 1) {
    0x000353b4 beq 0x35450                   |             goto label_5;
                                             |         }
    0x000353b6 ldr r0, [r5]                  |         r0 = *(r5);
    0x000353b8 mov.w r3, -1                  |         r3 = -1;
    0x000353bc movs r2, 0                    |         r2 = 0;
    0x000353be strd r3, r2, [r4]             |         __asm ("strd r3, r2, [r4]");
                                             |     }
                                             | label_1:
    0x000353c2 movs r2, 0                    |     r2 = 0;
    0x000353c4 mov r1, r2                    |     r1 = r2;
    0x000353c6 blx 0xdd44                    |     fcn_0000dd44 ();
    0x000353ca str r0, [r4, 4]               |     *((r4 + 4)) = r0;
    0x000353cc adds r0, 1                    |     r0++;
    0x000353ce itt ne                        |     
                                             |     if (r0 == 1) {
    0x000353d0 ldrne r3, [r5]                |         r3 = *(r5);
                                             |     }
                                             |     if (r0 == 1) {
    0x000353d2 strne r3, [r4]                |         *(r4) = r3;
                                             |     }
                                             |     if (r0 == 1) {
    0x000353d4 beq 0x3542c                   |         goto label_6;
                                             |     }
                                             |     do {
    0x000353d6 movs r4, 0                    |         r4 = 0;
                                             | label_2:
    0x000353d8 ldr r3, [r7]                  |         r3 = *(r7);
    0x000353da cmp r3, 4                     |         
                                             |         if (r3 <= 4) {
    0x000353dc bgt 0x353e4                   |             
    0x000353de mov r0, r4                    |             r0 = r4;
    0x000353e0 add sp, 0xc                   |             
    0x000353e2 pop {r4, r5, r6, r7, pc}      |             
                                             |         }
    0x000353e4 mov r0, r4                    |         r0 = r4;
    0x000353e6 bl 0x45514                    |         zbx_result_string ();
    0x000353ea ldr r2, [pc, 0x88]            |         
    0x000353ec mov r3, r0                    |         r3 = r0;
    0x000353ee ldr r1, [pc, 0x88]            |         
    0x000353f0 movs r0, 5                    |         r0 = 5;
    0x000353f2 add r2, pc                    |         r2 = 0x6a86c;
    0x000353f4 add r1, pc                    |         r1 = 0x6a872;
    0x000353f6 adds r2, 0x24                 |         r2 += 0x24;
    0x000353f8 bl 0x30d1c                    |         zbx_zabbix_log ();
    0x000353fc mov r0, r4                    |         r0 = r4;
    0x000353fe add sp, 0xc                   |         
    0x00035400 pop {r4, r5, r6, r7, pc}      |         
                                             | label_4:
    0x00035402 movs r4, 0                    |         r4 = 0;
    0x00035404 mov r0, r4                    |         r0 = r4;
    0x00035406 add sp, 0xc                   |         
    0x00035408 pop {r4, r5, r6, r7, pc}      |         
                                             | label_3:
    0x0003540a ldr r2, [pc, 0x70]            |         
    0x0003540c mov r3, r0                    |         r3 = r0;
    0x0003540e str r1, [sp]                  |         *(sp) = r1;
    0x00035410 movs r0, 5                    |         r0 = 5;
    0x00035412 ldr r1, [pc, 0x6c]            |         
    0x00035414 add r2, pc                    |         r2 = 0x6a896;
    0x00035416 adds r2, 0x24                 |         r2 += 0x24;
    0x00035418 add r1, pc                    |         r1 = 0x6a89e;
    0x0003541a bl 0x30d1c                    |         zbx_zabbix_log ();
    0x0003541e ldr r1, [r4]                  |         r1 = *(r4);
    0x00035420 ldr r0, [r5]                  |         r0 = *(r5);
    0x00035422 cmp r0, r1                    |         
    0x00035424 beq 0x353d6                   |         
                                             |     } while (r0 == r1);
    0x00035426 adds r1, 1                    |     r1++;
                                             |     if (r1 != 1) {
    0x00035428 bne 0x353ac                   |         goto label_0;
                                             |     }
    0x0003542a b 0x353c2                     |     goto label_1;
                                             | label_6:
    0x0003542c blx 0xe3d4                    |     r0 = fcn_0000e3d4 ();
    0x00035430 ldr r0, [r0]                  |     r0 = *(r0);
    0x00035432 ldr r5, [r6]                  |     r5 = *(r6);
    0x00035434 bl 0x30b74                    |     zbx_strerror ();
    0x00035438 ldr r1, [pc, 0x48]            |     
    0x0003543a mov r2, r0                    |     r2 = r0;
    0x0003543c mov r0, r5                    |     r0 = r5;
    0x0003543e add r1, pc                    |     r1 = 0x6a8c6;
    0x00035440 bl 0x44820                    |     zbx_dsprintf ()
    0x00035444 movs r3, 0                    |     r3 = 0;
    0x00035446 str r0, [r6]                  |     *(r6) = r0;
    0x00035448 str r3, [r4, 4]               |     *((r4 + 4)) = r3;
                                             |     do {
    0x0003544a mov.w r4, -1                  |         r4 = -1;
    0x0003544e b 0x353d8                     |         goto label_2;
                                             | label_5:
    0x00035450 blx 0xe3d4                    |         r0 = fcn_0000e3d4 ();
    0x00035454 ldr r0, [r0]                  |         r0 = *(r0);
    0x00035456 ldr r4, [r6]                  |         r4 = *(r6);
    0x00035458 bl 0x30b74                    |         zbx_strerror ();
    0x0003545c ldr r1, [pc, 0x28]            |         
    0x0003545e mov r2, r0                    |         r2 = r0;
    0x00035460 mov r0, r4                    |         r0 = r4;
    0x00035462 add r1, pc                    |         r1 = 0x6a8ee;
    0x00035464 bl 0x44820                    |         zbx_dsprintf ()
    0x00035468 str r0, [r6]                  |         *(r6) = r0;
    0x0003546a b 0x3544a                     |         
                                             |     } while (1);
                                             | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x1d378 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.zbx_execute_threaded_metric ()                       | void zbx_execute_threaded_metric (int16_t arg_0h, int16_t arg1, int16_t arg2, int16_t arg3) {
                                                                     |     int16_t var_81ch;
                                                                     |     int16_t var_0h_2;
                                                                     |     int16_t var_ch;
                                                                     |     int16_t var_10h;
                                                                     |     int16_t var_14h;
                                                                     |     int16_t var_1ch;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
    0x0001d378 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0001d37c mov r7, r0                                            |     r7 = r0;
    0x0001d37e ldr r6, [pc, 0x3ac]                                   |     
    0x0001d380 mov sl, r2                                            |     sl = r2;
    0x0001d382 ldr r5, [pc, 0x3ac]                                   |     r5 = *(0x1d732);
    0x0001d384 add r6, pc                                            |     r6 = 0x3aab6;
    0x0001d386 vpush {d8, d9}                                        |     __asm ("vpush {d8, d9}");
    0x0001d38a ldr r4, [pc, 0x3a8]                                   |     
    0x0001d38c subw sp, sp, 0x824                                    |     __asm ("subw sp, sp, 0x824");
    0x0001d390 ldr r5, [r6, r5]                                      |     
    0x0001d392 ldr r3, [pc, 0x3a4]                                   |     r3 = *(0x1d73a);
    0x0001d394 add r4, pc                                            |     r4 = 0x3aace;
    0x0001d396 ldr r5, [r5]                                          |     r5 = *(0x3aab6);
    0x0001d398 str.w r5, [sp, 0x81c]                                 |     __asm ("str.w r5, [var_81ch]");
    0x0001d39c mov.w r5, 0                                           |     r5 = 0;
    0x0001d3a0 mov r5, r1                                            |     r5 = r1;
    0x0001d3a2 ldr.w fp, [r4, r3]                                    |     fp = *(0x3aace);
    0x0001d3a6 ldr.w r3, [fp]                                        |     r3 = *(0x3aace);
    0x0001d3aa cmp r3, 3                                             |     
                                                                     |     if (r3 > 3) {
    0x0001d3ac bgt.w 0x1d526                                         |         goto label_14;
                                                                     |     }
    0x0001d3b0 add.w sb, sp, 0x14                                    |     sb += var_14h;
    0x0001d3b4 mov r0, sb                                            |     r0 = sb;
    0x0001d3b6 blx 0xe370                                            |     fcn_0000e370 ();
    0x0001d3ba adds r0, 1                                            |     r0++;
                                                                     |     if (r0 == 1) {
    0x0001d3bc beq.w 0x1d548                                         |         goto label_15;
                                                                     |     }
                                                                     | label_1:
    0x0001d3c0 bl 0x340a8                                            |     r0 = zbx_fork ();
    0x0001d3c4 cmp.w r0, -1                                          |     
    0x0001d3c8 mov r8, r0                                            |     r8 = r0;
                                                                     |     if (r0 == -1) {
    0x0001d3ca beq.w 0x1d5f6                                         |         goto label_16;
                                                                     |     }
    0x0001d3ce ldr r0, [pc, 0x36c]                                   |     
    0x0001d3d0 mov.w r3, 0x800                                       |     r3 = 0x800;
    0x0001d3d4 movs r2, 0                                            |     r2 = 0;
    0x0001d3d6 movw r1, 0x6fd                                        |     r1 = 0x6fd;
    0x0001d3da add r0, pc                                            |     r0 = 0x3ab1c;
    0x0001d3dc bl 0x40dd8                                            |     r0 = zbx_malloc2 ();
    0x0001d3e0 mov r6, r0                                            |     r6 = r0;
    0x0001d3e2 cmp.w r8, 0                                           |     
                                                                     |     if (r8 == 0) {
    0x0001d3e6 beq.w 0x1d7de                                         |         goto label_17;
                                                                     |     }
    0x0001d3ea ldr.w r0, [sb, 4]                                     |     r0 = *((sb + 4));
    0x0001d3ee movs r5, 0                                            |     r5 = 0;
    0x0001d3f0 blx 0xe0ac                                            |     fcn_0000e0ac ();
    0x0001d3f4 ldr r3, [pc, 0x348]                                   |     r3 = *(0x1d740);
    0x0001d3f6 add r7, sp, 0x1c                                      |     r7 += var_1ch;
    0x0001d3f8 vldr s16, [pc, 0x32c]                                 |     __asm ("vldr s16, [0x0001d72c]");
    0x0001d3fc vmov.f64 d9, 1.500000e+00                             |     __asm ("vmov.f64 d9, 1");
    0x0001d400 ldr r3, [r4, r3]                                      |     r3 = *((r4 + r3));
    0x0001d402 ldr r0, [r3]                                          |     r0 = *(0x1d740);
    0x0001d404 bl 0x42fc4                                            |     zbx_alarm_on ();
    0x0001d408 ldr r3, [pc, 0x338]                                   |     
    0x0001d40a add r3, pc                                            |     r3 = 0x3ab52;
    0x0001d40c str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x0001d40e b 0x1d420                                             |     
                                                                     |     while (r3 > r4) {
                                                                     | label_0:
    0x0001d410 adds r0, r6, r5                                       |         r0 = r6 + r5;
    0x0001d412 mov r2, r4                                            |         r2 = r4;
    0x0001d414 mov r1, r7                                            |         r1 = r7;
    0x0001d416 add r5, r4                                            |         r5 += r4;
    0x0001d418 blx 0xdf84                                            |         fcn_0000df84 ();
    0x0001d41c movs r3, 0                                            |         r3 = 0;
    0x0001d41e strb r3, [r6, r5]                                     |         *((r6 + r5)) = r3;
    0x0001d420 ldr.w r0, [sb]                                        |         r0 = *(sb);
    0x0001d424 mov.w r2, 0x800                                       |         r2 = 0x800;
    0x0001d428 mov r1, r7                                            |         r1 = r7;
    0x0001d42a blx 0xde54                                            |         r0 = fcn_0000de54 ();
    0x0001d42e mov r4, r0                                            |         r4 = r0;
                                                                     |         if (r0 == 0) {
    0x0001d430 cbz r0, 0x1d49e                                       |             goto label_6;
                                                                     |         }
    0x0001d432 bl 0x42fec                                            |         r0 = zbx_alarm_timed_out ();
                                                                     |         if (r0 == 0) {
    0x0001d436 cbz r0, 0x1d472                                       |             goto label_18;
                                                                     |         }
    0x0001d438 adds r0, r4, 1                                        |         r0 = r4 + 1;
                                                                     |         if (r0 == r4) {
    0x0001d43a beq.w 0x1d5be                                         |             goto label_19;
                                                                     |         }
    0x0001d43e vmov r3, s16                                          |         __asm ("vmov r3, s16");
    0x0001d442 subs r3, r3, r5                                       |         r3 -= r5;
    0x0001d444 cmp r3, r4                                            |         
    0x0001d446 bgt 0x1d410                                           |         
                                                                     |     }
                                                                     |     do {
    0x0001d448 vcvt.f64.u32 d7, s16                                  |         __asm ("vcvt.f64.u32 d7, s16");
    0x0001d44c vmul.f64 d7, d7, d9                                   |         __asm ("vmul.f64 d7, d7, d9");
    0x0001d450 vcvt.u32.f64 s16, d7                                  |         __asm ("vcvt.u32.f64 s16, d7");
    0x0001d454 vmov r3, s16                                          |         __asm ("vmov r3, s16");
    0x0001d458 subs r3, r3, r5                                       |         r3 -= r5;
    0x0001d45a cmp r3, r4                                            |         
    0x0001d45c ble 0x1d448                                           |         
                                                                     |     } while (r3 <= r4);
    0x0001d45e mov r2, r6                                            |     r2 = r6;
    0x0001d460 ldr r0, [sp, 0xc]                                     |     r0 = var_ch;
    0x0001d462 vmov r3, s16                                          |     __asm ("vmov r3, s16");
    0x0001d466 movw r1, 0x72f                                        |     r1 = 0x72f;
    0x0001d46a bl 0x40e68                                            |     r0 = zbx_realloc2 ();
    0x0001d46e mov r6, r0                                            |     r6 = r0;
    0x0001d470 b 0x1d410                                             |     goto label_0;
                                                                     | label_18:
    0x0001d472 ldr.w r3, [sl, 0x28]                                  |     r3 = *((sl + 0x28));
    0x0001d476 mov r2, r0                                            |     r2 = r0;
    0x0001d478 ldr r0, [pc, 0x2cc]                                   |     
    0x0001d47a movw r1, 0x71c                                        |     r1 = 0x71c;
    0x0001d47e movs r4, 1                                            |     r4 = 1;
    0x0001d480 orr r3, r3, 0x20                                      |     r3 |= 0x20;
    0x0001d484 str.w r3, [sl, 0x28]                                  |     __asm ("str.w r3, [sl, 0x28]");
    0x0001d488 add r0, pc                                            |     r0 = zbx_json_cleanarray;
    0x0001d48a ldr r3, [pc, 0x2c0]                                   |     
    0x0001d48c add r3, pc                                            |     r3 = 0x3abde;
    0x0001d48e bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0001d492 movs r1, 9                                            |     r1 = 9;
    0x0001d494 str.w r0, [sl, 0x20]                                  |     __asm ("str.w r0, [sl, 0x20]");
    0x0001d498 mov r0, r8                                            |     r0 = r8;
    0x0001d49a blx 0xe2e0                                            |     fcn_0000e2e0 ();
                                                                     | label_6:
    0x0001d49e bl 0x42fd4                                            |     zbx_alarm_off ();
    0x0001d4a2 ldr.w r0, [sb]                                        |     r0 = *(sb);
    0x0001d4a6 add r5, sp, 0x10                                      |     r5 += var_10h;
    0x0001d4a8 blx 0xe0ac                                            |     fcn_0000e0ac ();
    0x0001d4ac b 0x1d4b8                                             |     
                                                                     |     while (r0 == 1) {
    0x0001d4ae blx 0xe3d4                                            |         r0 = fcn_0000e3d4 ();
    0x0001d4b2 ldr r0, [r0]                                          |         r0 = *(r0);
    0x0001d4b4 cmp r0, 4                                             |         
                                                                     |         if (r0 != 4) {
    0x0001d4b6 bne 0x1d598                                           |             goto label_20;
                                                                     |         }
    0x0001d4b8 movs r2, 0                                            |         r2 = 0;
    0x0001d4ba mov r1, r5                                            |         r1 = r5;
    0x0001d4bc mov r0, r8                                            |         r0 = r8;
    0x0001d4be blx 0xe00c                                            |         open64 ();
    0x0001d4c2 adds r0, 1                                            |         r0++;
    0x0001d4c4 beq 0x1d4ae                                           |         
                                                                     |     }
                                                                     |     if (r4 == 0) {
    0x0001d4c6 cbnz r4, 0x1d4f2                                      |         
    0x0001d4c8 ldr r2, [r5]                                          |         r2 = *(r5);
    0x0001d4ca lsls r1, r2, 0x19                                     |         r1 = r2 << 0x19;
                                                                     |         if (r1 != r2) {
    0x0001d4cc bne.w 0x1d6a0                                         |             goto label_21;
                                                                     |         }
    0x0001d4d0 tst.w r2, 0xff00                                      |         
                                                                     |         if ((r2 & 0xff00) == 0) {
    0x0001d4d4 beq.w 0x1d62e                                         |             goto label_22;
                                                                     |         }
    0x0001d4d8 ldr.w r3, [sl, 0x28]                                  |         r3 = *((sl + 0x28));
    0x0001d4dc mov r0, r4                                            |         r0 = r4;
    0x0001d4de ldr r1, [pc, 0x270]                                   |         
    0x0001d4e0 orr r3, r3, 0x20                                      |         r3 |= 0x20;
    0x0001d4e4 add r1, pc                                            |         r1 = 0x3ac3a;
    0x0001d4e6 str.w r3, [sl, 0x28]                                  |         __asm ("str.w r3, [sl, 0x28]");
    0x0001d4ea bl 0x44820                                            |         zbx_dsprintf ()
    0x0001d4ee str.w r0, [sl, 0x20]                                  |         __asm ("str.w r0, [sl, 0x20]");
                                                                     |     }
                                                                     | label_4:
    0x0001d4f2 cmp r6, 0                                             |     
                                                                     |     if (r6 != 0) {
    0x0001d4f4 bne 0x1d5b4                                           |         goto label_23;
                                                                     |     }
                                                                     | label_2:
    0x0001d4f6 movs r4, 1                                            |     r4 = 1;
                                                                     | label_5:
    0x0001d4f8 ldr.w r3, [fp]                                        |     r3 = *(fp);
    0x0001d4fc cmp r3, 3                                             |     
                                                                     |     if (r3 > 3) {
    0x0001d4fe bgt 0x1d570                                           |         goto label_24;
                                                                     |     }
                                                                     | label_3:
    0x0001d500 ldr r2, [pc, 0x250]                                   |     
    0x0001d502 ldr r3, [pc, 0x22c]                                   |     r3 = *(0x1d732);
    0x0001d504 add r2, pc                                            |     r2 = 0x3ac5c;
    0x0001d506 ldr r3, [r2, r3]                                      |     r3 = *(0x3ac5c);
    0x0001d508 ldr r2, [r3]                                          |     r2 = *(0x3ac5c);
    0x0001d50a ldr.w r3, [sp, 0x81c]                                 |     r3 = var_81ch;
    0x0001d50e eors r2, r3                                           |     r2 ^= r3;
    0x0001d510 mov.w r3, 0                                           |     r3 = 0;
                                                                     |     if (r2 != r3) {
    0x0001d514 bne.w 0x1d848                                         |         goto label_25;
                                                                     |     }
    0x0001d518 mov r0, r4                                            |     r0 = r4;
    0x0001d51a addw sp, sp, 0x824                                    |     __asm ("addw sp, var_0h_2");
    0x0001d51e vpop {d8, d9}                                         |     __asm ("vpop {d8, d9}");
    0x0001d522 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
                                                                     | label_14:
    0x0001d526 ldr r2, [pc, 0x230]                                   |     
    0x0001d528 movs r0, 4                                            |     r0 = 4;
    0x0001d52a ldr r3, [r1]                                          |     r3 = *(r1);
    0x0001d52c add.w sb, sp, 0x14                                    |     sb += var_14h;
    0x0001d530 ldr r1, [pc, 0x228]                                   |     
    0x0001d532 add r2, pc                                            |     r2 = 0x3ac90;
    0x0001d534 adds r2, 0x54                                         |     r2 += 0x54;
    0x0001d536 add r1, pc                                            |     r1 = 0x3ac96;
    0x0001d538 bl 0x30d1c                                            |     zbx_zabbix_log ();
    0x0001d53c mov r0, sb                                            |     r0 = sb;
    0x0001d53e blx 0xe370                                            |     fcn_0000e370 ();
    0x0001d542 adds r0, 1                                            |     r0++;
                                                                     |     if (r0 != 1) {
    0x0001d544 bne.w 0x1d3c0                                         |         goto label_1;
                                                                     |     }
                                                                     | label_15:
    0x0001d548 ldr.w r3, [sl, 0x28]                                  |     r3 = *((sl + 0x28));
    0x0001d54c orr r3, r3, 0x20                                      |     r3 |= 0x20;
    0x0001d550 str.w r3, [sl, 0x28]                                  |     __asm ("str.w r3, [sl, 0x28]");
    0x0001d554 blx 0xe3d4                                            |     r0 = fcn_0000e3d4 ();
    0x0001d558 ldr r0, [r0]                                          |     r0 = *(r0);
    0x0001d55a bl 0x31154                                            |     strerror_from_system ();
    0x0001d55e ldr r1, [pc, 0x200]                                   |     
    0x0001d560 mov r2, r0                                            |     r2 = r0;
    0x0001d562 movs r0, 0                                            |     r0 = 0;
    0x0001d564 add r1, pc                                            |     r1 = 0x3acca;
    0x0001d566 bl 0x44820                                            |     zbx_dsprintf ()
    0x0001d56a str.w r0, [sl, 0x20]                                  |     __asm ("str.w r0, [sl, 0x20]");
    0x0001d56e b 0x1d4f6                                             |     goto label_2;
                                                                     | label_24:
    0x0001d570 mov r0, r4                                            |     r0 = r4;
    0x0001d572 bl 0x454f0                                            |     zbx_sysinfo_ret_string ();
    0x0001d576 ldr.w r2, [sl, 0x28]                                  |     r2 = *((sl + 0x28));
    0x0001d57a mov r3, r0                                            |     r3 = r0;
    0x0001d57c lsls r2, r2, 0x1a                                     |     r2 <<= 0x1a;
                                                                     |     if (r2 < r2) {
    0x0001d57e bmi 0x1d5f0                                           |         goto label_26;
                                                                     |     }
    0x0001d580 ldr r0, [pc, 0x1e0]                                   |     
    0x0001d582 add r0, pc                                            |     r0 = 0x3acea;
                                                                     | label_7:
    0x0001d584 ldr r2, [pc, 0x1e0]                                   |     
    0x0001d586 ldr r1, [pc, 0x1e4]                                   |     
    0x0001d588 str r0, [sp]                                          |     *(sp) = r0;
    0x0001d58a movs r0, 4                                            |     r0 = 4;
    0x0001d58c add r2, pc                                            |     r2 = 0x3acf8;
    0x0001d58e add r1, pc                                            |     r1 = 0x3ad00;
    0x0001d590 adds r2, 0x54                                         |     r2 += 0x54;
    0x0001d592 bl 0x30d1c                                            |     zbx_zabbix_log ();
    0x0001d596 b 0x1d500                                             |     goto label_3;
                                                                     | label_20:
    0x0001d598 ldr.w r3, [fp]                                        |     r3 = *(fp);
    0x0001d59c cmp r3, 1                                             |     
                                                                     |     if (r3 <= 1) {
    0x0001d59e ble 0x1d4f2                                           |         goto label_4;
                                                                     |     }
    0x0001d5a0 bl 0x30b74                                            |     zbx_strerror ();
    0x0001d5a4 ldr r1, [pc, 0x1c8]                                   |     
    0x0001d5a6 mov r2, r0                                            |     r2 = r0;
    0x0001d5a8 movs r0, 2                                            |     r0 = 2;
    0x0001d5aa add r1, pc                                            |     r1 = 0x3ad1e;
    0x0001d5ac bl 0x30d1c                                            |     zbx_zabbix_log ();
    0x0001d5b0 cmp r6, 0                                             |     
                                                                     |     if (r6 == 0) {
    0x0001d5b2 beq 0x1d4f6                                           |         goto label_2;
                                                                     |     }
                                                                     | label_23:
    0x0001d5b4 movs r4, 1                                            |     r4 = 1;
                                                                     |     do {
                                                                     | label_8:
    0x0001d5b6 mov r0, r6                                            |         r0 = r6;
    0x0001d5b8 blx 0xde30                                            |         fcn_0000de30 ();
    0x0001d5bc b 0x1d4f8                                             |         goto label_5;
                                                                     | label_19:
    0x0001d5be ldr.w r3, [sl, 0x28]                                  |         r3 = *((sl + 0x28));
    0x0001d5c2 movs r4, 1                                            |         r4 = 1;
    0x0001d5c4 orr r3, r3, 0x20                                      |         r3 |= 0x20;
    0x0001d5c8 str.w r3, [sl, 0x28]                                  |         __asm ("str.w r3, [sl, 0x28]");
    0x0001d5cc blx 0xe3d4                                            |         r0 = fcn_0000e3d4 ();
    0x0001d5d0 ldr r0, [r0]                                          |         r0 = *(r0);
    0x0001d5d2 bl 0x30b74                                            |         zbx_strerror ();
    0x0001d5d6 ldr r1, [pc, 0x19c]                                   |         
    0x0001d5d8 mov r2, r0                                            |         r2 = r0;
    0x0001d5da movs r0, 0                                            |         r0 = 0;
    0x0001d5dc add r1, pc                                            |         r1 = 0x3ad56;
    0x0001d5de bl 0x44820                                            |         zbx_dsprintf ()
    0x0001d5e2 movs r1, 9                                            |         r1 = 9;
    0x0001d5e4 str.w r0, [sl, 0x20]                                  |         __asm ("str.w r0, [sl, 0x20]");
    0x0001d5e8 mov r0, r8                                            |         r0 = r8;
    0x0001d5ea blx 0xe2e0                                            |         fcn_0000e2e0 ();
    0x0001d5ee b 0x1d49e                                             |         goto label_6;
                                                                     | label_26:
    0x0001d5f0 ldr.w r0, [sl, 0x20]                                  |         r0 = *((sl + 0x20));
    0x0001d5f4 b 0x1d584                                             |         goto label_7;
                                                                     | label_16:
    0x0001d5f6 ldr.w r0, [sb]                                        |         r0 = *(sb);
    0x0001d5fa blx 0xe0ac                                            |         fcn_0000e0ac ();
    0x0001d5fe ldr.w r0, [sb, 4]                                     |         r0 = *((sb + 4));
    0x0001d602 blx 0xe0ac                                            |         fcn_0000e0ac ();
    0x0001d606 ldr.w r3, [sl, 0x28]                                  |         r3 = *((sl + 0x28));
    0x0001d60a orr r3, r3, 0x20                                      |         r3 |= 0x20;
    0x0001d60e str.w r3, [sl, 0x28]                                  |         __asm ("str.w r3, [sl, 0x28]");
    0x0001d612 blx 0xe3d4                                            |         r0 = fcn_0000e3d4 ();
    0x0001d616 ldr r0, [r0]                                          |         r0 = *(r0);
    0x0001d618 bl 0x31154                                            |         strerror_from_system ();
    0x0001d61c ldr r1, [pc, 0x158]                                   |         
    0x0001d61e mov r2, r0                                            |         r2 = r0;
    0x0001d620 movs r0, 0                                            |         r0 = 0;
    0x0001d622 add r1, pc                                            |         r1 = 0x3ad9e;
    0x0001d624 bl 0x44820                                            |         zbx_dsprintf ()
    0x0001d628 str.w r0, [sl, 0x20]                                  |         __asm ("str.w r0, [sl, 0x20]");
    0x0001d62c b 0x1d4f6                                             |         goto label_2;
                                                                     | label_22:
    0x0001d62e ldrb r7, [r6, 4]                                      |         r7 = *((r6 + 4));
    0x0001d630 mov r5, r6                                            |         r5 = r6;
    0x0001d632 ldr r4, [r5], 5                                       |         r4 = *(r5);
                                                                     |         r5 += 5;
    0x0001d636 cmp r7, 0x6d                                          |         
                                                                     |         if (r7 == 0x6d) {
    0x0001d638 beq 0x1d6c4                                           |             goto label_27;
                                                                     |         }
    0x0001d63a ldr r1, [pc, 0x140]                                   |         
    0x0001d63c mov r0, r5                                            |         r0 = r5;
    0x0001d63e add r1, pc                                            |         r1 = 0x3adc0;
    0x0001d640 blx 0xe3b0                                            |         r0 = fcn_0000e3b0 ();
    0x0001d644 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001d646 beq 0x1d6c4                                           |             goto label_27;
                                                                     |         }
    0x0001d648 subs r7, 0x64                                         |         r7 -= 0x64;
    0x0001d64a cmp r7, 0x11                                          |         
    0x0001d64c bhi 0x1d5b6                                           |         
                                                                     |     } while (r7 > 0x11);
    0x0001d64e adr r3, 8                                             |     r3 = 8;
    0x0001d650 ldr.w r7, [r3, r7, lsl 2]                             |     offset_0 = r7 << 2;
                                                                     |     r7 = *((r3 + offset_0));
    0x0001d654 add r3, r7                                            |     r3 += r7;
    0x0001d656 bx r3                                                 |     return uint32_t (*r3)() ();
                                                                     | label_21:
    0x0001d6a0 ldr.w r3, [sl, 0x28]                                  |     r3 = *((sl + 0x28));
    0x0001d6a4 mov r0, r4                                            |     r0 = r4;
    0x0001d6a6 ldr r1, [pc, 0xd8]                                    |     
    0x0001d6a8 orr r3, r3, 0x20                                      |     r3 |= 0x20;
    0x0001d6ac add r1, pc                                            |     r1 = 0x3ae32;
    0x0001d6ae str.w r3, [sl, 0x28]                                  |     __asm ("str.w r3, [sl, 0x28]");
    0x0001d6b2 bl 0x44820                                            |     zbx_dsprintf ()
    0x0001d6b6 movs r1, 9                                            |     r1 = 9;
    0x0001d6b8 str.w r0, [sl, 0x20]                                  |     __asm ("str.w r0, [sl, 0x20]");
    0x0001d6bc mov r0, r8                                            |     r0 = r8;
    0x0001d6be blx 0xe2e0                                            |     fcn_0000e2e0 ();
    0x0001d6c2 b 0x1d4f2                                             |     goto label_4;
                                                                     | label_27:
    0x0001d6c4 ldr.w r2, [sl, 0x28]                                  |     r2 = *((sl + 0x28));
    0x0001d6c8 mov r3, r5                                            |     r3 = r5;
    0x0001d6ca ldr r0, [pc, 0xb8]                                    |     
    0x0001d6cc movw r1, 0x6bc                                        |     r1 = 0x6bc;
    0x0001d6d0 orr r2, r2, 0x20                                      |     r2 |= 0x20;
    0x0001d6d4 str.w r2, [sl, 0x28]                                  |     __asm ("str.w r2, [sl, 0x28]");
    0x0001d6d8 add r0, pc                                            |     r0 = 0x3ae62;
    0x0001d6da movs r2, 0                                            |     r2 = 0;
    0x0001d6dc bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0001d6e0 str.w r0, [sl, 0x20]                                  |     __asm ("str.w r0, [sl, 0x20]");
    0x0001d6e4 b 0x1d5b6                                             |     goto label_8;
                                                                     | label_17:
    0x0001d7de ldr.w r3, [fp]                                        |     r3 = *(fp);
    0x0001d7e2 cmp r3, 3                                             |     
                                                                     |     if (r3 > 3) {
    0x0001d7e4 bgt 0x1d8e0                                           |         goto label_28;
                                                                     |     }
                                                                     | label_13:
    0x0001d7e6 bl 0x361a8                                            |     zbx_set_metric_thread_signal_handler ();
    0x0001d7ea ldr.w r0, [sb]                                        |     r0 = *(sb);
    0x0001d7ee blx 0xe0ac                                            |     fcn_0000e0ac ();
    0x0001d7f2 mov r1, sl                                            |     r1 = sl;
    0x0001d7f4 mov r0, r5                                            |     r0 = r5;
    0x0001d7f6 blx r7                                                |     r0 = uint32_t (*r7)(uint32_t, uint32_t) (r0, r1);
    0x0001d7f8 mov r4, r0                                            |     r4 = r0;
                                                                     |     if (r0 != 0) {
    0x0001d7fa cbnz r0, 0x1d84c                                      |         goto label_29;
                                                                     |     }
    0x0001d7fc ldr.w r3, [sl, 0x28]                                  |     r3 = *((sl + 0x28));
    0x0001d800 lsls r5, r3, 0x1c                                     |     r5 = r3 << 0x1c;
                                                                     |     if (r5 < r3) {
    0x0001d802 bmi 0x1d8dc                                           |         goto label_30;
                                                                     |     }
    0x0001d804 lsls r0, r3, 0x1d                                     |     r0 = r3 << 0x1d;
                                                                     |     if (r0 < r3) {
    0x0001d806 bmi 0x1d8d8                                           |         goto label_31;
                                                                     |     }
    0x0001d808 lsls r1, r3, 0x1f                                     |     r1 = r3 << 0x1f;
                                                                     |     if (r1 < r3) {
    0x0001d80a bmi 0x1d8d4                                           |         goto label_32;
                                                                     |     }
    0x0001d80c lsls r2, r3, 0x1e                                     |     r2 = r3 << 0x1e;
                                                                     |     if (r2 < r3) {
    0x0001d80e bmi 0x1d8c2                                           |         goto label_33;
                                                                     |     }
    0x0001d810 lsls r7, r3, 0x1a                                     |     r7 = r3 << 0x1a;
                                                                     |     if (r7 < r3) {
    0x0001d812 bmi 0x1d85a                                           |         goto label_34;
                                                                     |     }
                                                                     | label_11:
    0x0001d814 movs r4, 0                                            |     r4 = 0;
                                                                     |     do {
    0x0001d816 movs r3, 0x2d                                         |         r3 = 0x2d;
    0x0001d818 str r4, [r6]                                          |         *(r6) = r4;
    0x0001d81a strb r3, [r6, 4]                                      |         *((r6 + 4)) = r3;
    0x0001d81c movs r2, 5                                            |         r2 = 5;
    0x0001d81e ldr.w r0, [sb, 4]                                     |         r0 = *((sb + 4));
    0x0001d822 mov r1, r6                                            |         r1 = r6;
    0x0001d824 bl 0x3fc84                                            |         r0 = zbx_write_all ();
    0x0001d828 mov r4, r0                                            |         r4 = r0;
                                                                     | label_9:
    0x0001d82a mov r0, r6                                            |         r0 = r6;
    0x0001d82c blx 0xde30                                            |         fcn_0000de30 ();
    0x0001d830 mov r0, sl                                            |         r0 = sl;
    0x0001d832 bl 0x1c2c0                                            |         free_result ();
    0x0001d836 ldr.w r0, [sb, 4]                                     |         r0 = *((sb + 4));
    0x0001d83a blx 0xe0ac                                            |         fcn_0000e0ac ();
    0x0001d83e subs r0, r4, 0                                        |         r0 = r4 - 0;
    0x0001d840 it ne                                                 |         
                                                                     |         if (r0 == r4) {
    0x0001d842 movne r0, 1                                           |             r0 = 1;
                                                                     |         }
    0x0001d844 blx 0xe3bc                                            |         fcn_0000e3bc ();
                                                                     | label_25:
    0x0001d848 blx 0xe158                                            |         fcn_0000e158 ();
                                                                     | label_29:
    0x0001d84c cmp.w sl, 0                                           |         
                                                                     |         if (sl == 0) {
    0x0001d850 beq 0x1d8ee                                           |             goto label_35;
                                                                     |         }
    0x0001d852 ldr.w r3, [sl, 0x28]                                  |         r3 = *((sl + 0x28));
    0x0001d856 lsls r5, r3, 0x1a                                     |         r5 = r3 << 0x1a;
    0x0001d858 bpl 0x1d816                                           |         
                                                                     |     } while (r5 >= r3);
                                                                     | label_34:
    0x0001d85a add.w r5, sl, 0x20                                    |     r5 = sl + 0x20;
    0x0001d85e movs r7, 0x6d                                         |     r7 = 0x6d;
                                                                     | label_10:
    0x0001d860 ldr r0, [r5]                                          |     r0 = *(r5);
    0x0001d862 blx 0xdf68                                            |     r0 = fcn_0000df68 ();
    0x0001d866 add.w fp, r0, 6                                       |     
    0x0001d86a mov r8, r0                                            |     r8 = r0;
    0x0001d86c cmp.w fp, 0x800                                       |     
                                                                     |     if (fp < 0x800) {
    0x0001d870 bls 0x1d8a2                                           |         goto label_36;
                                                                     |     }
    0x0001d872 vmov.f64 d16, 1.500000e+00                            |     __asm ("vmov.f64 d16, 1");
    0x0001d876 mov.w r3, 0x800                                       |     r3 = 0x800;
                                                                     |     do {
    0x0001d87a vmov s15, r3                                          |         __asm ("vmov s15, r3");
    0x0001d87e vcvt.f64.u32 d7, s15                                  |         __asm ("vcvt.f64.u32 d7, s15");
    0x0001d882 vmul.f64 d7, d7, d16                                  |         __asm ("vmul.f64 d7, d7, d16");
    0x0001d886 vcvt.u32.f64 s15, d7                                  |         __asm ("vcvt.u32.f64 s15, d7");
    0x0001d88a vmov r3, s15                                          |         __asm ("vmov r3, s15");
    0x0001d88e cmp fp, r3                                            |         
    0x0001d890 bhi 0x1d87a                                           |         
                                                                     |     } while (fp > r3);
    0x0001d892 ldr r0, [pc, 0x80]                                    |     
    0x0001d894 mov r2, r6                                            |     r2 = r6;
    0x0001d896 movw r1, 0x697                                        |     r1 = 0x697;
    0x0001d89a add r0, pc                                            |     r0 = 0x3b1b4;
    0x0001d89c bl 0x40e68                                            |     r0 = zbx_realloc2 ();
    0x0001d8a0 mov r6, r0                                            |     r6 = r0;
                                                                     | label_36:
    0x0001d8a2 str r4, [r6]                                          |     *(r6) = r4;
    0x0001d8a4 add.w r2, r8, 1                                       |     r2 = r8 + 1;
    0x0001d8a8 strb r7, [r6, 4]                                      |     *((r6 + 4)) = r7;
    0x0001d8aa adds r0, r6, 5                                        |     r0 = r6 + 5;
    0x0001d8ac ldr r1, [r5]                                          |     r1 = *(r5);
    0x0001d8ae blx 0xdf84                                            |     fcn_0000df84 ();
    0x0001d8b2 ldr.w r0, [sb, 4]                                     |     r0 = *((sb + 4));
    0x0001d8b6 mov r2, fp                                            |     r2 = fp;
    0x0001d8b8 mov r1, r6                                            |     r1 = r6;
    0x0001d8ba bl 0x3fc84                                            |     r0 = zbx_write_all ();
    0x0001d8be mov r4, r0                                            |     r4 = r0;
    0x0001d8c0 b 0x1d82a                                             |     goto label_9;
                                                                     | label_33:
    0x0001d8c2 movs r7, 0x64                                         |     r7 = 0x64;
                                                                     | label_12:
    0x0001d8c4 movs r1, 8                                            |     r1 = 8;
    0x0001d8c6 mov r0, sl                                            |     r0 = sl;
    0x0001d8c8 bl 0x1ced8                                            |     r0 = get_result_value_by_type ();
    0x0001d8cc mov r5, r0                                            |     r5 = r0;
    0x0001d8ce cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0001d8d0 bne 0x1d860                                           |         goto label_10;
                                                                     |     }
    0x0001d8d2 b 0x1d814                                             |     goto label_11;
                                                                     | label_32:
    0x0001d8d4 movs r7, 0x75                                         |     r7 = 0x75;
    0x0001d8d6 b 0x1d8c4                                             |     goto label_12;
                                                                     | label_31:
    0x0001d8d8 movs r7, 0x73                                         |     r7 = 0x73;
    0x0001d8da b 0x1d8c4                                             |     goto label_12;
                                                                     | label_30:
    0x0001d8dc movs r7, 0x74                                         |     r7 = 0x74;
    0x0001d8de b 0x1d8c4                                             |     goto label_12;
                                                                     | label_28:
    0x0001d8e0 ldr r1, [pc, 0x34]                                    |     
    0x0001d8e2 movs r0, 4                                            |     r0 = 4;
    0x0001d8e4 ldr r2, [r5]                                          |     r2 = *(r5);
    0x0001d8e6 add r1, pc                                            |     r1 = 0x3b202;
    0x0001d8e8 bl 0x30d1c                                            |     zbx_zabbix_log ();
    0x0001d8ec b 0x1d7e6                                             |     goto label_13;
                                                                     | label_35:
    0x0001d8ee ldr r3, [pc, 0x2c]                                    |     
    0x0001d8f0 movw r2, 0x5ce                                        |     r2 = 0x5ce;
    0x0001d8f4 ldr r1, [pc, 0x28]                                    |     
    0x0001d8f6 ldr r0, [pc, 0x2c]                                    |     
    0x0001d8f8 add r3, pc                                            |     r3 = 0x3b21a;
    0x0001d8fa add r1, pc                                            |     r1 = 0x3b21e;
    0x0001d8fc adds r3, 0x38                                         |     r3 += 0x38;
    0x0001d8fe add r0, pc                                            |     r0 = 0x3b228;
    0x0001d900 blx 0xdde4                                            |     shmdt ();
    0x0001d904 adds r1, 0x2c                                         |     r1 += 0x2c;
    0x0001d906 movs r3, r0                                           |     r3 = r0;
    0x0001d908 adds r5, 0xd2                                         |     r5 += 0xd2;
    0x0001d90a movs r3, r0                                           |     r3 = r0;
    0x0001d90c adds r1, 4                                            |     r1 += 4;
    0x0001d90e movs r3, r0                                           |     r3 = r0;
    0x0001d910 adds r4, 0x10                                         |     r4 += 0x10;
    0x0001d912 movs r3, r0                                           |     r3 = r0;
    0x0001d914 adds r0, 0x3e                                         |     r0 += 0x3e;
    0x0001d916 movs r3, r0                                           |     r3 = r0;
    0x0001d918 adds r3, 0x5a                                         |     r3 += 0x5a;
    0x0001d91a movs r3, r0                                           |     r3 = r0;
    0x0001d91c adds r4, 0xac                                         |     r4 += 0xac;
    0x0001d91e movs r3, r0                                           |     r3 = r0;
    0x0001d920 cmp r7, 0xde                                          |     
    0x0001d922 movs r3, r0                                           |     r3 = r0;
    0x0001d924 adds r2, 0xea                                         |     r2 += 0xea;
    0x0001d926 movs r3, r0                                           |     r3 = r0;
                                                                     | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x2ea64 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.zbx_get_remote_zabbix_stats_queue ()         | void zbx_get_remote_zabbix_stats_queue (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                             |     int16_t var_0h_2;
                                                             |     int16_t var_4h_3;
                                                             |     int16_t var_14h;
                                                             |     int16_t var_18h_2;
                                                             |     int16_t var_1ch;
                                                             |     int16_t var_26h;
                                                             |     int16_t var_2ch;
                                                             |     int16_t var_1000h_2;
                                                             |     int16_t var_0h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
    0x0002ea64 mvnsmi lr, 0xb4000                            |     __asm ("mvnsmi lr, 0xb4000");
    0x0002ea68 sub.w sp, sp, 0x1020                          |     
    0x0002ea6c sub sp, 4                                     |     
    0x0002ea6e mov r6, r2                                    |     r6 = r2;
    0x0002ea70 add.w r2, sp, 0x1040                          |     r2 += var_0h;
    0x0002ea74 mov r5, r3                                    |     r5 = r3;
    0x0002ea76 ldr.w sb, [r2]                                |     sb = *(r2);
    0x0002ea7a mov r8, r1                                    |     r8 = r1;
    0x0002ea7c ldr r2, [pc, 0xc0]                            |     
    0x0002ea7e add.w r1, sp, 0x1000                          |     r1 += var_1000h_2;
    0x0002ea82 ldr r3, [pc, 0xc0]                            |     r3 = *(0x2eb46);
    0x0002ea84 add r4, sp, 4                                 |     r4 += var_4h_3;
    0x0002ea86 adds r1, 0x1c                                 |     r1 += 0x1c;
    0x0002ea88 mov r7, r0                                    |     r7 = r0;
    0x0002ea8a add r2, pc                                    |     r2 = 0x5d5ce;
    0x0002ea8c mov r0, r4                                    |     r0 = r4;
    0x0002ea8e ldr r3, [r2, r3]                              |     
    0x0002ea90 ldr r3, [r3]                                  |     r3 = imp.__aeabi_unwind_cpp_pr0;
    0x0002ea92 str r3, [r1]                                  |     *(r1) = r3;
    0x0002ea94 mov.w r3, 0                                   |     r3 = 0;
    0x0002ea98 mov.w r1, 0x1000                              |     r1 = 0x1000;
    0x0002ea9c bl 0x3aae4                                    |     zbx_json_init ();
    0x0002eaa0 ldr r2, [pc, 0xa4]                            |     
    0x0002eaa2 movs r3, 1                                    |     r3 = 1;
    0x0002eaa4 ldr r1, [pc, 0xa4]                            |     
    0x0002eaa6 mov r0, r4                                    |     r0 = r4;
    0x0002eaa8 add r2, pc                                    |     r2 = 0x5d5f4;
    0x0002eaaa add r1, pc                                    |     r1 = 0x5d5fa;
    0x0002eaac bl 0x3ac9c                                    |     zbx_json_addstring ();
    0x0002eab0 ldr r1, [pc, 0x9c]                            |     
    0x0002eab2 mov r0, r4                                    |     r0 = r4;
    0x0002eab4 ldr r2, [pc, 0x9c]                            |     
    0x0002eab6 movs r3, 1                                    |     r3 = 1;
    0x0002eab8 add r1, pc                                    |     r1 = 0x5d60c;
    0x0002eaba add r2, pc                                    |     r2 = 0x5d612;
    0x0002eabc bl 0x3ac9c                                    |     zbx_json_addstring ();
    0x0002eac0 ldr r1, [pc, 0x94]                            |     
    0x0002eac2 mov r0, r4                                    |     r0 = r4;
    0x0002eac4 add r1, pc                                    |     r1 = 0x5d620;
    0x0002eac6 bl 0x3ac94                                    |     zbx_json_addobject ();
                                                             |     if (r6 != 0) {
    0x0002eaca cbz r6, 0x2ead0                               |         
    0x0002eacc ldrb r3, [r6]                                 |         r3 = *(r6);
                                                             |         if (r3 != 0) {
    0x0002eace cbnz r3, 0x2eb2a                              |             goto label_18;
                                                             |         }
                                                             |     }
                                                             |     if (r5 == 0) {
                                                             | label_0:
    0x0002ead0 cbz r5, 0x2ead6                               |         goto label_19;
                                                             |     }
    0x0002ead2 ldrb r3, [r5]                                 |     r3 = *(r5);
    0x0002ead4 cbnz r3, 0x2eb1a                              |     
                                                             |     while (1) {
                                                             | label_19:
    0x0002ead6 mov r0, r4                                    |         r0 = r4;
    0x0002ead8 bl 0x3af6c                                    |         zbx_json_close ();
    0x0002eadc mov r3, sb                                    |         r3 = sb;
    0x0002eade mov r2, r8                                    |         r2 = r8;
    0x0002eae0 mov r1, r7                                    |         r1 = r7;
    0x0002eae2 mov r0, r4                                    |         r0 = r4;
    0x0002eae4 bl 0x2e780                                    |         fcn_0002e780 (r0, r1, r2, r3);
    0x0002eae8 mov r0, r4                                    |         r0 = r4;
    0x0002eaea bl 0x3ac14                                    |         zbx_json_free ();
    0x0002eaee ldr r2, [pc, 0x6c]                            |         
    0x0002eaf0 add.w r1, sp, 0x1000                          |         r1 += var_1000h_2;
    0x0002eaf4 ldr r3, [pc, 0x4c]                            |         r3 = *(0x2eb44);
    0x0002eaf6 adds r1, 0x1c                                 |         r1 += 0x1c;
    0x0002eaf8 ldr.w r0, [sb, 0x28]                          |         r0 = *((sb + 0x28));
    0x0002eafc add r2, pc                                    |         r2 = 0x5d65e;
    0x0002eafe ldr r3, [r2, r3]                              |         r3 = imp.__aeabi_unwind_cpp_pr0;
    0x0002eb00 sbfx r0, r0, 5, 1                             |         __asm ("sbfx r0, r0, 5, 1");
    0x0002eb04 ldr r2, [r3]                                  |         r2 = imp.__aeabi_unwind_cpp_pr0;
    0x0002eb06 ldr r3, [r1]                                  |         r3 = *(r1);
    0x0002eb08 eors r2, r3                                   |         r2 ^= r3;
    0x0002eb0a mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x0002eb0e bne 0x2eb3a                                   |             goto label_20;
                                                             |         }
    0x0002eb10 add.w sp, sp, 0x1020                          |         
    0x0002eb14 add sp, 4                                     |         
    0x0002eb16 pop.w {r4, r5, r6, r7, r8, sb, pc}            |         
    0x0002eb1a ldr r1, [pc, 0x44]                            |         
    0x0002eb1c mov r2, r5                                    |         r2 = r5;
    0x0002eb1e movs r3, 1                                    |         r3 = 1;
    0x0002eb20 mov r0, r4                                    |         r0 = r4;
    0x0002eb22 add r1, pc                                    |         r1 = 0x5d688;
    0x0002eb24 bl 0x3ac9c                                    |         zbx_json_addstring ();
    0x0002eb28 b 0x2ead6                                     |         
                                                             |     }
                                                             | label_18:
    0x0002eb2a ldr r1, [pc, 0x38]                            |     
    0x0002eb2c mov r2, r6                                    |     r2 = r6;
    0x0002eb2e movs r3, 1                                    |     r3 = 1;
    0x0002eb30 mov r0, r4                                    |     r0 = r4;
    0x0002eb32 add r1, pc                                    |     r1 = 0x5d69c;
    0x0002eb34 bl 0x3ac9c                                    |     zbx_json_addstring ();
    0x0002eb38 b 0x2ead0                                     |     goto label_0;
                                                             | label_20:
    0x0002eb3a blx 0xe158                                    |     fcn_0000e158 ();
    0x0002eb3e nop                                           |     
                                                             |     if (r3 == 1) {
    0x0002eb40 bne 0x2ebe0                                   |         
    0x0002eb42 movs r2, r0                                   |         r2 = r0;
    0x0002eb44 lsls r4, r2, 0xe                              |         r4 = r2 << 0xe;
    0x0002eb46 movs r0, r0                                   |         
    0x0002eb48 cmp r8, sl                                    |         
    0x0002eb4a movs r2, r0                                   |         r2 = r0;
    0x0002eb4c invalid                                       |         
                                                             |     }
    0x0002ebe0 mov r0, r7                                    |     r0 = r7;
    0x0002ebe2 str r5, [sp]                                  |     *(sp) = r5;
    0x0002ebe4 bl 0x2ea64                                    |     zbx_get_remote_zabbix_stats_queue ();
    0x0002ebe8 subs r0, 0                                    |     
    0x0002ebea it ne                                         |     
                                                             |     if (r0 == 0) {
    0x0002ebec movne r0, 1                                   |         r0 = 1;
                                                             |     }
    0x0002ebee b 0x2ec0e                                     |     
    0x0002ec0e ldr r2, [pc, 0xb8]                            |     
    0x0002ec10 ldr r3, [pc, 0xa8]                            |     r3 = *(0x2ecbc);
    0x0002ec12 add r2, pc                                    |     r2 = 0x5d8e0;
    0x0002ec14 ldr r3, [r2, r3]                              |     r3 = imp.__aeabi_unwind_cpp_pr0;
    0x0002ec16 ldr r2, [r3]                                  |     r2 = imp.__aeabi_unwind_cpp_pr0;
    0x0002ec18 ldr r3, [sp, 0x14]                            |     r3 = var_14h;
    0x0002ec1a eors r2, r3                                   |     r2 ^= r3;
    0x0002ec1c mov.w r3, 0                                   |     r3 = 0;
                                                             |     if (r2 == r3) {
    0x0002ec20 bne 0x2ecb4                                   |         
    0x0002ec22 add sp, 0x1c                                  |         
    0x0002ec24 pop {r4, r5, r6, r7, pc}                      |         
                                                             |     }
    0x0002ecb4 blx 0xe158                                    |     fcn_0000e158 ();
                                                             |     if (r2 != r3) {
    0x0002ecb8 beq 0x2ed88                                   |         
    0x0002ecba movs r2, r0                                   |         r2 = r0;
    0x0002ecbc lsls r4, r2, 0xe                              |         r4 = r2 << 0xe;
    0x0002ecbe movs r0, r0                                   |         
    0x0002ecc0 ldr r7, [pc, 0x350]                           |         r7 = *(0x2f014);
    0x0002ecc2 movs r2, r0                                   |         r2 = r0;
    0x0002ecc4 ldr r6, [pc, 0x248]                           |         r6 = *(0x2ef10);
    0x0002ecc6 movs r2, r0                                   |         r2 = r0;
    0x0002ecc8 ldm r7, {r1, r2, r6, r7}                      |         r1 = *(r7);
                                                             |         r2 = *((r7 + 4));
                                                             |         r6 = *((r7 + 8));
                                                             |         r7 = *((r7 + 12));
    0x0002ecca movs r2, r0                                   |         r2 = r0;
    0x0002eccc movs r2, 0xa0                                 |         r2 = 0xa0;
    0x0002ecce movs r2, r0                                   |         r2 = r0;
    0x0002ecd0 ldr r6, [pc, 0x3c0]                           |         r6 = *(0x2f094);
    0x0002ecd2 movs r2, r0                                   |         r2 = r0;
    0x0002ecd4 lsrs r4, r0, 8                                |         r4 = r0 >> 8;
    0x0002ecd6 movs r2, r0                                   |         r2 = r0;
    0x0002ecd8 ldr r6, [pc, 0x340]                           |         r6 = *(0x2f01c);
    0x0002ecda movs r2, r0                                   |         r2 = r0;
    0x0002ecdc ldr r6, [pc, 0xa0]                            |         r6 = *(0x2ed80);
    0x0002ecde movs r2, r0                                   |         r2 = r0;
    0x0002ece0 ldr r6, [pc, 0x88]                            |         r6 = *(0x2ed6c);
    0x0002ece2 movs r2, r0                                   |         r2 = r0;
    0x0002ece4 movs r0, 0xe2                                 |         r0 = 0xe2;
    0x0002ece6 movs r2, r0                                   |         r2 = r0;
    0x0002ece8 ldr r6, [pc, 0x1f8]                           |         r6 = *(0x2eee4);
    0x0002ecea movs r2, r0                                   |         r2 = r0;
    0x0002ecec movs r0, r0                                   |         
    0x0002ecee movs r0, r0                                   |         
                                                             |     }
    0x0002ed88 add.w r6, r0, r0, lsl 18                      |     r6 = r0 + (r0 << 18);
    0x0002ed8c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0002ed8e beq 0x2ee46                                   |         goto label_21;
                                                             |     }
                                                             |     if (r7 != 0) {
                                                             | label_2:
    0x0002ed90 cbz r7, 0x2ed9a                               |         
    0x0002ed92 ldrb r3, [r7]                                 |         r3 = *(r7);
    0x0002ed94 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x0002ed96 bne.w 0x2f0f4                                 |             goto label_22;
                                                             |         }
                                                             |     }
                                                             |     if (r5 != 0) {
    0x0002ed9a cbz r5, 0x2eda4                               |         
    0x0002ed9c ldrb r3, [r5]                                 |         r3 = *(r5);
    0x0002ed9e cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x0002eda0 bne.w 0x2f0f4                                 |             goto label_22;
                                                             |         }
                                                             |     }
    0x0002eda4 ldr.w r5, [pc, 0x480]                         |     
    0x0002eda8 movs r2, 7                                    |     r2 = 7;
    0x0002edaa mov r0, r4                                    |     r0 = r4;
    0x0002edac add r5, pc                                    |     r5 = 0x5dfd8;
    0x0002edae mov r1, r5                                    |     r1 = r5;
    0x0002edb0 bl 0x44f30                                    |     r0 = zbx_strncasecmp ();
    0x0002edb4 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0002edb6 bne.w 0x2ef86                                 |         goto label_23;
                                                             |     }
    0x0002edba movs r1, 0x23                                 |     r1 = 0x23;
    0x0002edbc mov r0, r4                                    |     r0 = r4;
    0x0002edbe blx 0xdcd4                                    |     r0 = fcn_0000dcd4 ();
    0x0002edc2 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0002edc4 beq.w 0x2f12a                                 |         goto label_24;
                                                             |     }
    0x0002edc8 ldr.w r2, [pc, 0x460]                         |     
    0x0002edcc add r2, pc                                    |     r2 = 0x5dffc;
                                                             | label_3:
    0x0002edce ldr.w r1, [pc, 0x460]                         |     
    0x0002edd2 subs r3, r0, r4                               |     r3 = r0 - r4;
    0x0002edd4 str r4, [sp]                                  |     *(sp) = r4;
    0x0002edd6 movs r0, 0                                    |     r0 = 0;
    0x0002edd8 add r1, pc                                    |     r1 = 0x5e00e;
    0x0002edda bl 0x44820                                    |     r0 = zbx_dsprintf ()
    0x0002edde mov r8, r0                                    |     r8 = r0;
                                                             | label_4:
    0x0002ede0 ldr.w r1, [pc, 0x450]                         |     r1 = *(0x0002f234);
    0x0002ede4 add.w r5, r8, 7                               |     r5 = r8 + 7;
    0x0002ede8 mov r0, r5                                    |     r0 = r5;
    0x0002edea add r1, pc                                    |     r1 += pc;
    0x0002edec blx 0xe2b0                                    |     r0 = fcn_0000e2b0 ();
    0x0002edf0 mov sb, r0                                    |     sb = r0;
    0x0002edf2 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0002edf4 beq.w 0x2f130                                 |         goto label_25;
                                                             |     }
    0x0002edf8 mov r2, r0                                    |     r2 = r0;
    0x0002edfa movs r1, 0x40                                 |     r1 = 0x40;
    0x0002edfc mov r0, r5                                    |     r0 = r5;
    0x0002edfe blx 0xe394                                    |     r0 = fcn_0000e394 ();
    0x0002ee02 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0002ee04 bne.w 0x2f10c                                 |         goto label_26;
                                                             |     }
    0x0002ee08 add.w r2, sb, -1                              |     r2 = sb + -1;
    0x0002ee0c add.w r7, sb, 7                               |     r7 = sb + 7;
    0x0002ee10 add r2, r5                                    |     r2 += r5;
    0x0002ee12 add r7, r8                                    |     r7 += r8;
    0x0002ee14 mov r3, r5                                    |     r3 = r5;
    0x0002ee16 b 0x2ee32                                     |     
                                                             |     while (r0 == 0) {
    0x0002ee18 ldrb r1, [r3, -0x1]                           |         r1 = *((r3 - 0x1));
    0x0002ee1c cmp r1, 0x3a                                  |         
                                                             |         if (r1 == 0x3a) {
    0x0002ee1e beq.w 0x2f090                                 |             goto label_27;
                                                             |         }
    0x0002ee22 sub.w r0, r1, 0x5b                            |         r0 = r1 - 0x5b;
    0x0002ee26 clz r0, r0                                    |         r0 &= r0;
    0x0002ee2a lsrs r0, r0, 5                                |         r0 >>= 5;
                                                             | label_1:
    0x0002ee2c cmp r3, r7                                    |         
                                                             |         if (r3 == r7) {
    0x0002ee2e beq.w 0x2f19a                                 |             goto label_28;
                                                             |         }
    0x0002ee32 mov r4, r3                                    |         r4 = r3;
    0x0002ee34 ldrb r1, [r3], 1                              |         r1 = *(r3);
                                                             |         r3++;
    0x0002ee38 cmp r0, 0                                     |         
    0x0002ee3a beq 0x2ee18                                   |         
                                                             |     }
    0x0002ee3c subs.w r0, r1, 0x5d                           |     r0 = r1 - 0x5d;
    0x0002ee40 it ne                                         |     
                                                             |     if (r0 == r1) {
    0x0002ee42 movne r0, 1                                   |         r0 = 1;
                                                             |     }
    0x0002ee44 b 0x2ee2c                                     |     goto label_1;
                                                             | label_21:
    0x0002ee46 movs r1, 0x3a                                 |     r1 = 0x3a;
    0x0002ee48 mov r0, r4                                    |     r0 = r4;
    0x0002ee4a blx 0xdcd4                                    |     r0 = fcn_0000dcd4 ();
                                                             |     if (r0 == 0) {
    0x0002ee4e cbz r0, 0x2ee5c                               |         goto label_29;
                                                             |     }
    0x0002ee50 adds r0, 1                                    |     r0++;
    0x0002ee52 movs r1, 0x3a                                 |     r1 = 0x3a;
    0x0002ee54 blx 0xdcd4                                    |     r0 = fcn_0000dcd4 ();
    0x0002ee58 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0002ee5a beq 0x2ed90                                   |         goto label_2;
                                                             |     }
                                                             |     if (r7 != 0) {
                                                             | label_29:
    0x0002ee5c cbz r7, 0x2ee66                               |         
    0x0002ee5e ldrb r3, [r7]                                 |         r3 = *(r7);
    0x0002ee60 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x0002ee62 bne.w 0x2eff6                                 |             goto label_30;
                                                             |         }
                                                             |     }
    0x0002ee66 add.w r7, sp, 0x26                            |     r7 += var_26h;
    0x0002ee6a movs r3, 0x50                                 |     r3 = 0x50;
    0x0002ee6c strh r3, [r7]                                 |     *(r7) = r3;
                                                             | label_8:
    0x0002ee6e cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x0002ee70 beq.w 0x2eff0                                 |         goto label_31;
                                                             |     }
                                                             | label_7:
    0x0002ee74 ldr.w sb, [pc, 0x3c0]                         |     
    0x0002ee78 mov r3, r5                                    |     r3 = r5;
    0x0002ee7a movs r2, 0                                    |     r2 = 0;
    0x0002ee7c mov.w r1, 0x172                               |     r1 = 0x172;
    0x0002ee80 add sb, pc                                    |     sb = 0x5e0bc;
    0x0002ee82 mov r0, sb                                    |     r0 = sb;
    0x0002ee84 bl 0x40ed8                                    |     zbx_strdup2 ();
    0x0002ee88 mov r3, r4                                    |     r3 = r4;
    0x0002ee8a ldr r2, [r6]                                  |     r2 = *(r6);
    0x0002ee8c movw r1, 0x173                                |     r1 = 0x173;
    0x0002ee90 mov r5, r0                                    |     r5 = r0;
    0x0002ee92 mov r0, sb                                    |     r0 = sb;
    0x0002ee94 bl 0x40ed8                                    |     zbx_strdup2 ();
    0x0002ee98 movs r1, 0x3a                                 |     r1 = 0x3a;
    0x0002ee9a str r0, [r6]                                  |     *(r6) = r0;
    0x0002ee9c blx 0xdcd4                                    |     r0 = fcn_0000dcd4 ();
    0x0002eea0 subs r4, r0, 0                                |     r4 = r0 - 0;
    0x0002eea2 it ne                                         |     
                                                             |     if (r4 == r0) {
    0x0002eea4 movne r4, 1                                   |         r4 = 1;
                                                             |     }
                                                             | label_16:
    0x0002eea6 mov r0, r6                                    |     r0 = r6;
    0x0002eea8 bl 0x4bc70                                    |     r0 = zbx_http_punycode_encode_url ();
    0x0002eeac cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0002eeae bne.w 0x2efda                                 |         goto label_32;
                                                             |     }
    0x0002eeb0 strh r4, [r2, 4]                              |     *((r2 + 4)) = r4;
    0x0002eeb2 ldr r2, [pc, 0x388]                           |     r2 = *(0x2f23e);
    0x0002eeb4 ldrh r3, [r7]                                 |     r3 = *(r7);
    0x0002eeb6 add r7, sp, 0x2c                              |     r7 += var_2ch;
    0x0002eeb8 ldr.w r2, [sl, r2]                            |     r2 = *((sl + r2));
    0x0002eebc strd r0, r0, [sp, 8]                          |     __asm ("strd r0, r0, [sp, 8]");
    0x0002eec0 movs r0, 1                                    |     r0 = 1;
    0x0002eec2 ldr r1, [r2]                                  |     r1 = *(0x2f23e);
    0x0002eec4 ldr r2, [pc, 0x378]                           |     
    0x0002eec6 str r0, [sp, 4]                               |     var_4h_3 = r0;
    0x0002eec8 mov r0, r7                                    |     r0 = r7;
    0x0002eeca ldr.w r2, [sl, r2]                            |     r2 = *((sl + r2));
    0x0002eece ldr r2, [r2]                                  |     r2 = *(0x2f240);
    0x0002eed0 str r2, [sp]                                  |     *(sp) = r2;
    0x0002eed2 ldr r2, [r6]                                  |     r2 = *(r6);
    0x0002eed4 bl 0x369e4                                    |     r0 = zbx_tcp_connect ();
                                                             |     if (r0 == 0) {
    0x0002eed8 cbnz r0, 0x2ef2e                              |         
    0x0002eeda ldrb r3, [r5]                                 |         r3 = *(r5);
    0x0002eedc cmp r3, 0x2f                                  |         
                                                             |         if (r3 == 0x2f) {
    0x0002eede beq 0x2efd4                                   |             goto label_33;
                                                             |         }
    0x0002eee0 ldr r2, [pc, 0x360]                           |         
    0x0002eee2 add r2, pc                                    |         r2 = 0x5e12a;
                                                             | label_5:
    0x0002eee4 ldr r1, [r6]                                  |         r1 = *(r6);
    0x0002eee6 cmp r4, 0                                     |         
                                                             |         if (r4 != 0) {
    0x0002eee8 bne.w 0x2f036                                 |             goto label_34;
                                                             |         }
    0x0002eeec ldr r3, [pc, 0x358]                           |         
    0x0002eeee add r3, pc                                    |         r3 = 0x5e13a;
    0x0002eef0 mov r0, r3                                    |         r0 = r3;
                                                             | label_9:
    0x0002eef2 strd r1, r0, [sp, 4]                          |         __asm ("strd r1, r0, [sp, 4]");
    0x0002eef6 movs r0, 0                                    |         r0 = 0;
    0x0002eef8 ldr r1, [pc, 0x350]                           |         
    0x0002eefa str r3, [sp]                                  |         *(sp) = r3;
    0x0002eefc mov r3, r5                                    |         r3 = r5;
    0x0002eefe add r1, pc                                    |         r1 = 0x5e14e;
    0x0002ef00 bl 0x44820                                    |         r0 = zbx_dsprintf ()
    0x0002ef04 mov sb, r0                                    |         sb = r0;
    0x0002ef06 blx 0xdf68                                    |         fcn_0000df68 ();
    0x0002ef0a movs r3, 0                                    |         r3 = 0;
    0x0002ef0c mov r2, r0                                    |         r2 = r0;
    0x0002ef0e mov r1, sb                                    |         r1 = sb;
    0x0002ef10 mov r0, r7                                    |         r0 = r7;
    0x0002ef12 strd r3, r3, [sp]                             |         __asm ("strd r3, r3, [sp]");
    0x0002ef16 bl 0x36a4c                                    |         r0 = zbx_tcp_send_ext ();
    0x0002ef1a mov r4, r0                                    |         r4 = r0;
    0x0002ef1c cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0002ef1e beq.w 0x2f040                                 |             goto label_35;
                                                             |         }
                                                             | label_10:
    0x0002ef22 mov r0, sb                                    |         r0 = sb;
    0x0002ef24 blx 0xde30                                    |         fcn_0000de30 ();
    0x0002ef28 mov r0, r7                                    |         r0 = r7;
    0x0002ef2a bl 0x3681c                                    |         zbx_tcp_close ();
                                                             |     }
    0x0002ef2e bl 0x36860                                    |     zbx_socket_strerror ();
    0x0002ef32 ldr r1, [pc, 0x31c]                           |     
    0x0002ef34 mov r2, r0                                    |     r2 = r0;
    0x0002ef36 movs r0, 0                                    |     r0 = 0;
    0x0002ef38 add r1, pc                                    |     r1 = 0x5e18e;
    0x0002ef3a bl 0x44820                                    |     zbx_dsprintf ()
                                                             | label_6:
    0x0002ef3e ldr r3, [sp, 0x14]                            |     r3 = var_14h;
    0x0002ef40 str r0, [r3]                                  |     *(r3) = r0;
    0x0002ef42 cmp.w r8, 0                                   |     
                                                             |     if (r8 != 0) {
    0x0002ef46 beq 0x2ef4e                                   |         
    0x0002ef48 mov r0, r8                                    |         r0 = r8;
    0x0002ef4a blx 0xde30                                    |         fcn_0000de30 ();
                                                             |     }
    0x0002ef4e cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x0002ef50 beq.w 0x2f0f0                                 |         goto label_13;
                                                             |     }
    0x0002ef54 movs r4, 1                                    |     r4 = 1;
                                                             | label_11:
    0x0002ef56 mov r0, r5                                    |     r0 = r5;
    0x0002ef58 blx 0xde30                                    |     fcn_0000de30 ();
                                                             | label_12:
    0x0002ef5c ldr r0, [r6]                                  |     r0 = *(r6);
                                                             |     if (r0 == 0) {
    0x0002ef5e cbz r0, 0x2ef64                               |         void (*0x2ef64)() ();
                                                             |     }
    0x0002ef60 blx 0xde30                                    |     fcn_0000de30 ();
                                                             | label_23:
    0x0002ef86 ldr r1, [pc, 0x2d0]                           |     
    0x0002ef88 mov r0, r4                                    |     r0 = r4;
    0x0002ef8a add r1, pc                                    |     r1 = 0x5e1e8;
    0x0002ef8c blx 0xe090                                    |     r0 = res_ninit ();
    0x0002ef90 mov r7, r0                                    |     r7 = r0;
                                                             |     if (r0 != 0) {
    0x0002ef92 cbz r0, 0x2efb4                               |         
    0x0002ef94 ldr r1, [pc, 0x2c4]                           |         
    0x0002ef96 mov r0, r4                                    |         r0 = r4;
    0x0002ef98 add r1, pc                                    |         r1 = 0x5e1f8;
    0x0002ef9a blx 0xe388                                    |         fcn_0000e388 ();
    0x0002ef9c ldrd r4, r2, [r6, 0x21c]!                     |         __asm ("ldrd r4, r2, [r6, 0x21c]!");
    0x0002efa0 ite hs                                        |         
                                                             |         if (r0 < 0) {
    0x0002efa2 movhs r3, 0                                   |             r3 = 0;
                                                             |         }
                                                             |         if (r0 >= 0) {
    0x0002efa4 movlo r3, 1                                   |             r3 = 1;
                                                             |         }
    0x0002efa6 cmp r0, 0                                     |         
    0x0002efa8 it eq                                         |         
                                                             |         if (r0 != 0) {
    0x0002efaa orreq r3, r3, 1                               |             r3 |= 1;
                                                             |         }
    0x0002efae cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x0002efb0 bne.w 0x2f1fa                                 |             goto label_36;
                                                             |         }
                                                             |     }
    0x0002efb4 movs r1, 0x23                                 |     r1 = 0x23;
    0x0002efb6 mov r0, r4                                    |     r0 = r4;
    0x0002efb8 blx 0xdcd4                                    |     fcn_0000dcd4 ();
    0x0002efbc mov r2, r5                                    |     r2 = r5;
    0x0002efbe cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0002efc0 bne.w 0x2edce                                 |         goto label_3;
                                                             |     }
                                                             | label_14:
    0x0002efc4 ldr r1, [pc, 0x298]                           |     
    0x0002efc6 mov r3, r4                                    |     r3 = r4;
    0x0002efc8 movs r0, 0                                    |     r0 = 0;
    0x0002efca add r1, pc                                    |     r1 = 0x5e22e;
    0x0002efcc bl 0x44820                                    |     r0 = zbx_dsprintf ()
    0x0002efd0 mov r8, r0                                    |     r8 = r0;
    0x0002efd2 b 0x2ede0                                     |     goto label_4;
                                                             | label_33:
    0x0002efd4 ldr r2, [pc, 0x28c]                           |     
    0x0002efd6 add r2, pc                                    |     r2 = 0x5e23e;
    0x0002efd8 b 0x2eee4                                     |     goto label_5;
                                                             | label_32:
    0x0002efda ldr r2, [sp, 0x14]                            |     r2 = var_14h;
    0x0002efdc movw r1, 0x17b                                |     r1 = 0x17b;
    0x0002efe0 ldr r3, [pc, 0x284]                           |     
    0x0002efe2 ldr r0, [pc, 0x288]                           |     
    0x0002efe4 ldr r2, [r2]                                  |     r2 = *(r2);
    0x0002efe6 add r3, pc                                    |     r3 = 0x5e252;
    0x0002efe8 add r0, pc                                    |     r0 = 0x5e25a;
    0x0002efea bl 0x40ed8                                    |     zbx_strdup2 ();
    0x0002efee b 0x2ef3e                                     |     goto label_6;
                                                             | label_31:
    0x0002eff0 ldr r5, [pc, 0x27c]                           |     
    0x0002eff2 add r5, pc                                    |     r5 = 0x5e266;
    0x0002eff4 b 0x2ee74                                     |     goto label_7;
                                                             | label_30:
    0x0002eff6 vmov.i64 d17, 0xffff                          |     __asm ("vmov.i64 d17, 0xffff");
    0x0002effa mov r0, r7                                    |     r0 = r7;
    0x0002effc vmov.i32 d16, 0                               |     __asm ("vmov.i32 d16, 0");
    0x0002f000 add.w r7, sp, 0x26                            |     r7 += var_26h;
    0x0002f004 movs r3, 2                                    |     r3 = 2;
    0x0002f006 mov r2, r7                                    |     r2 = r7;
    0x0002f008 mov.w r1, -1                                  |     r1 = -1;
    0x0002f00c vstr d17, [sp, 8]                             |     __asm ("vstr d17, [sp, 8]");
    0x0002f010 vstr d16, [sp]                                |     __asm ("vstr d16, [sp]");
    0x0002f014 bl 0x419a8                                    |     is_uint_n_range ();
    0x0002f018 adds r0, 1                                    |     r0++;
                                                             |     if (r0 != 1) {
    0x0002f01a bne.w 0x2ee6e                                 |         goto label_8;
                                                             |     }
    0x0002f01e ldr r4, [sp, 0x14]                            |     r4 = var_14h;
    0x0002f020 movw r1, 0x16d                                |     r1 = 0x16d;
    0x0002f024 ldr r3, [pc, 0x24c]                           |     
    0x0002f026 ldr r0, [pc, 0x250]                           |     
    0x0002f028 ldr r2, [r4]                                  |     r2 = *(r4);
    0x0002f02a add r3, pc                                    |     r3 = 0x5e2a2;
    0x0002f02c add r0, pc                                    |     r0 = 0x5e2aa;
    0x0002f02e bl 0x40ed8                                    |     zbx_strdup2 ();
    0x0002f032 str r0, [r4]                                  |     *(r4) = r0;
    0x0002f034 b 0x2f0f0                                     |     goto label_13;
                                                             | label_34:
    0x0002f036 ldr r3, [pc, 0x244]                           |     
    0x0002f038 ldr r0, [pc, 0x244]                           |     
    0x0002f03a add r3, pc                                    |     r3 = 0x5e2bc;
    0x0002f03c add r0, pc                                    |     r0 = 0x5e2c0;
    0x0002f03e b 0x2eef2                                     |     goto label_9;
                                                             | label_35:
    0x0002f040 mov r1, r0                                    |     r1 = r0;
    0x0002f042 mov r0, r7                                    |     r0 = r7;
    0x0002f044 bl 0x37af8                                    |     zbx_tcp_recv_raw_ext ();
    0x0002f048 adds r0, 1                                    |     r0++;
                                                             |     if (r0 == 1) {
    0x0002f04a beq.w 0x2ef22                                 |         goto label_10;
                                                             |     }
    0x0002f04e ldr r3, [sp, 0x18]                            |     r3 = var_18h_2;
                                                             |     if (r3 != 0) {
    0x0002f050 cbz r3, 0x2f074                               |         
    0x0002f052 ldr r2, [sp, 0x18]                            |         r2 = var_18h_2;
    0x0002f054 movw r1, 0x193                                |         r1 = 0x193;
    0x0002f058 ldr r0, [pc, 0x228]                           |         
    0x0002f05a mov.w r3, 0x100000                            |         r3 = 0x100000;
    0x0002f05e ldr r2, [r2]                                  |         r2 = *(r2);
    0x0002f060 add r0, pc                                    |         r0 = 0x5e2e8;
    0x0002f062 bl 0x40dd8                                    |         zbx_malloc2 ();
    0x0002f066 ldr r2, [sp, 0x18]                            |         r2 = var_18h_2;
    0x0002f068 ldr r1, [r7, 0xc]                             |         r1 = *((r7 + 0xc));
    0x0002f06a str r0, [r2]                                  |         *(r2) = r0;
    0x0002f06c mov.w r2, 0x100000                            |         r2 = 0x100000;
    0x0002f070 bl 0x4465c                                    |         zbx_strlcpy ();
                                                             |     }
    0x0002f074 mov r0, sb                                    |     r0 = sb;
    0x0002f076 blx 0xde30                                    |     fcn_0000de30 ();
    0x0002f07a mov r0, r7                                    |     r0 = r7;
    0x0002f07c bl 0x3681c                                    |     zbx_tcp_close ();
    0x0002f080 cmp.w r8, 0                                   |     
                                                             |     if (r8 == 0) {
    0x0002f084 beq.w 0x2ef56                                 |         goto label_11;
                                                             |     }
    0x0002f088 mov r0, r8                                    |     r0 = r8;
    0x0002f08a blx 0xde30                                    |     fcn_0000de30 ();
    0x0002f08e b 0x2ef56                                     |     goto label_11;
                                                             | label_27:
    0x0002f090 subs r2, r2, r4                               |     r2 -= r4;
    0x0002f092 cmp r2, 0                                     |     
                                                             |     if (r2 > 0) {
    0x0002f094 ble 0x2f0d6                                   |         
    0x0002f096 ldr r3, [pc, 0x1f0]                           |         
    0x0002f098 add.w r7, sp, 0x26                            |         r7 += var_26h;
    0x0002f09c add r3, pc                                    |         r3 = 0x5e32a;
    0x0002f09e mov r1, r3                                    |         r1 = r3;
    0x0002f0a0 str r3, [sp, 0x1c]                            |         var_1ch = r3;
    0x0002f0a2 adds r3, r4, 1                                |         r3 = r4 + 1;
    0x0002f0a4 bl 0x44820                                    |         zbx_dsprintf ()
    0x0002f0a8 vmov.i64 d17, 0xffff                          |         __asm ("vmov.i64 d17, 0xffff");
    0x0002f0ac movs r3, 2                                    |         r3 = 2;
    0x0002f0ae vmov.i32 d16, 0                               |         __asm ("vmov.i32 d16, 0");
    0x0002f0b2 mov r2, r7                                    |         r2 = r7;
    0x0002f0b4 mov.w r1, -1                                  |         r1 = -1;
    0x0002f0b8 mov fp, r0                                    |         
    0x0002f0ba vstr d17, [sp, 8]                             |         __asm ("vstr d17, [sp, 8]");
    0x0002f0be vstr d16, [sp]                                |         __asm ("vstr d16, [sp]");
    0x0002f0c2 bl 0x419a8                                    |         r0 = is_uint_n_range ();
    0x0002f0c6 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0002f0c8 beq 0x2f136                                   |             goto label_37;
                                                             |         }
    0x0002f0ca cmp.w fp, 0                                   |         
                                                             |         if (fp == 0) {
    0x0002f0ce beq 0x2f0d6                                   |             goto label_38;
                                                             |         }
    0x0002f0d0 mov r0, fp                                    |         r0 = fp;
    0x0002f0d2 blx 0xde30                                    |         fcn_0000de30 ();
                                                             |     }
                                                             | label_38:
    0x0002f0d6 ldr r1, [pc, 0x1b4]                           |     
    0x0002f0d8 add r1, pc                                    |     r1 = 0x5e36a;
                                                             | label_15:
    0x0002f0da ldr r4, [sp, 0x14]                            |     r4 = var_14h;
    0x0002f0dc ldr r0, [r4]                                  |     r0 = *(r4);
    0x0002f0de bl 0x44820                                    |     zbx_dsprintf ()
    0x0002f0e2 str r0, [r4]                                  |     *(r4) = r0;
    0x0002f0e4 cmp.w r8, 0                                   |     
    0x0002f0e8 beq 0x2f0f0                                   |     
                                                             |     while (r8 != 0) {
    0x0002f0ea mov r0, r8                                    |         r0 = r8;
    0x0002f0ec blx 0xde30                                    |         fcn_0000de30 ();
                                                             | label_13:
    0x0002f0f0 movs r4, 1                                    |         r4 = 1;
    0x0002f0f2 b 0x2ef5c                                     |         goto label_12;
                                                             | label_22:
    0x0002f0f4 ldr r4, [sp, 0x14]                            |         r4 = var_14h;
    0x0002f0f6 movs r1, 0x47                                 |         r1 = 0x47;
    0x0002f0f8 ldr r3, [pc, 0x194]                           |         
    0x0002f0fa ldr r0, [pc, 0x198]                           |         
    0x0002f0fc ldr r2, [r4]                                  |         r2 = *(r4);
    0x0002f0fe add r3, pc                                    |         r3 = 0x5e392;
    0x0002f100 add r0, pc                                    |         r0 = 0x5e39a;
    0x0002f102 bl 0x40ed8                                    |         zbx_strdup2 ();
    0x0002f106 str r0, [r4]                                  |         *(r4) = r0;
                                                             | label_26:
    0x0002f10c ldr r4, [sp, 0x14]                            |         r4 = var_14h;
    0x0002f10e movw r1, 0x12d                                |         r1 = 0x12d;
    0x0002f112 ldr r3, [pc, 0x184]                           |         
    0x0002f114 ldr r0, [pc, 0x184]                           |         
    0x0002f116 ldr r2, [r4]                                  |         r2 = *(r4);
    0x0002f118 add r3, pc                                    |         r3 = 0x5e3b6;
    0x0002f11a add r0, pc                                    |         r0 = 0x5e3ba;
    0x0002f11c bl 0x40ed8                                    |         zbx_strdup2 ();
    0x0002f120 str r0, [r4]                                  |         *(r4) = r0;
    0x0002f122 cmp.w r8, 0                                   |         
    0x0002f126 bne 0x2f0ea                                   |         
                                                             |     }
    0x0002f128 b 0x2f0f0                                     |     goto label_13;
                                                             | label_24:
    0x0002f12a ldr r2, [pc, 0x174]                           |     
    0x0002f12c add r2, pc                                    |     r2 = 0x5e3d2;
    0x0002f12e b 0x2efc4                                     |     goto label_14;
                                                             | label_25:
    0x0002f130 ldr r1, [pc, 0x170]                           |     
    0x0002f132 add r1, pc                                    |     r1 = 0x5e3da;
    0x0002f134 b 0x2f0da                                     |     goto label_15;
                                                             | label_37:
    0x0002f136 ldr r1, [sp, 0x1c]                            |     r1 = var_1ch;
    0x0002f138 subs r2, r4, r5                               |     r2 = r4 - r5;
    0x0002f13a ldr r0, [r6]                                  |     r0 = *(r6);
    0x0002f13c mov r3, r5                                    |     r3 = r5;
    0x0002f13e bl 0x44820                                    |     zbx_dsprintf ()
    0x0002f142 str r0, [r6]                                  |     *(r6) = r0;
    0x0002f144 cmp.w fp, 0                                   |     
                                                             |     if (fp != 0) {
    0x0002f148 beq 0x2f152                                   |         
    0x0002f14a mov r0, fp                                    |         r0 = fp;
    0x0002f14c blx 0xde30                                    |         fcn_0000de30 ();
    0x0002f150 ldr r0, [r6]                                  |         r0 = *(r6);
                                                             |     }
                                                             | label_17:
    0x0002f152 ldrb r3, [r0]                                 |     r3 = *(r0);
    0x0002f154 cmp r3, 0x5b                                  |     
    0x0002f156 it ne                                         |     
                                                             |     if (r3 == 0x5b) {
    0x0002f158 movne r4, 0                                   |         r4 = 0;
                                                             |     }
    0x0002f15a beq 0x2f180                                   |     
                                                             |     while (1) {
    0x0002f15c cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x0002f15e beq 0x2f1e0                                   |             goto label_39;
                                                             |         }
    0x0002f160 ldrb.w r2, [r5, sb]                           |         r2 = *((r5 + sb));
    0x0002f164 add.w r3, r5, sb                              |         r3 = r5 + sb;
                                                             |         if (r2 == 0) {
    0x0002f168 cbnz r2, 0x2f16e                              |             
    0x0002f16a ldr r3, [pc, 0x13c]                           |             
    0x0002f16c add r3, pc                                    |             r3 = 0x5e41a;
                                                             |         }
    0x0002f16e ldr r0, [pc, 0x13c]                           |         
    0x0002f170 movs r2, 0                                    |         r2 = 0;
    0x0002f172 movw r1, 0x161                                |         r1 = 0x161;
    0x0002f176 add r0, pc                                    |         r0 = 0x5e428;
    0x0002f178 bl 0x40ed8                                    |         r0 = zbx_strdup2 ();
    0x0002f17c mov r5, r0                                    |         r5 = r0;
    0x0002f17e b 0x2eea6                                     |         goto label_16;
    0x0002f180 ldr r1, [pc, 0x12c]                           |         
    0x0002f182 movs r4, 1                                    |         r4 = 1;
    0x0002f184 add r1, pc                                    |         r1 = 0x5e438;
    0x0002f186 bl 0x44534                                    |         zbx_ltrim ();
    0x0002f18a ldr r1, [pc, 0x128]                           |         
    0x0002f18c ldr r0, [r6]                                  |         r0 = *(r6);
    0x0002f18e add r1, pc                                    |         r1 = 0x5e448;
    0x0002f190 bl 0x444f4                                    |         zbx_rtrim ();
    0x0002f194 ldr r3, [r6]                                  |         r3 = *(r6);
    0x0002f196 ldrb r3, [r3]                                 |         r3 = *(r3);
    0x0002f198 b 0x2f15c                                     |         
                                                             |     }
                                                             | label_28:
    0x0002f19a ldr r1, [pc, 0x11c]                           |     
    0x0002f19c movs r3, 0x50                                 |     r3 = 0x50;
    0x0002f19e strh.w r3, [sp, 0x26]                         |     var_26h = r3;
    0x0002f1a2 mov r2, sb                                    |     r2 = sb;
    0x0002f1a4 ldr r0, [r6]                                  |     r0 = *(r6);
    0x0002f1a6 mov r3, r5                                    |     r3 = r5;
    0x0002f1a8 add r1, pc                                    |     r1 = 0x5e466;
    0x0002f1aa add.w r7, sp, 0x26                            |     r7 += var_26h;
    0x0002f1ae bl 0x44820                                    |     zbx_dsprintf ()
    0x0002f1b2 str r0, [r6]                                  |     *(r6) = r0;
    0x0002f1b4 b 0x2f152                                     |     goto label_17;
                                                             | label_39:
    0x0002f1e0 ldr r1, [pc, 0xe4]                            |     
    0x0002f1e2 add r1, pc                                    |     r1 = 0x5e4ae;
    0x0002f1e4 b 0x2f0da                                     |     goto label_15;
                                                             | label_36:
    0x0002f1fa ldr r5, [sp, 0x14]                            |     r5 = var_14h;
    0x0002f1fc mov r3, r4                                    |     r3 = r4;
    0x0002f1fe ldr r1, [pc, 0xd0]                            |     
    0x0002f200 subs r2, r7, r4                               |     r2 = r7 - r4;
    0x0002f202 ldr r0, [r5]                                  |     r0 = *(r5);
    0x0002f204 add r1, pc                                    |     r1 = 0x5e4da;
    0x0002f206 bl 0x44820                                    |     zbx_dsprintf ()
    0x0002f20a str r0, [r5]                                  |     *(r5) = r0;
    0x0002f20c b 0x2f108                                     |     return void (*0x2f108)() ();
                                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x4240c */
                                                                 | #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;
                                                                 |     int32_t var_20h_2;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x0004240c push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00042410 sub sp, 0x2c                                      |     
    0x00042412 mov r8, r0                                        |     r8 = r0;
    0x00042414 str r1, [sp, 0x10]                                |     var_10h = r1;
    0x00042416 movs r1, 0x3b                                     |     r1 = 0x3b;
    0x00042418 mov r4, r2                                        |     r4 = r2;
    0x0004241a mov r7, r3                                        |     r7 = r3;
    0x0004241c blx 0xdcd4                                        |     r0 = fcn_0000dcd4 ();
    0x00042420 mov r6, r0                                        |     r6 = r0;
    0x00042422 sub.w r2, r0, r8                                  |     r2 = r0 - r8;
    0x00042426 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00042428 beq.w 0x42616                                     |         goto label_15;
                                                                 |     }
                                                                 | label_6:
    0x0004242c ldr r1, [sp, 0x10]                                |     r1 = var_10h;
    0x0004242e mov r0, r8                                        |     r0 = r8;
    0x00042430 bl 0x4186c                                        |     r0 = is_time_suffix ();
    0x00042434 mov r5, r0                                        |     r5 = r0;
    0x00042436 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00042438 bne.w 0x42650                                     |         goto label_16;
                                                                 |     }
    0x0004243c cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x0004243e beq 0x4253a                                       |         goto label_17;
                                                                 |     }
    0x00042440 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x00042442 beq.w 0x42620                                     |         goto label_18;
                                                                 |     }
    0x00042446 ldr r3, [pc, 0x22c]                               |     
    0x00042448 mov sb, r5                                        |     sb = r5;
    0x0004244a add r3, pc                                        |     r3 = 0x84ac4;
    0x0004244c str r3, [sp, 0x14]                                |     var_14h = r3;
    0x0004244e ldr r3, [pc, 0x228]                               |     
    0x00042450 add r3, pc                                        |     r3 = 0x84ace;
    0x00042452 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x00042454 blx 0xe110                                        |     r0 = fcn_0000e110 ();
    0x00042458 mov sl, r0                                        |     sl = r0;
    0x0004245a str r5, [sp, 0xc]                                 |     var_ch = r5;
    0x0004245c strd r5, r4, [sp, 0x20]                           |     __asm ("strd r5, r4, [var_20h]");
    0x00042460 str r7, [sp, 0x1c]                                |     var_1ch = r7;
                                                                 | label_0:
    0x00042462 add.w r8, r6, 1                                   |     r8 = r6 + 1;
    0x00042466 movs r1, 0x3b                                     |     r1 = 0x3b;
    0x00042468 mov r0, r8                                        |     r0 = r8;
    0x0004246a blx 0xdcd4                                        |     fcn_0000dcd4 ();
    0x0004246e ldrb r2, [r6, 1]                                  |     r2 = *((r6 + 1));
    0x00042470 mov r6, r0                                        |     r6 = r0;
    0x00042472 ldr.w r3, [sl]                                    |     r3 = *(sl);
    0x00042476 ldrh.w r5, [r3, r2, lsl 1]                        |     offset_0 = r2 << 1;
                                                                 |     r5 = *((r3 + offset_0));
    0x0004247a ands r5, r5, 0x800                                |     r5 &= 0x800;
                                                                 |     if (r5 == r5) {
    0x0004247e beq 0x42542                                       |         goto label_19;
                                                                 |     }
    0x00042480 ldr r0, [sp, 0x18]                                |     r0 = var_18h;
    0x00042482 movs r3, 0x18                                     |     r3 = 0x18;
    0x00042484 movs r2, 0                                        |     r2 = 0;
    0x00042486 movw r1, 0x7eb                                    |     r1 = 0x7eb;
    0x00042488 strb r3, [r5, 7]                                  |     *((r5 + 7)) = r3;
    0x0004248a bl 0x40dd8                                        |     zbx_malloc2 ();
    0x0004248e sub.w r4, r6, r8                                  |     r4 = r6 - r8;
    0x00042492 mov fp, r0                                        |     
    0x00042494 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x00042496 beq.w 0x425e0                                     |         goto label_20;
                                                                 |     }
    0x0004249a cmp r4, 0                                         |     
                                                                 |     if (r4 <= 0) {
    0x0004249c ble.w 0x425ee                                     |         goto label_21;
                                                                 |     }
                                                                 | label_2:
    0x000424a0 mov r2, r8                                        |     r2 = r8;
    0x000424a2 b 0x424a8                                         |     
                                                                 |     while (r5 != 0x2f) {
    0x000424a4 subs r4, 1                                        |         r4--;
                                                                 |         if (r4 == 1) {
    0x000424a6 beq 0x42582                                       |             goto label_22;
                                                                 |         }
    0x000424a8 mov r7, r2                                        |         r7 = r2;
    0x000424aa ldrb r5, [r2], 1                                  |         r5 = *(r2);
                                                                 |         r2++;
    0x000424ae cmp r5, 0x2f                                      |         
    0x000424b0 it ne                                             |         
                                                                 |         if (r5 != 0x2f) {
    0x000424b2 cmpne r5, 0                                       |             __asm ("cmpne r5, 0");
                                                                 |         }
    0x000424b4 bne 0x424a4                                       |         
                                                                 |     }
    0x000424b6 sub.w r2, r7, r8                                  |     r2 = r7 - r8;
    0x000424ba add.w r1, fp, 0x10                                |     r1 += arg_10h;
    0x000424be mov r0, r8                                        |     r0 = r8;
    0x000424c0 bl 0x4186c                                        |     r0 = is_time_suffix ();
    0x000424c4 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000424c6 bne.w 0x4261c                                     |         goto label_23;
                                                                 |     }
    0x000424ca cmp r5, 0x2f                                      |     
    0x000424cc add.w r2, r4, -1                                  |     r2 = r4 + -1;
    0x000424d0 add.w r1, r7, 1                                   |     r1 = r7 + 1;
                                                                 |     if (r5 != 0x2f) {
    0x000424d4 bne.w 0x4261c                                     |         goto label_23;
                                                                 |     }
    0x000424d8 mov r0, fp                                        |     r0 = fp;
    0x000424da bl 0x41c64                                        |     r0 = fcn_00041c64 (r0, r1, r2, r3, r4);
    0x000424de cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000424e0 bne.w 0x4261c                                     |         goto label_23;
                                                                 |     }
    0x000424e4 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x000424e6 ldr r2, [r3]                                      |     r2 = *(r3);
                                                                 |     if (r2 == 0) {
    0x000424e8 cbnz r2, 0x424f4                                  |         
    0x000424ea ldr.w r2, [fp, 0x10]                              |         r2 = *(arg_10h);
    0x000424ee cmp r2, 0                                         |         
                                                                 |         if (r2 == 0) {
    0x000424f0 beq.w 0x4262e                                     |             goto label_24;
                                                                 |         }
                                                                 |     }
    0x000424f4 str.w sb, [fp, 0x14]                              |     __asm ("str.w sb, [arg_14h]");
    0x000424f8 mov sb, fp                                        |     sb = fp;
    0x000424fa cmp r6, 0                                         |     
                                                                 |     if (r6 != 0) {
    0x000424fc bne 0x42462                                       |         goto label_0;
                                                                 |     }
                                                                 | label_1:
    0x000424fe ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x00042500 ldrd r5, r4, [sp, 0x20]                           |     __asm ("ldrd r5, r4, [var_20h]");
    0x00042504 ldr r7, [sp, 0x1c]                                |     r7 = var_1ch;
    0x00042506 ldr r2, [r3]                                      |     r2 = *(r3);
    0x00042508 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x0004250a orrs.w r3, r3, sb                                 |     r3 |= sb;
                                                                 |     if (r3 == r3) {
    0x0004250e beq.w 0x42624                                     |         goto label_25;
                                                                 |     }
                                                                 | label_8:
    0x00042512 mov.w r3, 0x5180                                  |     
    0x00042516 movt r3, 1                                        |     r3 = 0x15180;
    0x0004251a cmp r2, r3                                        |     
                                                                 |     if (r2 > r3) {
    0x0004251c bgt.w 0x42638                                     |         goto label_26;
                                                                 |     }
    0x00042520 ldr r0, [pc, 0x158]                               |     
    0x00042522 movs r3, 8                                        |     r3 = 8;
    0x00042524 movs r2, 0                                        |     r2 = 0;
    0x00042526 movw r1, 0x813                                    |     r1 = 0x813;
    0x0004252a add r0, pc                                        |     r0 = 0x84baa;
    0x0004252c bl 0x40dd8                                        |     zbx_malloc2 ();
    0x00042530 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x00042532 str r0, [r4]                                      |     *(r4) = r0;
    0x00042534 str.w sb, [r0]                                    |     __asm ("str.w sb, [r0]");
    0x00042538 str r3, [r0, 4]                                   |     *((r0 + 4)) = r3;
                                                                 | label_17:
    0x0004253a mov r0, r5                                        |     r0 = r5;
    0x0004253c add sp, 0x2c                                      |     
    0x0004253e pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_19:
    0x00042542 mov r2, r5                                        |     r2 = r5;
    0x00042544 ldr r0, [sp, 0x14]                                |     r0 = var_14h;
    0x00042546 movs r3, 0x1c                                     |     r3 = 0x1c;
    0x00042548 movw r1, 0x7fd                                    |     r1 = 0x7fd;
    0x0004254c bl 0x40dd8                                        |     zbx_malloc2 ();
    0x00042550 sub.w r2, r6, r8                                  |     r2 = r6 - r8;
    0x00042554 mov r4, r0                                        |     r4 = r0;
    0x00042556 str r5, [r0]                                      |     *(r0) = r5;
    0x00042558 str r5, [r0, 4]                                   |     *((r0 + 4)) = r5;
    0x0004255a str r5, [r0, 8]                                   |     *((r0 + 8)) = r5;
    0x0004255c str r5, [r0, 0xc]                                 |     *((r0 + 0xc)) = r5;
    0x0004255e str r5, [r0, 0x10]                                |     *((r0 + 0x10)) = r5;
    0x00042560 str r5, [r0, 0x14]                                |     *((r0 + 0x14)) = r5;
    0x00042562 str r5, [r0, 0x18]                                |     *((r0 + 0x18)) = r5;
    0x00042564 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x00042566 beq 0x425f4                                       |         goto label_27;
                                                                 |     }
    0x00042568 mov r1, r8                                        |     r1 = r8;
    0x0004256a mov r0, r4                                        |     r0 = r4;
    0x0004256c bl 0x42020                                        |     r0 = fcn_00042020 (r0, r1, r2);
    0x00042570 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00042572 bne 0x42608                                       |         goto label_28;
                                                                 |     }
                                                                 | label_4:
    0x00042574 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x00042576 str r4, [sp, 0xc]                                 |     var_ch = r4;
    0x00042578 str r3, [r4, 0x18]                                |     *((r4 + 0x18)) = r3;
    0x0004257a cmp r6, 0                                         |     
                                                                 |     if (r6 != 0) {
    0x0004257c bne.w 0x42462                                     |         goto label_0;
                                                                 |     }
    0x00042580 b 0x424fe                                         |     goto label_1;
                                                                 | label_22:
    0x00042582 ldr r7, [sp, 0x1c]                                |     r7 = var_1ch;
    0x00042584 sub.w r5, r2, r8                                  |     r5 = r2 - r8;
                                                                 | label_3:
    0x00042588 mov r2, r5                                        |     r2 = r5;
    0x0004258a add.w r1, fp, 0x10                                |     r1 += arg_10h;
    0x0004258e mov r0, r8                                        |     r0 = r8;
    0x00042590 bl 0x4186c                                        |     is_time_suffix ();
                                                                 | label_7:
    0x00042594 cmp.w fp, 0                                       |     
                                                                 |     if (fp != 0) {
    0x00042598 bne 0x42630                                       |         goto label_29;
                                                                 |     }
                                                                 | label_9:
    0x0004259a ldr r2, [pc, 0xe4]                                |     
    0x0004259c add r2, pc                                        |     r2 = 0x84c22;
                                                                 |     if (r7 != 0) {
                                                                 | label_5:
    0x0004259e cbz r7, 0x425ba                                   |         
                                                                 | label_12:
    0x000425a0 ldr r4, [r7]                                      |         r4 = *(r7);
    0x000425a2 sub.w r3, r6, r8                                  |         r3 = r6 - r8;
    0x000425a6 cmp r6, 0                                         |         
                                                                 |         if (r6 == 0) {
    0x000425a8 beq 0x42642                                       |             goto label_14;
                                                                 |         }
                                                                 | label_11:
    0x000425aa ldr r1, [pc, 0xd8]                                |         
    0x000425ac mov r0, r4                                        |         r0 = r4;
    0x000425ae str.w r8, [sp]                                    |         __asm ("str.w r8, [sp]");
    0x000425b2 add r1, pc                                        |         r1 = 0x84c3c;
    0x000425b4 bl 0x44820                                        |         zbx_dsprintf ()
    0x000425b8 str r0, [r7]                                      |         *(r7) = r0;
                                                                 |     }
                                                                 | label_10:
    0x000425ba cmp.w sb, 0                                       |     
                                                                 |     if (sb == 0) {
    0x000425be beq 0x425ce                                       |         goto label_13;
                                                                 |     }
    0x000425c0 mov r4, sb                                        |     r4 = sb;
                                                                 |     do {
    0x000425c2 mov r0, r4                                        |         r0 = r4;
    0x000425c4 ldr r4, [r4, 0x14]                                |         r4 = *((r4 + 0x14));
    0x000425c6 blx 0xde30                                        |         fcn_0000de30 ();
    0x000425ca cmp r4, 0                                         |         
    0x000425cc bne 0x425c2                                       |         
                                                                 |     } while (r4 != 0);
                                                                 | label_13:
    0x000425ce ldr r0, [sp, 0xc]                                 |     r0 = var_ch;
    0x000425d0 mov.w r5, -1                                      |     r5 = -1;
    0x000425d4 bl 0x3fe60                                        |     fcn_0003fe60 (r0);
    0x000425d8 mov r0, r5                                        |     r0 = r5;
    0x000425da add sp, 0x2c                                      |     
    0x000425dc pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_20:
    0x000425e0 mov r0, r8                                        |     r0 = r8;
    0x000425e2 blx 0xdf68                                        |     r0 = fcn_0000df68 ();
    0x000425e6 mov r4, r0                                        |     r4 = r0;
    0x000425e8 cmp r4, 0                                         |     
                                                                 |     if (r4 > 0) {
    0x000425ea bgt.w 0x424a0                                     |         goto label_2;
                                                                 |     }
                                                                 | label_21:
    0x000425ee ldrd r7, r5, [sp, 0x1c]                           |     __asm ("ldrd r7, r5, [var_1ch]");
    0x000425f2 b 0x42588                                         |     goto label_3;
                                                                 | label_27:
    0x000425f4 mov r0, r8                                        |     r0 = r8;
    0x000425f6 blx 0xdf68                                        |     fcn_0000df68 ();
    0x000425fa mov r1, r8                                        |     r1 = r8;
    0x000425fc mov r2, r0                                        |     r2 = r0;
    0x000425fe mov r0, r4                                        |     r0 = r4;
    0x00042600 bl 0x42020                                        |     r0 = fcn_00042020 (r0, r1, r2);
    0x00042604 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00042606 beq 0x42574                                       |         goto label_4;
                                                                 |     }
                                                                 | label_28:
    0x00042608 mov r0, r4                                        |     r0 = r4;
    0x0004260a ldr r7, [sp, 0x1c]                                |     r7 = var_1ch;
    0x0004260c bl 0x3fe60                                        |     fcn_0003fe60 (r0);
    0x00042610 ldr r2, [pc, 0x74]                                |     
    0x00042612 add r2, pc                                        |     r2 = 0x84c9e;
    0x00042614 b 0x4259e                                         |     goto label_5;
                                                                 | label_15:
    0x00042616 mvn r2, 0x80000000                                |     r2 = ~0x80000000;
    0x0004261a b 0x4242c                                         |     goto label_6;
                                                                 | label_23:
    0x0004261c ldr r7, [sp, 0x1c]                                |     r7 = var_1ch;
    0x0004261e b 0x42594                                         |     goto label_7;
                                                                 | label_18:
    0x00042620 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x00042622 ldr r2, [r3]                                      |     r2 = *(r3);
                                                                 |     if (r2 == 0) {
                                                                 | label_25:
    0x00042624 cbz r2, 0x42664                                   |         goto label_30;
                                                                 |     }
    0x00042626 movs r3, 0                                        |     r3 = 0;
    0x00042628 mov sb, r3                                        |     sb = r3;
    0x0004262a str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x0004262c b 0x42512                                         |     goto label_8;
                                                                 | label_24:
    0x0004262e ldr r7, [sp, 0x1c]                                |     r7 = var_1ch;
                                                                 | label_29:
    0x00042630 mov r0, fp                                        |     r0 = fp;
    0x00042632 blx 0xde30                                        |     fcn_0000de30 ();
    0x00042636 b 0x4259a                                         |     goto label_9;
                                                                 | label_26:
    0x00042638 cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x0004263a beq 0x425ba                                       |         goto label_10;
                                                                 |     }
    0x0004263c ldr r2, [pc, 0x4c]                                |     
    0x0004263e ldr r4, [r7]                                      |     r4 = *(r7);
    0x00042640 add r2, pc                                        |     r2 = 0x84cd0;
                                                                 | label_14:
    0x00042642 mov r0, r8                                        |     r0 = r8;
    0x00042644 str r2, [sp, 0x10]                                |     var_10h = r2;
    0x00042646 blx 0xdf68                                        |     fcn_0000df68 ();
    0x0004264a ldr r2, [sp, 0x10]                                |     r2 = var_10h;
    0x0004264c mov r3, r0                                        |     r3 = r0;
    0x0004264e b 0x425aa                                         |     goto label_11;
                                                                 |     if (r7 == 0) {
                                                                 | label_16:
    0x00042650 cbz r7, 0x4265e                                   |         goto label_31;
                                                                 |     }
    0x00042652 ldr r2, [pc, 0x3c]                                |     
    0x00042654 movs r3, 0                                        |     r3 = 0;
    0x00042656 mov sb, r3                                        |     sb = r3;
    0x00042658 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x0004265a add r2, pc                                        |     r2 = 0x84cf0;
    0x0004265c b 0x425a0                                         |     goto label_12;
                                                                 |     do {
                                                                 | label_31:
    0x0004265e movs r3, 0                                        |         r3 = 0;
    0x00042660 str r3, [sp, 0xc]                                 |         var_ch = r3;
    0x00042662 b 0x425ce                                         |         goto label_13;
                                                                 | label_30:
    0x00042664 cmp r7, 0                                         |         
    0x00042666 beq 0x4265e                                       |         
                                                                 |     } while (r7 == 0);
    0x00042668 mov sb, r2                                        |     sb = r2;
    0x0004266a str r2, [sp, 0xc]                                 |     var_ch = r2;
    0x0004266c ldr r2, [pc, 0x24]                                |     
    0x0004266e ldr r4, [r7]                                      |     r4 = *(r7);
    0x00042670 add r2, pc                                        |     r2 = 0x84d08;
    0x00042672 b 0x42642                                         |     goto label_14;
                                                                 | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x3bccc */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.zbx_json_validate ()                     | void zbx_json_validate (int16_t arg1, int16_t arg2) {
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x0003bccc push.w {r4, r5, r6, r7, r8, lr}           |     
    0x0003bcd0 mov r5, r0                                |     r5 = r0;
    0x0003bcd2 ldrb r4, [r0]                             |     r4 = *(r0);
    0x0003bcd4 mov r7, r1                                |     r7 = r1;
    0x0003bcd6 cmp r4, 0                                 |     
                                                         |     if (r4 == 0) {
    0x0003bcd8 beq 0x3bd5e                               |         goto label_2;
                                                         |     }
    0x0003bcda ldr r6, [pc, 0x9c]                        |     
    0x0003bcdc add r6, pc                                |     r6 = 0x77a5a;
    0x0003bcde b 0x3bce8                                 |     
                                                         |     while (r0 != 0) {
    0x0003bce0 ldrb r4, [r5, 1]!                         |         r4 = *((r5 += 1));
    0x0003bce4 cmp r4, 0                                 |         
                                                         |         if (r4 == 0) {
    0x0003bce6 beq 0x3bd5e                               |             goto label_2;
                                                         |         }
    0x0003bce8 mov r1, r4                                |         r1 = r4;
    0x0003bcea mov r0, r6                                |         r0 = r6;
    0x0003bcec blx 0xdcd4                                |         r0 = fcn_0000dcd4 ();
    0x0003bcf0 cmp r0, 0                                 |         
    0x0003bcf2 bne 0x3bce0                               |         
                                                         |     }
    0x0003bcf4 cmp r4, 0x5b                              |     
                                                         |     if (r4 != 0x5b) {
    0x0003bcf6 bne 0x3bd46                               |         goto label_3;
                                                         |     }
    0x0003bcf8 mov r1, r7                                |     r1 = r7;
    0x0003bcfa mov r0, r5                                |     r0 = r5;
    0x0003bcfc bl 0x3bc24                                |     r0 = fcn_0003bc24 (r0, r1);
    0x0003bd00 orrs.w r3, r0, r1                         |     r3 = r0 | r1;
    0x0003bd04 mov r6, r0                                |     r6 = r0;
    0x0003bd06 mov r8, r1                                |     r8 = r1;
                                                         |     if (r3 == r0) {
    0x0003bd08 beq 0x3bd3a                               |         goto label_1;
                                                         |     }
                                                         | label_0:
    0x0003bd0a ldrb r1, [r5, r6]                         |     r1 = *((r5 + r6));
    0x0003bd0c adds r4, r5, r6                           |     r4 = r5 + r6;
                                                         |     if (r1 == 0) {
    0x0003bd0e cbz r1, 0x3bd3e                           |         goto label_4;
                                                         |     }
    0x0003bd10 ldr r5, [pc, 0x68]                        |     
    0x0003bd12 add r5, pc                                |     r5 = 0x77a92;
    0x0003bd14 b 0x3bd1c                                 |     
                                                         |     while (r1 != 0) {
    0x0003bd16 ldrb r1, [r4, 1]!                         |         r1 = *((r4 += 1));
                                                         |         if (r1 == 0) {
    0x0003bd1a cbz r1, 0x3bd3e                           |             goto label_4;
                                                         |         }
    0x0003bd1c mov r0, r5                                |         r0 = r5;
    0x0003bd1e blx 0xdcd4                                |         fcn_0000dcd4 ();
    0x0003bd20 vmlal.s16 q9, d10, d0                     |         __asm ("vmlal.s16 q9, d10, d0");
    0x0003bd24 bne 0x3bd16                               |         
                                                         |     }
                                                         |     if (r7 != 0) {
    0x0003bd26 cbz r7, 0x3bd3a                           |         
    0x0003bd28 ldr r2, [pc, 0x54]                        |         
    0x0003bd2a mov r3, r4                                |         r3 = r4;
    0x0003bd2c ldr r1, [pc, 0x54]                        |         
    0x0003bd2e ldr r0, [r7]                              |         r0 = *(r7);
    0x0003bd30 add r2, pc                                |         r2 = 0x77ab4;
    0x0003bd32 add r1, pc                                |         r1 = 0x77aba;
    0x0003bd34 bl 0x44820                                |         zbx_dsprintf ()
    0x0003bd38 str r0, [r7]                              |         *(r7) = r0;
                                                         |     }
                                                         | label_1:
    0x0003bd3a movs r6, 0                                |     r6 = 0;
    0x0003bd3c mov r8, r6                                |     r8 = r6;
                                                         | label_4:
    0x0003bd3e mov r0, r6                                |     r0 = r6;
    0x0003bd40 mov r1, r8                                |     r1 = r8;
    0x0003bd42 pop.w {r4, r5, r6, r7, r8, pc}            |     
                                                         | label_3:
    0x0003bd46 cmp r4, 0x7b                              |     
                                                         |     if (r4 != 0x7b) {
    0x0003bd48 bne 0x3bd5e                               |         goto label_2;
                                                         |     }
    0x0003bd4a mov r1, r7                                |     r1 = r7;
    0x0003bd4c mov r0, r5                                |     r0 = r5;
    0x0003bd4e bl 0x3ba98                                |     r0 = fcn_0003ba98 (r0, r1);
    0x0003bd52 orrs.w r3, r0, r1                         |     r3 = r0 | r1;
    0x0003bd56 mov r6, r0                                |     r6 = r0;
    0x0003bd58 mov r8, r1                                |     r8 = r1;
                                                         |     if (r3 != r0) {
    0x0003bd5a bne 0x3bd0a                               |         goto label_0;
                                                         |     }
    0x0003bd5c b 0x3bd3a                                 |     goto label_1;
                                                         | label_2:
    0x0003bd5e cmp r7, 0                                 |     
                                                         |     if (r7 == 0) {
    0x0003bd60 beq 0x3bd3a                               |         goto label_1;
                                                         |     }
    0x0003bd62 ldr r2, [pc, 0x24]                        |     
    0x0003bd64 mov r3, r5                                |     r3 = r5;
    0x0003bd66 ldr r1, [pc, 0x24]                        |     
    0x0003bd68 ldr r0, [r7]                              |     r0 = *(r7);
    0x0003bd6a add r2, pc                                |     r2 = 0x77af8;
    0x0003bd6c add r1, pc                                |     r1 = 0x77afe;
    0x0003bd6e bl 0x44820                                |     zbx_dsprintf ()
    0x0003bd72 str r0, [r7]                              |     *(r7) = r0;
    0x0003bd74 b 0x3bd3a                                 |     goto label_1;
                                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x343e8 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.zbx_locks_create ()      | void zbx_locks_create (int16_t arg1) {
                                         |     r0 = arg1;
    0x000343e8 push {r4, r5, r6, lr}     |     
    0x000343ea mov.w r2, 0x180           |     r2 = 0x180;
    0x000343ee mov r6, r0                |     r6 = r0;
    0x000343f0 movs r1, 0x10             |     r1 = 0x10;
    0x000343f2 movs r0, 0                |     r0 = 0;
    0x000343f4 blx 0xe410                |     fcn_0000e410 ();
    0x000343f8 ldr r3, [pc, 0x9c]        |     
    0x000343fa add r3, pc                |     r3 = 0x68896;
    0x000343fc str r0, [r3]              |     *(r3) = r0;
    0x000343fe adds r3, r0, 1            |     r3 = r0 + 1;
    0x00034400 itt ne                    |     
                                         |     if (r3 == r0) {
    0x00034402 movne r5, r0              |         r5 = r0;
                                         |     }
                                         |     if (r3 == r0) {
    0x00034404 movne r4, 0               |         r4 = 0;
                                         |     }
                                         |     if (r3 == r0) {
    0x00034406 beq 0x3447a               |         goto label_1;
                                         |     }
                                         |     do {
    0x00034408 mov r1, r4                |         r1 = r4;
    0x0003440a movs r3, 1                |         r3 = 1;
    0x0003440c movs r2, 0x10             |         r2 = 0x10;
    0x0003440e mov r0, r5                |         r0 = r5;
    0x00034410 blx 0xe0e0                |         fcn_0000e0e0 ();
    0x00034414 adds r0, 1                |         r0++;
    0x00034416 add.w r4, r4, 1           |         r4++;
                                         |         if (r0 == 1) {
    0x0003441a beq 0x34424               |             goto label_2;
                                         |         }
    0x0003441c cmp r4, 0x10              |         
    0x0003441e bne 0x34408               |         
                                         |     } while (r4 != 0x10);
    0x00034420 movs r0, 0                |     r0 = 0;
    0x00034422 pop {r4, r5, r6, pc}      |     
                                         | label_2:
    0x00034424 blx 0xe3d4                |     r0 = fcn_0000e3d4 ();
    0x00034428 mov r4, r0                |     r4 = r0;
    0x0003442a ldr r0, [r0]              |     r0 = *(r0);
    0x0003442c ldr r5, [r6]              |     r5 = *(r6);
    0x0003442e bl 0x30b74                |     zbx_strerror ();
    0x00034432 ldr r1, [pc, 0x68]        |     
    0x00034434 mov r2, r0                |     r2 = r0;
    0x00034436 mov r0, r5                |     r0 = r5;
    0x00034438 add r1, pc                |     r1 = 0x688da;
    0x0003443a bl 0x44820                |     zbx_dsprintf ()
    0x0003443e ldr r2, [pc, 0x60]        |     
    0x00034440 movs r3, 0                |     r3 = 0;
    0x00034442 str r0, [r6]              |     *(r6) = r0;
    0x00034444 mov r1, r3                |     r1 = r3;
    0x00034446 add r2, pc                |     r2 = 0x688ec;
    0x00034448 ldr r5, [r2]              |     r5 = *(0x688ec);
    0x0003444a mov r2, r3                |     r2 = r3;
    0x0003444c mov r0, r5                |     r0 = r5;
    0x0003444e blx 0xe0e0                |     fcn_0000e0e0 ();
    0x00034452 adds r0, 1                |     r0++;
    0x00034454 beq 0x34466               |     
                                         |     while (1) {
    0x00034456 ldr r3, [pc, 0x4c]        |         
    0x00034458 mov.w r2, -1              |         r2 = -1;
    0x0003445c add r3, pc                |         r3 = 0x68906;
    0x0003445e str r2, [r3]              |         *(r3) = r2;
                                         | label_0:
    0x00034460 mov.w r0, -1              |         r0 = -1;
    0x00034464 pop {r4, r5, r6, pc}      |         
    0x00034466 ldr r0, [r4]              |         r0 = *(r4);
    0x00034468 bl 0x30b74                |         r0 = zbx_strerror ();
    0x0003446c mov r2, r0                |         r2 = r0;
    0x0003446e ldr r0, [pc, 0x38]        |         
    0x00034470 mov r1, r5                |         r1 = r5;
    0x00034472 add r0, pc                |         r0 = 0x68920;
    0x00034474 bl 0x43cd4                |         zbx_error ();
    0x00034478 b 0x34456                 |         
                                         |     }
                                         | label_1:
    0x0003447a blx 0xe3d4                |     r0 = fcn_0000e3d4 ();
    0x0003447e ldr r0, [r0]              |     r0 = *(r0);
    0x00034480 ldr r4, [r6]              |     r4 = *(r6);
    0x00034482 bl 0x30b74                |     zbx_strerror ();
    0x00034486 ldr r1, [pc, 0x24]        |     
    0x00034488 mov r2, r0                |     r2 = r0;
    0x0003448a mov r0, r4                |     r0 = r4;
    0x0003448c add r1, pc                |     r1 = 0x6893e;
    0x0003448e bl 0x44820                |     zbx_dsprintf ()
    0x00034492 str r0, [r6]              |     *(r6) = r0;
    0x00034494 b 0x34460                 |     goto label_0;
                                         | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x1a504 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.zbx_make_persistent_file_name ()         | void zbx_make_persistent_file_name (int16_t arg1, int16_t arg2) {
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x0001a504 push {r3, r4, r5, lr}                     |     
    0x0001a506 mov r5, r0                                |     r5 = r0;
    0x0001a508 mov r0, r1                                |     r0 = r1;
    0x0001a50a bl 0x19748                                |     fcn_00019748 (r0);
    0x0001a50e ldr r1, [pc, 0x1c]                        |     
    0x0001a510 mov r4, r0                                |     r4 = r0;
    0x0001a512 mov r3, r0                                |     r3 = r0;
    0x0001a514 mov r2, r5                                |     r2 = r5;
    0x0001a516 movs r0, 0                                |     r0 = 0;
    0x0001a518 add r1, pc                                |     r1 = 0x34a4a;
    0x0001a51a bl 0x44820                                |     r0 = zbx_dsprintf ()
    0x0001a51e mov r5, r0                                |     r5 = r0;
                                                         |     if (r4 != 0) {
    0x0001a520 cbz r4, 0x1a528                           |         
    0x0001a522 mov r0, r4                                |         r0 = r4;
    0x0001a524 blx 0xde30                                |         fcn_0000de30 ();
                                                         |     }
    0x0001a528 mov r0, r5                                |     r0 = r5;
    0x0001a52a pop {r3, r4, r5, pc}                      |     
                                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x14908 */
                                                                 | #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_18h, int16_t arg_1ch, int16_t arg_20h, int16_t arg_28h, int16_t arg_2ch, int16_t arg_5480h, int16_t arg_60h, int16_t arg_64h, int16_t arg_3b8h, int16_t arg1, int16_t arg2, int16_t arg3) {
                                                                 |     int16_t var_0h_2;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_50h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
    0x00014908 svcmi 0xf0e92d                                    |     __asm ("svcmi 0xf0e92d");
    0x0001490c mov r6, r2                                        |     r6 = r2;
    0x0001490e ldr.w r4, [pc, 0x408]                             |     
    0x00014912 mov r5, r1                                        |     r5 = r1;
    0x00014914 ldr.w r3, [pc, 0x404]                             |     r3 = *(0x14d1c);
    0x00014918 add r4, pc                                        |     r4 = 0x29636;
    0x0001491a vpush {d8}                                        |     __asm ("vpush {d8}");
    0x0001491e ldr.w r8, [pc, 0x400]                             |     r8 = *(0x00014d20);
    0x00014922 sub sp, 0x24                                      |     
    0x00014924 ldr r3, [r4, r3]                                  |     
    0x00014926 mov r4, r0                                        |     r4 = r0;
    0x00014928 ldr r2, [sp, 0x60]                                |     r2 = *(arg_60h);
    0x0001492a add r8, pc                                        |     r8 += pc;
    0x0001492c ldrd sl, sb, [sp, 0x50]                           |     __asm ("ldrd sl, sb, [var_50h]");
    0x00014930 ldr r3, [r3]                                      |     r3 = *(0x29636);
    0x00014932 str r3, [sp, 0x1c]                                |     *(arg_1ch) = r3;
    0x00014934 mov.w r3, 0                                       |     r3 = 0;
    0x00014938 ldr r3, [pc, 0x3e8]                               |     
    0x0001493a ldr.w r3, [r8, r3]                                |     r3 = *((r8 + r3));
    0x0001493e str r2, [sp, 0x10]                                |     *(arg_10h) = r2;
    0x00014940 ldr r2, [sp, 0x64]                                |     r2 = *(arg_64h);
    0x00014942 ldr r0, [r3]                                      |     r0 = *(0x14d24);
    0x00014944 mov r7, r3                                        |     r7 = r3;
    0x00014946 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x00014948 str r2, [sp, 0x14]                                |     var_14h = r2;
    0x0001494a adds r0, 0xc                                      |     r0 += 0xc;
    0x0001494c bl 0x35368                                        |     zbx_dshm_lock ();
    0x00014950 bl 0x144e4                                        |     fcn_000144e4 (r0);
    0x00014954 ldr r3, [r7]                                      |     r3 = *(r7);
    0x00014956 ldr r2, [pc, 0x3d0]                               |     
    0x00014958 ldr r3, [r3, 0xc]                                 |     r3 = *(0x14d30);
    0x0001495a add r2, pc                                        |     r2 = 0x29688;
    0x0001495c ldr r7, [r2, 4]                                   |     r7 = *(0x2968c);
    0x0001495e adds r3, 1                                        |     r3++;
                                                                 |     if (r3 == 1) {
    0x00014960 beq 0x149b6                                       |         goto label_4;
                                                                 |     }
    0x00014962 ldr r3, [r7]                                      |     r3 = *(r7);
                                                                 |     if (r3 == 0) {
    0x00014964 cbz r3, 0x149bc                                   |         goto label_3;
                                                                 |     }
                                                                 |     do {
    0x00014966 add.w fp, r7, r3                                  |         
    0x0001496a ldr.w r1, [fp]                                    |         r1 = *(fp);
                                                                 |         if (r1 != 0) {
    0x0001496e cbz r1, 0x14972                                   |             
    0x00014970 add r1, r7                                        |             r1 += r7;
                                                                 |         }
    0x00014972 mov r0, r4                                        |         r0 = r4;
    0x00014974 bl 0x4624c                                        |         r0 = zbx_strcmp_null ();
                                                                 |         if (r0 == 0) {
    0x00014978 cbnz r0, 0x149a8                                  |             
    0x0001497a ldr.w r1, [fp, 4]                                 |             r1 = *(arg_4h);
                                                                 |             if (r1 != 0) {
    0x0001497e cbz r1, 0x14982                                   |                 
    0x00014980 add r1, r7                                        |                 r1 += r7;
                                                                 |             }
    0x00014982 mov r0, r5                                        |             r0 = r5;
    0x00014984 bl 0x4624c                                        |             r0 = zbx_strcmp_null ();
                                                                 |             if (r0 != 0) {
    0x00014988 cbnz r0, 0x149a8                                  |                 goto label_5;
                                                                 |             }
    0x0001498a ldr.w r1, [fp, 8]                                 |             r1 = *(arg_60h);
                                                                 |             if (r1 != 0) {
    0x0001498e cbz r1, 0x14992                                   |                 
    0x00014990 add r1, r7                                        |                 r1 += r7;
                                                                 |             }
    0x00014992 mov r0, r6                                        |             r0 = r6;
    0x00014994 bl 0x4624c                                        |             r0 = zbx_strcmp_null ();
                                                                 |             if (r0 != 0) {
    0x00014998 cbnz r0, 0x149a8                                  |                 goto label_5;
                                                                 |             }
    0x0001499a ldrd r2, r3, [fp, 0x10]                           |             __asm ("ldrd r2, r3, [arg_10h]");
    0x0001499e cmp sb, r3                                        |             
    0x000149a0 it eq                                             |             
                                                                 |             if (sb == r3) {
    0x000149a2 cmpeq sl, r2                                      |                 __asm ("cmpeq sl, r2");
                                                                 |             }
                                                                 |             if (sb == r3) {
    0x000149a4 beq.w 0x14ac4                                     |                 goto label_6;
                                                                 |             }
                                                                 |         }
                                                                 | label_5:
    0x000149a8 ldr.w r3, [fp, 0x2c]                              |         r3 = *(arg_2ch);
    0x000149ac cmp r3, 0                                         |         
    0x000149ae bne 0x14966                                       |         
                                                                 |     } while (r3 != 0);
    0x000149b0 ldr r3, [pc, 0x378]                               |     
    0x000149b2 add r3, pc                                        |     r3 = 0x296e2;
    0x000149b4 ldr r7, [r3, 4]                                   |     r7 = *(0x296e6);
                                                                 | label_4:
    0x000149b6 cmp r7, 0                                         |     
                                                                 |     if (r7 != 0) {
    0x000149b8 bne.w 0x14ca6                                     |         goto label_7;
                                                                 |     }
                                                                 | label_3:
    0x000149bc ldr r3, [pc, 0x370]                               |     
    0x000149be movs r2, 0                                        |     r2 = 0;
    0x000149c0 str r2, [sp, 0x18]                                |     *(arg_18h) = r2;
    0x000149c2 ldr.w r3, [r8, r3]                                |     r3 = *((r8 + r3));
    0x000149c6 str r3, [sp, 0x10]                                |     *(arg_10h) = r3;
    0x000149c8 ldr r3, [r3]                                      |     r3 = *(0x14d30);
    0x000149ca cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x000149cc bgt.w 0x14c70                                     |         goto label_8;
                                                                 |     }
                                                                 | label_2:
    0x000149d0 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x000149d2 ldr.w r8, [r3]                                    |     r8 = *(r3);
    0x000149d6 ldr.w r3, [r8, 0x10]                              |     r3 = *((r8 + 0x10));
    0x000149da clz fp, r3                                        |     
    0x000149de lsr.w fp, fp, 5                                   |     
    0x000149e2 lsl.w fp, fp, 4                                   |     
                                                                 |     if (r4 != 0) {
    0x000149e6 cbz r4, 0x149f8                                   |         
    0x000149e8 mov r0, r4                                        |         r0 = r4;
    0x000149ea blx 0xdf68                                        |         r0 = fcn_0000df68 ();
    0x000149ee add.w r3, r0, 8                                   |         r3 = r0 + 8;
    0x000149f2 bic r3, r3, 7                                     |         r3 = BIT_MASK (r3, 7);
    0x000149f6 add fp, r3                                        |         
                                                                 |     }
                                                                 |     if (r5 != 0) {
    0x000149f8 cbz r5, 0x14a0a                                   |         
    0x000149fa mov r0, r5                                        |         r0 = r5;
    0x000149fc blx 0xdf68                                        |         r0 = fcn_0000df68 ();
    0x00014a00 add.w r3, r0, 8                                   |         r3 = r0 + 8;
    0x00014a04 bic r3, r3, 7                                     |         r3 = BIT_MASK (r3, 7);
    0x00014a08 add fp, r3                                        |         
                                                                 |     }
                                                                 |     if (r6 != 0) {
    0x00014a0a cbz r6, 0x14a1c                                   |         
    0x00014a0c mov r0, r6                                        |         r0 = r6;
    0x00014a0e blx 0xdf68                                        |         fcn_0000df68 ();
    0x00014a10 invalid                                           |         
    0x00014a14 lsls r0, r1, 0xc                                  |         r0 = r1 << 0xc;
    0x00014a16 bic r3, r3, 7                                     |         r3 = BIT_MASK (r3, 7);
    0x00014a1a add fp, r3                                        |         
                                                                 |     }
    0x00014a1c ldr r3, [pc, 0x314]                               |     
    0x00014a1e add.w r2, fp, 0x5480                              |     r2 += arg_5480h;
    0x00014a22 adds r2, 0x28                                     |     r2 += 0x28;
    0x00014a24 add r3, pc                                        |     r3 = 0x2975c;
    0x00014a26 ldr.w fp, [r3, 4]                                 |     fp = EXECUTE_STR;
    0x00014a2a cmp.w fp, 0                                       |     
                                                                 |     if (fp == 0) {
    0x00014a2e beq.w 0x14c44                                     |         goto label_9;
                                                                 |     }
    0x00014a32 ldrd r7, r1, [fp, 4]                              |     __asm ("ldrd r7, r1, [arg_4h]");
    0x00014a36 adds r0, r2, r7                                   |     r0 = r2 + r7;
    0x00014a38 cmp r1, r0                                        |     
                                                                 |     if (r1 <= r0) {
    0x00014a3a blo.w 0x14c44                                     |         goto label_9;
                                                                 |     }
                                                                 | label_1:
    0x00014a3e add.w r2, r7, 0x5480                              |     r2 = r7 + 0x5480;
    0x00014a42 adds r2, 0x28                                     |     r2 += 0x28;
    0x00014a44 cmp r2, r1                                        |     
                                                                 |     if (r2 > r1) {
    0x00014a46 bhi.w 0x14c82                                     |         goto label_10;
                                                                 |     }
    0x00014a4a add.w r8, fp, r7                                  |     r8 = fp + r7;
    0x00014a4e str.w r2, [fp, 4]                                 |     __asm ("str.w r2, [arg_4h]");
                                                                 |     if (r7 == 0) {
    0x00014a52 cbnz r7, 0x14a56                                  |         
    0x00014a54 mov r8, r7                                        |         r8 = r7;
                                                                 |     }
    0x00014a56 movw r2, 0x54a8                                   |     r2 = 0x54a8;
    0x00014a5a movs r1, 0                                        |     r1 = 0;
    0x00014a5c mov r0, r8                                        |     r0 = r8;
    0x00014a5e blx 0xdd6c                                        |     uname ();
    0x00014a62 mov r0, fp                                        |     r0 = fp;
                                                                 |     if (r4 != 0) {
    0x00014a64 cbz r4, 0x14a74                                   |         
    0x00014a66 mov r1, r4                                        |         r1 = r4;
    0x00014a68 bl 0x14594                                        |         fcn_00014594 (r0, r1, r2, r3);
    0x00014a6c ldr r2, [pc, 0x2c8]                               |         
    0x00014a6e mov r4, r0                                        |         r4 = r0;
    0x00014a70 add r2, pc                                        |         r2 = 0x297ac;
    0x00014a72 ldr r0, [r2, 4]                                   |         r0 = *(0x297b0);
                                                                 |     }
    0x00014a74 str.w r4, [r8]                                    |     __asm ("str.w r4, [r8]");
                                                                 |     if (r5 != 0) {
    0x00014a78 cbz r5, 0x14a88                                   |         
    0x00014a7a mov r1, r5                                        |         r1 = r5;
    0x00014a7c bl 0x14594                                        |         fcn_00014594 (r0, r1, r2, r3);
    0x00014a80 ldr r2, [pc, 0x2b8]                               |         
    0x00014a82 mov r5, r0                                        |         r5 = r0;
    0x00014a84 add r2, pc                                        |         r2 = 0x297c4;
    0x00014a86 ldr r0, [r2, 4]                                   |         r0 = *(0x297c8);
                                                                 |     }
    0x00014a88 str.w r5, [r8, 4]                                 |     __asm ("str.w r5, [r8, 4]");
                                                                 |     if (r6 != 0) {
    0x00014a8c cbz r6, 0x14a96                                   |         
    0x00014a8e mov r1, r6                                        |         r1 = r6;
    0x00014a90 bl 0x14594                                        |         r0 = fcn_00014594 (r0, r1, r2, r3);
    0x00014a94 mov r6, r0                                        |         r6 = r0;
                                                                 |     }
    0x00014a96 movs r0, 0                                        |     r0 = 0;
    0x00014a98 str.w r6, [r8, 8]                                 |     __asm ("str.w r6, [r8, 8]");
    0x00014a9c strd sl, sb, [r8, 0x10]                           |     __asm ("strd sl, sb, [r8, 0x10]");
    0x00014aa0 blx 0xe104                                        |     fcn_0000e104 ();
    0x00014aa4 ldr r3, [sp, 0x10]                                |     r3 = *(arg_10h);
    0x00014aa6 ldr.w r1, [fp]                                    |     r1 = *(fp);
    0x00014aaa str.w r0, [r8, 0x20]                              |     __asm ("str.w r0, [r8, 0x20]");
    0x00014aae ldr r2, [r3]                                      |     r2 = *(r3);
    0x00014ab0 str.w r1, [r8, 0x2c]                              |     __asm ("str.w r1, [r8, 0x2c]");
    0x00014ab4 str.w r7, [fp]                                    |     __asm ("str.w r7, [fp]");
    0x00014ab8 cmp r2, 3                                         |     
                                                                 |     if (r2 > 3) {
    0x00014aba bgt.w 0x14c32                                     |         goto label_11;
                                                                 |     }
                                                                 |     do {
                                                                 | label_0:
    0x00014abe mov.w r4, -1                                      |         r4 = -1;
    0x00014ac2 b 0x14bc2                                         |         goto label_12;
                                                                 | label_6:
    0x00014ac4 blx 0xe104                                        |         fcn_0000e104 ();
    0x00014ac8 ldr.w r4, [fp, 0x28]                              |         r4 = *(arg_28h);
    0x00014acc str.w r0, [fp, 0x20]                              |         __asm ("str.w r0, [arg_20h]");
    0x00014ad0 cmp r4, 0                                         |         
                                                                 |         if (r4 != 0) {
    0x00014ad2 bne.w 0x14c18                                     |             goto label_13;
                                                                 |         }
    0x00014ad6 ldr.w r2, [fp, 0x1c]                              |         r2 = *(arg_1ch);
    0x00014ada cmp r2, 1                                         |         
    0x00014adc ble 0x14abe                                       |         
                                                                 |     } while (r2 <= 1);
    0x00014ade ldr r3, [sp, 0x58]                                |     r3 = *(arg_0h);
    0x00014ae0 ldr.w r1, [fp, 0x18]                              |     r1 = *(arg_18h);
    0x00014ae4 cmp r2, r3                                        |     
    0x00014ae6 it le                                             |     
                                                                 |     if (r2 > r3) {
    0x00014ae8 addle r3, r2, -1                                  |         r3 = r2 + -1;
                                                                 |     }
    0x00014aec add r2, r1                                        |     r2 += r1;
    0x00014aee add.w r5, r2, -1                                  |     r5 = r2 + -1;
    0x00014af2 it le                                             |     
                                                                 |     if (r2 > r3) {
    0x00014af4 strle r3, [sp, 0x58]                              |         *(arg_0h) = r3;
                                                                 |     }
    0x00014af6 ldr r3, [sp, 0x58]                                |     r3 = *(arg_0h);
    0x00014af8 cmp.w r5, 0x384                                   |     
    0x00014afc it gt                                             |     
                                                                 |     if (r5 > 0x384) {
    0x00014afe subwgt r5, r2, 0x386                              |         __asm ("subwgt r5, r2, 0x386");
                                                                 |     }
    0x00014b02 lsls r2, r5, 1                                    |     r2 = r5 << 1;
    0x00014b04 subs.w lr, r5, r3                                 |     lr = r5 - r3;
    0x00014b08 ldr r3, [sp, 0x5c]                                |     r3 = *(arg_4h);
    0x00014b0a it mi                                             |     
                                                                 |     if (lr < r5) {
    0x00014b0c addwmi lr, lr, 0x385                              |         __asm ("addwmi lr, lr, 0x385");
                                                                 |     }
    0x00014b10 lsl.w r6, lr, 1                                   |     r6 = lr << 1;
    0x00014b14 ands r0, r3, 1                                    |     r0 = r3 & 1;
    0x00014b18 it eq                                             |     
                                                                 |     if (r0 != r3) {
    0x00014b1a moveq ip, r0                                      |         
                                                                 |     }
                                                                 |     if (r0 != r3) {
    0x00014b1c beq 0x14b3e                                       |         
    0x00014b1e adds r1, r2, r5                                   |         r1 = r2 + r5;
    0x00014b20 add.w r8, r6, lr                                  |         r8 = r6 + lr;
    0x00014b24 add.w r1, fp, r1, lsl 3                           |         r1 = fp + (r1 << 3);
    0x00014b28 add.w r8, fp, r8, lsl 3                           |         r8 = fp + (r8 << 3);
    0x00014b2c ldrd r0, r3, [r1, 0x30]                           |         __asm ("ldrd r0, r3, [r1, 0x30]");
    0x00014b30 ldr.w r1, [r8, 0x30]                              |         r1 = *((r8 + 0x30));
    0x00014b34 subs r0, r0, r1                                   |         r0 -= r1;
    0x00014b36 ldr.w r1, [r8, 0x34]                              |         r1 = *((r8 + 0x34));
    0x00014b3a sbc.w ip, r3, r1                                  |         __asm ("sbc.w ip, r3, r1");
    0x00014b3c lsrs r1, r0, 0x10                                 |         r1 = r0 >> 0x10;
                                                                 |     }
    0x00014b3e ldr r3, [sp, 0x5c]                                |     r3 = *(arg_4h);
    0x00014b40 lsls r3, r3, 0x1e                                 |     r3 <<= 0x1e;
    0x00014b42 bmi 0x14bee                                       |     
                                                                 |     while (1) {
    0x00014b44 add r6, lr                                        |         r6 += lr;
    0x00014b46 add r2, r5                                        |         r2 += r5;
    0x00014b48 add.w r2, fp, r2, lsl 3                           |         r2 = fp + (r2 << 3);
    0x00014b4c add.w r3, fp, r6, lsl 3                           |         r3 = fp + (r6 << 3);
    0x00014b50 ldrd r2, r5, [r2, 0x40]                           |         __asm ("ldrd r2, r5, [r2, 0x40]");
    0x00014b54 movs r1, 0xe8                                     |         r1 = 0xe8;
    0x00014b56 ldrd r3, r6, [r3, 0x40]                           |         __asm ("ldrd r3, r6, [r3, 0x40]");
    0x00014b5a mul r1, r0, r1                                    |         r1 = r0 * r1;
    0x00014b5e subs r2, r2, r3                                   |         r2 -= r3;
    0x00014b60 mov.w r3, 0x1000                                  |         
    0x00014b64 movt r3, 0xd4a5                                   |         r3 = 0x-2b5af000;
    0x00014b68 mla r1, r3, ip, r1                                |         __asm ("mla r1, r3, ip, r1");
    0x00014b6c umull r0, r3, r0, r3                              |         r0:r3 = r0 * r3;
    0x00014b70 add r1, r3                                        |         r1 += r3;
    0x00014b72 asrs r3, r5, 0x1f                                 |         r3 = r5 >> 0x1f;
    0x00014b74 subs r5, r5, r6                                   |         r5 -= r6;
    0x00014b76 sbc.w r6, r3, r6, asr 31                          |         __asm ("sbc.w r6, r3, r6, asr 31");
    0x00014b7a mov.w r3, 0xca00                                  |         
    0x00014b7e movt r3, 0x3b9a                                   |         r3 = 0x3b9aca00;
    0x00014b82 smlal r5, r6, r2, r3                              |         __asm ("smlal r5, r6, r2, r3");
    0x00014b86 bl 0x4c6f4                                        |         r0 = fcn_0004c6f4 (r0, r1, r2);
    0x00014b8a vmov d8, r0, r1                                   |         __asm ("vmov d8, r0, r1");
    0x00014b8e movs r0, 2                                        |         r0 = 2;
    0x00014b90 blx 0xdbf8                                        |         r0 = longjmp_chk ();
    0x00014b94 mul r1, r0, r6                                    |         r1 = r0 * r6;
    0x00014b98 asrs r3, r0, 0x1f                                 |         r3 = r0 >> 0x1f;
    0x00014b9a mla r1, r5, r3, r1                                |         __asm ("mla r1, r5, r3, r1");
    0x00014b9e umull r0, r5, r0, r5                              |         r0:r5 = r0 * r5;
    0x00014ba2 add r1, r5                                        |         r1 += r5;
    0x00014ba4 bl 0x4c6f4                                        |         r0 = fcn_0004c6f4 (r0, r1, r2);
    0x00014ba8 vmov d0, r0, r1                                   |         __asm ("vmov d0, r0, r1");
    0x00014bac vdiv.f64 d0, d8, d0                               |         __asm ("vdiv.f64 d0, d8, d0");
    0x00014bb0 blx 0xdee4                                        |         fcn_0000dee4 ();
    0x00014bb4 vmov.f64 d17, 1.000000e+01                        |         __asm ("vmov.f64 d17, 1");
    0x00014bb8 ldr r3, [sp, 0x10]                                |         r3 = *(arg_10h);
    0x00014bba vdiv.f64 d16, d0, d17                             |         __asm ("vdiv.f64 d16, d0, d17");
    0x00014bbe vstr d16, [r3]                                    |         __asm ("vstr d16, [r3]");
                                                                 | label_12:
    0x00014bc2 ldr r3, [sp, 0xc]                                 |         r3 = var_ch;
    0x00014bc4 ldr r0, [r3]                                      |         r0 = *(r3);
    0x00014bc6 adds r0, 0xc                                      |         r0 += 0xc;
    0x00014bc8 bl 0x35378                                        |         zbx_dshm_unlock ();
    0x00014bcc ldr r2, [pc, 0x170]                               |         
    0x00014bce ldr r3, [pc, 0x14c]                               |         r3 = *(0x14d1e);
    0x00014bd0 add r2, pc                                        |         r2 = 0x29914;
    0x00014bd2 ldr r3, [r2, r3]                                  |         r3 = *(0x29914);
    0x00014bd4 ldr r2, [r3]                                      |         r2 = *(0x29914);
    0x00014bd6 ldr r3, [sp, 0x1c]                                |         r3 = *(arg_1ch);
    0x00014bd8 eors r2, r3                                       |         r2 ^= r3;
    0x00014bda mov.w r3, 0                                       |         r3 = 0;
    0x00014bdc lsls r0, r0, 0xc                                  |         r0 <<= 0xc;
                                                                 |         if (r0 != r0) {
    0x00014bde bne.w 0x14ce4                                     |             goto label_14;
                                                                 |         }
    0x00014be2 mov r0, r4                                        |         r0 = r4;
    0x00014be4 add sp, 0x24                                      |         
    0x00014be6 vpop {d8}                                         |         __asm ("vpop {d8}");
    0x00014bea pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
    0x00014bee adds r1, r2, r5                                   |         r1 = r2 + r5;
    0x00014bf0 add.w r8, r6, lr                                  |         r8 = r6 + lr;
    0x00014bf4 add.w r1, fp, r1, lsl 3                           |         r1 = fp + (r1 << 3);
    0x00014bf8 add.w r8, fp, r8, lsl 3                           |         r8 = fp + (r8 << 3);
    0x00014bfc ldrd r3, sb, [r1, 0x38]                           |         __asm ("ldrd r3, sb, [r1, 0x38]");
    0x00014c00 ldr.w r1, [r8, 0x38]                              |         r1 = *((r8 + 0x38));
    0x00014c04 subs r1, r3, r1                                   |         r1 = r3 - r1;
    0x00014c06 ldr.w r3, [r8, 0x3c]                              |         r3 = *((r8 + 0x3c));
    0x00014c0a sbc.w sb, sb, r3                                  |         __asm ("sbc.w sb, sb, r3");
    0x00014c0e adds r1, r1, r0                                   |         r1 += r0;
    0x00014c10 adc.w ip, ip, sb                                  |         __asm ("adc.w ip, ip, sb");
    0x00014c14 mov r0, r1                                        |         r0 = r1;
    0x00014c16 b 0x14b44                                         |         
                                                                 |     }
                                                                 | label_13:
    0x00014c18 ldr r6, [sp, 0x14]                                |     r6 = var_14h;
    0x00014c1a rsbs r0, r4, 0                                    |     r0 = r4 - ;
    0x00014c1c ldr r5, [r6]                                      |     r5 = *(r6);
    0x00014c1e bl 0x30b74                                        |     zbx_strerror ();
    0x00014c22 ldr r1, [pc, 0x120]                               |     
    0x00014c24 mov r2, r0                                        |     r2 = r0;
    0x00014c26 mov r0, r5                                        |     r0 = r5;
    0x00014c28 add r1, pc                                        |     r1 = 0x29972;
    0x00014c2a bl 0x44820                                        |     zbx_dsprintf ()
    0x00014c2e str r0, [r6]                                      |     *(r6) = r0;
    0x00014c30 b 0x14abe                                         |     goto label_0;
                                                                 | label_11:
    0x00014c32 ldr r2, [pc, 0x114]                               |     
    0x00014c34 movs r0, 4                                        |     r0 = 4;
    0x00014c36 ldr r1, [pc, 0x114]                               |     
    0x00014c38 add r2, pc                                        |     r2 = 0x29986;
    0x00014c3a add r1, pc                                        |     r1 = 0x2998c;
    0x00014c3c adds r2, 0x24                                     |     r2 += 0x24;
    0x00014c3e bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x00014c42 b 0x14abe                                         |     goto label_0;
                                                                 | label_9:
    0x00014c44 mov r0, fp                                        |     r0 = fp;
    0x00014c46 str r2, [sp, 0x14]                                |     var_14h = r2;
    0x00014c48 bl 0x14488                                        |     fcn_00014488 (r0);
    0x00014c4c ldr r2, [sp, 0x14]                                |     r2 = var_14h;
    0x00014c4e adds r1, r2, r0                                   |     r1 = r2 + r0;
    0x00014c50 add.w r0, r8, 0xc                                 |     r0 = r8 + 0xc;
    0x00014c54 add r2, sp, 0x18                                  |     r2 += arg_18h;
    0x00014c56 bl 0x3548c                                        |     zbx_dshm_realloc ();
    0x00014c5a adds r0, 1                                        |     r0++;
                                                                 |     if (r0 == 1) {
    0x00014c5c beq 0x14ce8                                       |         goto label_15;
                                                                 |     }
    0x00014c5e bl 0x144e4                                        |     fcn_000144e4 (r0);
    0x00014c62 ldr r3, [pc, 0xec]                                |     
    0x00014c64 add r3, pc                                        |     r3 = 0x299ba;
    0x00014c66 ldr.w fp, [r3, 4]                                 |     fp = *(0x299be);
    0x00014c6a ldrd r7, r1, [fp, 4]                              |     __asm ("ldrd r7, r1, [arg_4h]");
    0x00014c6e b 0x14a3e                                         |     goto label_1;
                                                                 | label_8:
    0x00014c70 ldr r2, [pc, 0xe0]                                |     
    0x00014c72 movs r0, 4                                        |     r0 = 4;
    0x00014c74 ldr r1, [pc, 0xe0]                                |     
    0x00014c76 add r2, pc                                        |     r2 = 0x299ce;
    0x00014c78 adds r2, 0x24                                     |     r2 += 0x24;
    0x00014c7a add r1, pc                                        |     r1 = 0x299d6;
    0x00014c7c bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x00014c80 b 0x149d0                                         |     goto label_2;
                                                                 | label_10:
    0x00014c82 ldr r0, [pc, 0xd8]                                |     
    0x00014c84 movw r4, 0x127                                    |     r4 = 0x127;
    0x00014c88 ldr r3, [pc, 0xd4]                                |     
    0x00014c8a ldr r2, [pc, 0xd8]                                |     
    0x00014c8c ldr r1, [pc, 0xd8]                                |     
    0x00014c8e add r0, pc                                        |     r0 = 0x299f0;
    0x00014c90 add r3, pc                                        |     r3 = 0x299f4;
    0x00014c92 str r4, [sp]                                      |     *(sp) = r4;
    0x00014c94 add r2, pc                                        |     r2 = 0x299fe;
    0x00014c96 add r1, pc                                        |     r1 = 0x29a02;
    0x00014c98 bl 0x43cd4                                        |     zbx_error ();
    0x00014c9c bl 0x356ac                                        |     zbx_backtrace ();
    0x00014ca0 movs r0, 1                                        |     r0 = 1;
    0x00014ca2 blx 0xe3bc                                        |     fcn_0000e3bc ();
                                                                 | label_7:
    0x00014ca6 ldr r3, [r7]                                      |     r3 = *(r7);
    0x00014ca8 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00014caa beq.w 0x149bc                                     |         goto label_3;
                                                                 |     }
    0x00014cae add r3, r7                                        |     r3 += r7;
    0x00014cb0 ldr r3, [r3, 0x2c]                                |     r3 = *((r3 + 0x2c));
    0x00014cb2 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00014cb4 beq.w 0x149bc                                     |         goto label_3;
                                                                 |     }
    0x00014cb8 movs r2, 1                                        |     r2 = 1;
                                                                 |     do {
    0x00014cba add r3, r7                                        |         r3 += r7;
    0x00014cbc adds r2, 1                                        |         r2++;
    0x00014cbe ldr r3, [r3, 0x2c]                                |         r3 = *((r3 + 0x2c));
    0x00014cc0 cmp r3, 0                                         |         
    0x00014cc2 bne 0x14cba                                       |         
                                                                 |     } while (r3 != 0);
    0x00014cc4 cmp.w r2, 0x400                                   |     
                                                                 |     if (r2 != 0x400) {
    0x00014cc8 bne.w 0x149bc                                     |         goto label_3;
                                                                 |     }
    0x00014ccc ldr r4, [sp, 0x14]                                |     r4 = var_14h;
    0x00014cce movw r1, 0x3ef                                    |     r1 = 0x3ef;
    0x00014cd2 ldr r3, [pc, 0x98]                                |     
    0x00014cd4 ldr r0, [pc, 0x98]                                |     
    0x00014cd6 ldr r2, [r4]                                      |     r2 = *(r4);
    0x00014cd8 add r3, pc                                        |     r3 = 0x29a4a;
    0x00014cda add r0, pc                                        |     r0 = 0x29a4e;
    0x00014cdc bl 0x40ed8                                        |     zbx_strdup2 ();
    0x00014ce0 str r0, [r4]                                      |     *(r4) = r0;
    0x00014ce2 b 0x14abe                                         |     goto label_0;
                                                                 | label_14:
    0x00014ce4 blx 0xe158                                        |     fcn_0000e158 ();
                                                                 | label_15:
    0x00014ce8 ldr r3, [sp, 0x10]                                |     r3 = *(arg_10h);
    0x00014cea ldr r3, [r3]                                      |     r3 = *(r3);
    0x00014cec cmp r3, 0                                         |     
                                                                 |     if (r3 > 0) {
    0x00014cee ble 0x14cfc                                       |         
    0x00014cf0 ldr r1, [pc, 0x80]                                |         
    0x00014cf2 movs r0, 1                                        |         r0 = 1;
    0x00014cf4 ldr r2, [sp, 0x18]                                |         r2 = *(arg_18h);
    0x00014cf6 add r1, pc                                        |         r1 = 0x29a6e;
    0x00014cf8 bl 0x30d1c                                        |         zbx_zabbix_log ();
                                                                 |     }
    0x00014cfc ldr r0, [sp, 0x18]                                |     r0 = *(arg_18h);
                                                                 |     if (r0 != 0) {
    0x00014cfe cbz r0, 0x14d08                                   |         
    0x00014d00 blx 0xde30                                        |         fcn_0000de30 ();
    0x00014d04 movs r3, 0                                        |         r3 = 0;
    0x00014d06 str r3, [sp, 0x18]                                |         *(arg_18h) = r3;
                                                                 |     }
    0x00014d08 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x00014d0a ldr r0, [r3]                                      |     r0 = *(r3);
    0x00014d0c adds r0, 0xc                                      |     r0 += 0xc;
    0x00014d0e bl 0x35378                                        |     zbx_dshm_unlock ();
    0x00014d12 movs r0, 1                                        |     r0 = 1;
    0x00014d14 blx 0xe3bc                                        |     fcn_0000e3bc ();
    0x00014d18 strb r0, [r0, 0xb]                                |     *((r0 + 0xb)) = r0;
    0x00014d1a movs r4, r0                                       |     r4 = r0;
    0x00014d1c lsls r4, r2, 0xe                                  |     r4 = r2 << 0xe;
    0x00014d1e movs r0, r0                                       |     
    0x00014d20 strb r6, [r5, 0xa]                                |     *((r5 + 0xa)) = r6;
    0x00014d22 movs r4, r0                                       |     r4 = r0;
    0x00014d24 lsls r0, r5, 0xe                                  |     r0 = r5 << 0xe;
    0x00014d26 movs r0, r0                                       |     
    0x00014d28 strh r2, [r4, 2]                                  |     *((r4 + 2)) = r2;
    0x00014d2a movs r4, r0                                       |     r4 = r0;
    0x00014d2c strh r2, [r1]                                     |     *(r1) = r2;
    0x00014d2e movs r4, r0                                       |     r4 = r0;
    0x00014d30 lsls r4, r7, 0xe                                  |     r4 = r7 << 0xe;
    0x00014d32 movs r0, r0                                       |     
    0x00014d34 ldrb r0, [r3, 0x1e]                               |     r0 = *((r3 + 0x1e));
    0x00014d36 movs r4, r0                                       |     r4 = r0;
    0x00014d38 ldrb r4, [r1, 0x1d]                               |     r4 = *((r1 + 0x1d));
    0x00014d3a movs r4, r0                                       |     r4 = r0;
    0x00014d3c ldrb r0, [r7, 0x1c]                               |     r0 = *((r7 + 0x1c));
    0x00014d3e movs r4, r0                                       |     r4 = r0;
    0x00014d40 strb r0, [r1]                                     |     *(r1) = r0;
    0x00014d42 movs r4, r0                                       |     r4 = r0;
    0x00014d44 adr r3, 0x290                                     |     r3 = 0x290;
    0x00014d46 movs r3, r0                                       |     r3 = r0;
    0x00014d48 adr r3, 0x2f0                                     |     r3 = 0x2f0;
    0x00014d4a movs r3, r0                                       |     r3 = r0;
    0x00014d4c str r5, [sp, 0x3b8]                               |     *(arg_3b8h) = r5;
    0x00014d4e movs r3, r0                                       |     r3 = r0;
    0x00014d50 ldrb r0, [r3, 0x15]                               |     r0 = *((r3 + 0x15));
    0x00014d52 movs r4, r0                                       |     r4 = r0;
    0x00014d54 adr r3, 0x1f8                                     |     r3 = 0x1f8;
    0x00014d56 movs r3, r0                                       |     r3 = r0;
    0x00014d58 ldrh r2, [r1, 0x36]                               |     r2 = *((r1 + 0x36));
    0x00014d5a movs r3, r0                                       |     r3 = r0;
    0x00014d5c strh r2, [r1, 0x3c]                               |     *((r1 + 0x3c)) = r2;
    0x00014d5e movs r3, r0                                       |     r3 = r0;
    0x00014d60 strh r4, [r4, 0x28]                               |     *((r4 + 0x28)) = r4;
    0x00014d62 movs r3, r0                                       |     r3 = r0;
    0x00014d64 adr r3, 0x180                                     |     r3 = 0x180;
    0x00014d66 movs r3, r0                                       |     r3 = r0;
    0x00014d68 adr r2, 0x178                                     |     r2 = 0x178;
    0x00014d6a movs r3, r0                                       |     r3 = r0;
    0x00014d6c adr r2, 0x260                                     |     r2 = 0x260;
    0x00014d6e movs r3, r0                                       |     r3 = r0;
    0x00014d70 adr r2, 0x68                                      |     r2 = 0x68;
    0x00014d72 movs r3, r0                                       |     r3 = r0;
    0x00014d74 adr r2, 0x278                                     |     r2 = 0x278;
    0x00014d76 movs r3, r0                                       |     r3 = r0;
                                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x1a530 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.zbx_read_persistent_file ()                  | void zbx_read_persistent_file (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
    0x0001a530 invalid                                       |     
    0x0001a534 mov r5, r1                                    |     r5 = r1;
    0x0001a536 ldr r1, [pc, 0xa4]                            |     
    0x0001a538 mov r7, r0                                    |     r7 = r0;
    0x0001a53a mov r6, r2                                    |     r6 = r2;
    0x0001a53c mov sb, r3                                    |     sb = r3;
    0x0001a53e ldr.w r8, [pc, 0xa0]                          |     
    0x0001a542 add r1, pc                                    |     r1 = 0x34b24;
    0x0001a544 blx 0xdf90                                    |     fcn_0000df90 ();
    0x0001a548 add r8, pc                                    |     r8 = 0x34b2e;
                                                             |     if (r0 == 0) {
    0x0001a54a cbz r0, 0x1a5b4                               |         goto label_1;
                                                             |     }
    0x0001a54c mov r4, r0                                    |     r4 = r0;
    0x0001a54e mov r2, r0                                    |     r2 = r0;
    0x0001a550 mov r1, r6                                    |     r1 = r6;
    0x0001a552 mov r0, r5                                    |     r0 = r5;
    0x0001a554 blx 0xdc98                                    |     r0 = fcn_0000dc98 ();
                                                             |     if (r0 == 0) {
    0x0001a558 cbz r0, 0x1a59c                               |         goto label_2;
                                                             |     }
    0x0001a55a ldr r1, [pc, 0x88]                            |     
    0x0001a55c mov r0, r5                                    |     r0 = r5;
    0x0001a55e add r1, pc                                    |     r1 = 0x34b48;
    0x0001a560 blx 0xe2b0                                    |     fcn_0000e2b0 ();
    0x0001a564 movs r3, 0                                    |     r3 = 0;
    0x0001a566 strb r3, [r5, r0]                             |     *((r5 + r0)) = r3;
    0x0001a568 mov r5, r3                                    |     r5 = r3;
                                                             |     do {
    0x0001a56a mov r0, r4                                    |         r0 = r4;
    0x0001a56c blx 0xdc8c                                    |         r0 = fcn_0000dc8c ();
                                                             |         if (r0 != 0) {
    0x0001a570 cbz r0, 0x1a596                               |             
    0x0001a572 ldr r3, [pc, 0x74]                            |             
    0x0001a574 ldr.w r3, [r8, r3]                            |             r3 = *((r8 + r3));
    0x0001a578 ldr r3, [r3]                                  |             r3 = *(0x1a5ea);
    0x0001a57a cmp r3, 0                                     |             
                                                             |             if (r3 <= 0) {
    0x0001a57c ble 0x1a596                                   |                 goto label_0;
                                                             |             }
    0x0001a57e blx 0xe3d4                                    |             r0 = fcn_0000e3d4 ();
    0x0001a582 ldr r0, [r0]                                  |             r0 = *(r0);
    0x0001a584 bl 0x30b74                                    |             zbx_strerror ();
    0x0001a588 ldr r1, [pc, 0x60]                            |             
    0x0001a58a mov r3, r0                                    |             r3 = r0;
    0x0001a58c mov r2, r7                                    |             r2 = r7;
    0x0001a58e movs r0, 1                                    |             r0 = 1;
    0x0001a590 add r1, pc                                    |             r1 = 0x34b80;
    0x0001a592 bl 0x30d1c                                    |             zbx_zabbix_log ();
                                                             |         }
                                                             | label_0:
    0x0001a596 mov r0, r5                                    |         r0 = r5;
    0x0001a598 pop.w {r3, r4, r5, r6, r7, r8, sb, pc}        |         
                                                             | label_2:
    0x0001a59c ldr r1, [pc, 0x50]                            |         
    0x0001a59e mov r2, r7                                    |         r2 = r7;
    0x0001a5a0 ldr.w r0, [sb]                                |         r0 = *(sb);
    0x0001a5a4 mov.w r5, -1                                  |         r5 = -1;
    0x0001a5a8 add r1, pc                                    |         r1 = 0x34b9c;
    0x0001a5aa bl 0x44820                                    |         zbx_dsprintf ()
    0x0001a5ae str.w r0, [sb]                                |         __asm ("str.w r0, [sb]");
    0x0001a5b2 b 0x1a56a                                     |         
                                                             |     } while (1);
                                                             | label_1:
    0x0001a5b4 blx 0xe3d4                                    |     r0 = fcn_0000e3d4 ();
    0x0001a5b8 ldr r0, [r0]                                  |     r0 = *(r0);
    0x0001a5ba mov.w r5, -1                                  |     r5 = -1;
    0x0001a5be ldr.w r4, [sb]                                |     r4 = *(sb);
    0x0001a5c2 bl 0x30b74                                    |     zbx_strerror ();
    0x0001a5c6 ldr r1, [pc, 0x2c]                            |     
    0x0001a5c8 mov r3, r0                                    |     r3 = r0;
    0x0001a5ca mov r2, r7                                    |     r2 = r7;
    0x0001a5cc mov r0, r4                                    |     r0 = r4;
    0x0001a5ce add r1, pc                                    |     r1 = 0x34bc8;
    0x0001a5d0 bl 0x44820                                    |     zbx_dsprintf ()
    0x0001a5d4 str.w r0, [sb]                                |     __asm ("str.w r0, [sb]");
    0x0001a5d8 b 0x1a596                                     |     goto label_0;
                                                             | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x39570 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.zbx_recv_response ()                     | void zbx_recv_response (int16_t arg1, int16_t arg2, int16_t arg3) {
                                                         |     int16_t var_20h;
                                                         |     int16_t var_ch;
                                                         |     int16_t var_10h;
                                                         |     int16_t var_14h;
                                                         |     int16_t var_1ch;
                                                         |     int32_t var_4h;
                                                         |     int16_t var_2ch;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
    0x00039570 push {r4, r5, r6, r7, lr}                 |     
    0x00039572 sub sp, 0x34                              |     
    0x00039574 ldr r6, [pc, 0x190]                       |     
    0x00039576 mov r7, r1                                |     r7 = r1;
    0x00039578 ldr r4, [pc, 0x190]                       |     r4 = *(0x3970c);
    0x0003957a add r6, pc                                |     r6 = 0x72c86;
    0x0003957c ldr r3, [pc, 0x190]                       |     
    0x0003957e ldr r5, [pc, 0x194]                       |     r5 = *(0x39716);
    0x00039580 ldr r4, [r6, r4]                          |     
    0x00039582 mov r6, r2                                |     r6 = r2;
    0x00039584 add r3, pc                                |     r3 = 0x72c98;
    0x00039586 ldr r4, [r4]                              |     r4 = *(0x72c86);
    0x00039588 str r4, [sp, 0x2c]                        |     var_2ch = r4;
    0x0003958a mov.w r4, 0                               |     r4 = 0;
    0x0003958c lsls r0, r0, 0x10                         |     r0 <<= 0x10;
    0x0003958e mov r4, r0                                |     r4 = r0;
    0x00039590 ldr r5, [r3, r5]                          |     r5 = *(0x72c98);
    0x00039592 ldr r3, [r5]                              |     r3 = *(0x72c98);
    0x00039594 cmp r3, 3                                 |     
                                                         |     if (r3 > 3) {
    0x00039596 bgt 0x39650                               |         goto label_6;
                                                         |     }
                                                         | label_1:
    0x00039598 movs r2, 0                                |     r2 = 0;
    0x0003959a mov r1, r7                                |     r1 = r7;
    0x0003959c mov r0, r4                                |     r0 = r4;
    0x0003959e bl 0x3760c                                |     zbx_tcp_recv_ext ();
    0x000395a2 adds r0, 1                                |     r0++;
                                                         |     if (r0 == 1) {
    0x000395a4 beq.w 0x396ea                             |         goto label_7;
                                                         |     }
    0x000395a8 ldr r3, [r5]                              |     r3 = *(r5);
    0x000395aa cmp r3, 3                                 |     
                                                         |     if (r3 > 3) {
    0x000395ac bgt 0x3967c                               |         goto label_8;
                                                         |     }
                                                         | label_3:
    0x000395ae ldr r0, [r4, 0xc]                         |     r0 = *((r4 + 0xc));
    0x000395b0 ldrb r3, [r0]                             |     r3 = *(r0);
    0x000395b2 cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x000395b4 beq 0x396a4                               |         goto label_9;
                                                         |     }
    0x000395b6 add r4, sp, 0x14                          |     r4 += var_14h;
    0x000395b8 mov r1, r4                                |     r1 = r4;
    0x000395ba bl 0x3af9c                                |     r0 = zbx_json_open ();
    0x000395be cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x000395c0 bne 0x396ba                               |         goto label_10;
                                                         |     }
    0x000395c2 ldr r1, [pc, 0x154]                       |     
    0x000395c4 add r7, sp, 0x1c                          |     r7 += var_1ch;
    0x000395c6 str r0, [sp]                              |     *(sp) = r0;
    0x000395c8 movs r3, 0x10                             |     r3 = 0x10;
    0x000395ca mov r2, r7                                |     r2 = r7;
    0x000395cc mov r0, r4                                |     r0 = r4;
    0x000395ce add r1, pc                                |     r1 = 0x72cec;
    0x000395d0 bl 0x3b3dc                                |     r0 = zbx_json_value_by_name ();
    0x000395d4 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x000395d6 bne 0x396d4                               |         goto label_11;
                                                         |     }
    0x000395d8 ldr r2, [sp, 0x1c]                        |     r2 = var_1ch;
    0x000395da movw r3, 0x7573                           |     
    0x000395de movt r3, 0x6363                           |     r3 = 0x63637573;
    0x000395e2 cmp r2, r3                                |     
    0x000395e4 beq 0x3963c                               |     
                                                         |     while (r2 != r3) {
    0x000395e6 ldr r1, [pc, 0x134]                       |         
    0x000395e8 movs r3, 0                                |         r3 = 0;
    0x000395ea str r3, [sp]                              |         *(sp) = r3;
    0x000395ec mov r0, r4                                |         r0 = r4;
    0x000395ee strd r3, r3, [sp, 0xc]                    |         __asm ("strd r3, r3, [var_ch]");
    0x000395f2 add r2, sp, 0xc                           |         r2 += var_ch;
    0x000395f4 add r3, sp, 0x10                          |         r3 += var_10h;
    0x000395f6 add r1, pc                                |         r1 = 0x72d18;
    0x000395f8 bl 0x3b404                                |         r0 = zbx_json_value_by_name_dyn ();
    0x000395fc cmp r0, 0                                 |         
                                                         |         if (r0 == 0) {
    0x000395fe beq 0x39690                               |             goto label_12;
                                                         |         }
    0x00039600 ldr r1, [pc, 0x11c]                       |         
    0x00039602 mov r2, r7                                |         r2 = r7;
    0x00039604 ldr r0, [r6]                              |         r0 = *(r6);
    0x00039606 add r1, pc                                |         r1 = 0x72d2a;
    0x00039608 bl 0x44820                                |         r0 = zbx_dsprintf ()
    0x0003960c mov r3, r0                                |         r3 = r0;
                                                         | label_4:
    0x0003960e ldr r0, [sp, 0xc]                         |         r0 = var_ch;
    0x00039610 str r3, [r6]                              |         *(r6) = r3;
                                                         |         if (r0 != 0) {
    0x00039612 cbz r0, 0x39618                           |             
    0x00039614 blx 0xde30                                |             fcn_0000de30 ();
                                                         |         }
                                                         | label_5:
    0x00039618 mov.w r4, -1                              |         r4 = -1;
                                                         | label_0:
    0x0003961c ldr r3, [r5]                              |         r3 = *(r5);
    0x0003961e cmp r3, 3                                 |         
                                                         |         if (r3 > 3) {
    0x00039620 bgt 0x39662                               |             goto label_13;
                                                         |         }
                                                         | label_2:
    0x00039622 ldr r2, [pc, 0x100]                       |         
    0x00039624 ldr r3, [pc, 0xe4]                        |         r3 = *(0x3970c);
    0x00039626 add r2, pc                                |         r2 = 0x72d50;
    0x00039628 ldr r3, [r2, r3]                          |         r3 = *(0x72d50);
    0x0003962a ldr r2, [r3]                              |         r2 = *(0x72d50);
    0x0003962c ldr r3, [sp, 0x2c]                        |         r3 = var_2ch;
    0x0003962e eors r2, r3                               |         r2 ^= r3;
    0x00039630 mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x00039634 bne 0x39704                               |             goto label_14;
                                                         |         }
    0x00039636 mov r0, r4                                |         r0 = r4;
    0x00039638 add sp, 0x34                              |         
    0x0003963a pop {r4, r5, r6, r7, pc}                  |         
    0x0003963c ldr r2, [r7, 4]                           |         r2 = var_4h;
    0x0003963e movw r3, 0x7365                           |         
    0x00039642 movt r3, 0x73                             |         r3 = 0x737365;
    0x00039646 cmp r2, r3                                |         
    0x00039648 it eq                                     |         
                                                         |         if (r2 != r3) {
    0x0003964a moveq r4, r0                              |             r4 = r0;
                                                         |         }
    0x0003964c bne 0x395e6                               |         
                                                         |     }
    0x0003964e b 0x3961c                                 |     goto label_0;
                                                         | label_6:
    0x00039650 ldr r2, [pc, 0xd4]                        |     
    0x00039652 movs r0, 4                                |     r0 = 4;
    0x00039654 ldr r1, [pc, 0xd4]                        |     
    0x00039656 add r2, pc                                |     r2 = 0x72d82;
    0x00039658 adds r2, 0x4c                             |     r2 += 0x4c;
    0x0003965a add r1, pc                                |     r1 = 0x72d8a;
    0x0003965c bl 0x30d1c                                |     zbx_zabbix_log ();
    0x00039660 b 0x39598                                 |     goto label_1;
                                                         | label_13:
    0x00039662 mov r0, r4                                |     r0 = r4;
    0x00039664 bl 0x45514                                |     zbx_result_string ();
    0x00039668 ldr r2, [pc, 0xc4]                        |     
    0x0003966a mov r3, r0                                |     r3 = r0;
    0x0003966c ldr r1, [pc, 0xc4]                        |     
    0x0003966e movs r0, 4                                |     r0 = 4;
    0x00039670 add r2, pc                                |     r2 = 0x72da4;
    0x00039672 add r1, pc                                |     r1 = 0x72daa;
    0x00039674 adds r2, 0x4c                             |     r2 += 0x4c;
    0x00039676 bl 0x30d1c                                |     zbx_zabbix_log ();
    0x0003967a b 0x39622                                 |     goto label_2;
                                                         | label_8:
    0x0003967c ldr r2, [pc, 0xb8]                        |     
    0x0003967e movs r0, 4                                |     r0 = 4;
    0x00039680 ldr r1, [pc, 0xb8]                        |     
    0x00039682 ldr r3, [r4, 0xc]                         |     r3 = *((r4 + 0xc));
    0x00039684 add r2, pc                                |     r2 = 0x72dc0;
    0x00039686 adds r2, 0x4c                             |     r2 += 0x4c;
    0x00039688 add r1, pc                                |     r1 = 0x72dc8;
    0x0003968a bl 0x30d1c                                |     zbx_zabbix_log ();
    0x0003968e b 0x395ae                                 |     goto label_3;
                                                         | label_12:
    0x00039690 ldr r0, [pc, 0xac]                        |     
    0x00039692 movw r1, 0x14b                            |     r1 = 0x14b;
    0x00039696 ldr r3, [sp, 0xc]                         |     r3 = var_ch;
    0x00039698 ldr r2, [r6]                              |     r2 = *(r6);
    0x0003969a add r0, pc                                |     r0 = 0x72dde;
    0x0003969c bl 0x40ed8                                |     r0 = zbx_strdup2 ();
    0x000396a0 mov r3, r0                                |     r3 = r0;
    0x000396a2 b 0x3960e                                 |     goto label_4;
                                                         | label_9:
    0x000396a4 ldr r3, [pc, 0x9c]                        |     
    0x000396a6 movw r1, 0x135                            |     r1 = 0x135;
    0x000396aa ldr r0, [pc, 0x9c]                        |     
    0x000396ac ldr r2, [r6]                              |     r2 = *(r6);
    0x000396ae add r3, pc                                |     r3 = 0x72df6;
    0x000396b0 add r0, pc                                |     r0 = 0x72dfe;
    0x000396b2 bl 0x40ed8                                |     zbx_strdup2 ();
    0x000396b4 invalid                                   |     
    0x000396b8 b 0x39618                                 |     goto label_5;
                                                         | label_10:
    0x000396ba ldr r4, [r6]                              |     r4 = *(r6);
    0x000396bc bl 0x3a984                                |     r0 = zbx_json_strerror ();
    0x000396c0 mov r3, r0                                |     r3 = r0;
    0x000396c2 ldr r0, [pc, 0x88]                        |     
    0x000396c4 mov r2, r4                                |     r2 = r4;
    0x000396c6 movw r1, 0x13b                            |     r1 = 0x13b;
    0x000396ca add r0, pc                                |     r0 = 0x72e1c;
    0x000396cc bl 0x40ed8                                |     zbx_strdup2 ();
    0x000396d0 str r0, [r6]                              |     *(r6) = r0;
    0x000396d2 b 0x39618                                 |     goto label_5;
                                                         | label_11:
    0x000396d4 ldr r3, [pc, 0x78]                        |     
    0x000396d6 movw r1, 0x141                            |     r1 = 0x141;
    0x000396da ldr r0, [pc, 0x78]                        |     
    0x000396dc ldr r2, [r6]                              |     r2 = *(r6);
    0x000396de add r3, pc                                |     r3 = 0x72e32;
    0x000396e0 add r0, pc                                |     r0 = 0x72e3a;
    0x000396e2 bl 0x40ed8                                |     zbx_strdup2 ();
    0x000396e6 str r0, [r6]                              |     *(r6) = r0;
    0x000396e8 b 0x39618                                 |     goto label_5;
                                                         | label_7:
    0x000396ea ldr r4, [r6]                              |     r4 = *(r6);
    0x000396ec bl 0x36860                                |     r0 = zbx_socket_strerror ();
    0x000396f0 mov r3, r0                                |     r3 = r0;
    0x000396f2 ldr r0, [pc, 0x64]                        |     
    0x000396f4 mov r2, r4                                |     r2 = r4;
    0x000396f6 mov.w r1, 0x12c                           |     r1 = 0x12c;
    0x000396fa add r0, pc                                |     r0 = 0x72e58;
    0x000396fc bl 0x40ed8                                |     zbx_strdup2 ();
    0x00039700 str r0, [r6]                              |     *(r6) = r0;
    0x00039702 b 0x39618                                 |     goto label_5;
                                                         | label_14:
    0x00039704 blx 0xe158                                |     fcn_0000e158 ();
    0x00039708 movs r6, 0x5e                             |     r6 = 0x5e;
    0x0003970a movs r2, r0                               |     r2 = r0;
    0x0003970c lsls r4, r2, 0xe                          |     r4 = r2 << 0xe;
    0x0003970e movs r0, r0                               |     
    0x00039710 movs r6, 0x54                             |     r6 = 0x54;
    0x00039712 movs r2, r0                               |     r2 = r0;
    0x00039714 lsls r4, r7, 0xe                          |     r4 = r7 << 0xe;
    0x00039716 movs r0, r0                               |     
    0x00039718 ldr r0, [pc, 0x238]                       |     r0 = *(0x39954);
    0x0003971a movs r1, r0                               |     r1 = r0;
    0x0003971c ldr r0, [pc, 0x1e8]                       |     r0 = *(0x39908);
    0x0003971e movs r1, r0                               |     r1 = r0;
    0x00039720 ldm r1, {r1, r2, r3, r4, r5, r6, r7}      |     r1 = *(r1);
                                                         |     r2 = *((r1 + 4));
                                                         |     r3 = *((r1 + 8));
                                                         |     r4 = *((r1 + 12));
                                                         |     r5 = *((r1 + 16));
                                                         |     r6 = *((r1 + 20));
                                                         |     r7 = *((r1 + 24));
    0x00039722 movs r1, r0                               |     r1 = r0;
    0x00039724 movs r5, 0xb2                             |     r5 = 0xb2;
    0x00039726 movs r2, r0                               |     r2 = r0;
    0x00039728 ldm r1, {r1, r2, r3, r4, r6, r7}          |     r1 = *(r1);
                                                         |     r2 = *((r1 + 4));
                                                         |     r3 = *((r1 + 8));
                                                         |     r4 = *((r1 + 12));
                                                         |     r6 = *((r1 + 16));
                                                         |     r7 = *((r1 + 20));
    0x0003972a movs r1, r0                               |     r1 = r0;
    0x0003972c add sl, sp, sl                            |     sl = sp + sl;
    0x0003972e movs r1, r0                               |     r1 = r0;
    0x00039730 ldm r1!, {r2, r6, r7}                     |     r2 = *(r1!);
                                                         |     r6 = *((r1! + 4));
                                                         |     r7 = *((r1! + 8));
    0x00039732 movs r1, r0                               |     r1 = r0;
    0x00039734 ldr r0, [pc, 0x338]                       |     r0 = *(0x39a70);
    0x00039736 movs r1, r0                               |     r1 = r0;
    0x00039738 ldm r1!, {r4, r5, r7}                     |     r4 = *(r1!);
                                                         |     r5 = *((r1! + 4));
                                                         |     r7 = *((r1! + 8));
    0x0003973a movs r1, r0                               |     r1 = r0;
    0x0003973c ldm r1!, {r2, r5}                         |     r2 = *(r1!);
                                                         |     r5 = *((r1! + 4));
    0x0003973e movs r1, r0                               |     r1 = r0;
    0x00039740 ldm r0!, {r1, r3, r7}                     |     r1 = *(r0!);
                                                         |     r3 = *((r0! + 4));
                                                         |     r7 = *((r0! + 8));
    0x00039742 movs r1, r0                               |     r1 = r0;
    0x00039744 ldm r1, {r1, r3, r5}                      |     r1 = *(r1);
                                                         |     r3 = *((r1 + 4));
                                                         |     r5 = *((r1 + 8));
    0x00039746 movs r1, r0                               |     r1 = r0;
    0x00039748 ldm r0!, {r2, r4, r5, r6}                 |     r2 = *(r0!);
                                                         |     r4 = *((r0! + 4));
                                                         |     r5 = *((r0! + 8));
                                                         |     r6 = *((r0! + 12));
    0x0003974a movs r1, r0                               |     r1 = r0;
    0x0003974c ldm r0!, {r1, r3, r4, r6}                 |     r1 = *(r0!);
                                                         |     r3 = *((r0! + 4));
                                                         |     r4 = *((r0! + 8));
                                                         |     r6 = *((r0! + 12));
    0x0003974e movs r1, r0                               |     r1 = r0;
    0x00039750 ldm r1, {r1, r4}                          |     r1 = *(r1);
                                                         |     r4 = *((r1 + 4));
    0x00039752 movs r1, r0                               |     r1 = r0;
    0x00039754 ldm r0!, {r2, r6}                         |     r2 = *(r0!);
                                                         |     r6 = *((r0! + 4));
    0x00039756 movs r1, r0                               |     r1 = r0;
    0x00039758 ldm r0!, {r1, r3, r5}                     |     r1 = *(r0!);
                                                         |     r3 = *((r0! + 4));
                                                         |     r5 = *((r0! + 8));
    0x0003975a movs r1, r0                               |     r1 = r0;
                                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x1aeb8 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.zbx_restore_file_details ()                      | void zbx_restore_file_details (int16_t arg_0h, 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_10h;
                                                                 |     int16_t var_14h;
                                                                 |     int32_t var_18h_3;
                                                                 |     int32_t var_18h_4;
                                                                 |     int32_t var_20h;
                                                                 |     int32_t var_20h_2;
                                                                 |     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;
                                                                 |     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;
                                                                 |     int32_t var_80h_2;
                                                                 |     int16_t var_18h;
                                                                 |     int32_t var_18h_5;
                                                                 |     int16_t var_10h_3;
                                                                 |     int32_t var_10h_5;
                                                                 |     int16_t var_8h_2;
                                                                 |     int32_t var_8h_3;
                                                                 |     int16_t var_a0h;
                                                                 |     int32_t var_0h_4;
                                                                 |     int16_t var_18h_2;
                                                                 |     int16_t var_10h_2;
                                                                 |     int16_t var_ch_2;
                                                                 |     int16_t var_4h_2;
                                                                 |     int16_t var_c0h;
                                                                 |     int16_t var_dch;
                                                                 |     int16_t var_e0h;
                                                                 |     int16_t var_10h_4;
                                                                 |     int16_t var_8dch;
                                                                 |     int16_t var_10c0h;
                                                                 |     int32_t var_0h_2;
                                                                 |     int8_t var_0h_3;
                                                                 |     int16_t var_10e0h;
                                                                 |     int16_t var_1100h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x0001aeb8 svcmi 0xf0e92d                                    |     __asm ("svcmi 0xf0e92d");
    0x0001aebc sub.w sp, sp, 0x10e0                              |     
    0x0001aec0 sub sp, 4                                         |     
    0x0001aec2 mov r5, r2                                        |     r5 = r2;
    0x0001aec4 add.w r8, sp, 0xc0                                |     r8 += var_c0h;
    0x0001aec8 mov fp, r1                                        |     
    0x0001aeca str r2, [sp, 0x5c]                                |     var_5ch = r2;
    0x0001aecc add.w r2, sp, 0x1100                              |     r2 += var_1100h;
    0x0001aed0 ldr r4, [r2, 8]                                   |     r4 = *((r2 + 8));
    0x0001aed2 adds r2, 8                                        |     r2 += 8;
    0x0001aed4 ldr.w r2, [pc, 0x574]                             |     r2 = *(0x0001b44c);
    0x0001aed8 add.w r1, sp, 0x10c0                              |     r1 += var_10c0h;
    0x0001aedc str r3, [sp, 0x60]                                |     var_60h = r3;
    0x0001aede adds r1, 0x1c                                     |     r1 += 0x1c;
    0x0001aee0 ldr.w r3, [pc, 0x56c]                             |     
    0x0001aee4 add r6, sp, 0xa0                                  |     r6 += var_a0h;
    0x0001aee6 add r2, pc                                        |     r2 += pc;
    0x0001aee8 str r4, [sp, 0x30]                                |     var_30h = r4;
    0x0001aeea vmov.i32 d16, 0                                   |     __asm ("vmov.i32 d16, 0");
    0x0001aeee ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x0001aef0 sub.w r2, r8, 0x10                                |     r2 -= var_10h_2;
    0x0001aef4 ldr.w r4, [pc, 0x55c]                             |     r4 = *(0x0001b454);
    0x0001aef8 ldr r3, [r3]                                      |     r3 = *(0x1b450);
    0x0001aefa str r3, [r1]                                      |     *(r1) = r3;
    0x0001aefc mov.w r3, 0                                       |     r3 = 0;
    0x0001af00 str r2, [sp, 0x64]                                |     var_64h = r2;
    0x0001af02 add.w r2, sp, 0x1100                              |     r2 += var_1100h;
    0x0001af06 ldr r3, [r5]                                      |     r3 = *(r5);
    0x0001af08 adds r2, 0xc                                      |     r2 += 0xc;
    0x0001af0a add r4, pc                                        |     r4 += pc;
    0x0001af0c ldr r2, [r2]                                      |     r2 = *(r2);
    0x0001af0e vstr d16, [r8, -0x18]                             |     __asm ("vstr d16, [r8, -0x18]");
    0x0001af12 vstr d16, [r6]                                    |     __asm ("vstr d16, [r6]");
    0x0001af16 str r2, [sp, 0x7c]                                |     var_7ch = r2;
    0x0001af18 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0001af1a bne.w 0x1b392                                     |         goto label_15;
                                                                 |     }
    0x0001af1e ldr.w r3, [fp]                                    |     r3 = *(fp);
    0x0001af22 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0001af24 bne.w 0x1b392                                     |         goto label_15;
                                                                 |     }
    0x0001af28 sub.w r5, r8, 0xc                                 |     r5 -= var_ch_2;
    0x0001af2c mov r1, r5                                        |     r1 = r5;
    0x0001af2e bl 0x3af9c                                        |     r0 = zbx_json_open ();
    0x0001af32 mov sl, r0                                        |     sl = r0;
    0x0001af34 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001af36 bne.w 0x1b420                                     |         goto label_16;
                                                                 |     }
    0x0001af3a ldr.w r1, [pc, 0x51c]                             |     
    0x0001af3e add r3, sp, 0xe0                                  |     r3 += var_e0h;
    0x0001af40 str r3, [sp, 0x58]                                |     var_58h = r3;
    0x0001af42 add r3, sp, 0xdc                                  |     r3 += var_dch;
    0x0001af44 mov r2, r3                                        |     r2 = r3;
    0x0001af46 str r0, [sp]                                      |     *(sp) = r0;
    0x0001af48 add r1, pc                                        |     r1 = 0x363a6;
    0x0001af4a str r3, [sp, 0x78]                                |     var_78h = r3;
    0x0001af4c mov r0, r5                                        |     r0 = r5;
    0x0001af4e mov.w r3, 0x800                                   |     r3 = 0x800;
    0x0001af52 bl 0x3b3dc                                        |     zbx_json_value_by_name ();
    0x0001af56 ldr.w r1, [pc, 0x504]                             |     
    0x0001af5a clz r3, r0                                        |     r3 &= r0;
    0x0001af5e lsrs r3, r3, 5                                    |     r3 >>= 5;
    0x0001af60 addw r4, sp, 0x8dc                                |     __asm ("addw r4, var_8dch");
    0x0001af64 mov r2, r4                                        |     r2 = r4;
    0x0001af66 str.w sl, [sp]                                    |     __asm ("str.w sl, [sp]");
    0x0001af6a str r3, [sp, 0x50]                                |     var_50h = r3;
    0x0001af6c add r1, pc                                        |     r1 = 0x363ce;
    0x0001af6e mov.w r3, 0x800                                   |     r3 = 0x800;
    0x0001af72 mov r0, r5                                        |     r0 = r5;
    0x0001af74 bl 0x3b3dc                                        |     zbx_json_value_by_name ();
    0x0001af78 str r0, [sp, 0x28]                                |     var_28h = r0;
    0x0001af7a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001af7c beq.w 0x1b384                                     |         goto label_17;
                                                                 |     }
    0x0001af80 movs r3, 1                                        |     r3 = 1;
    0x0001af82 str.w sl, [sp, 0x2c]                              |     __asm ("str.w sl, [var_2ch]");
    0x0001af86 str r3, [sp, 0x28]                                |     var_28h = r3;
                                                                 | label_12:
    0x0001af88 ldr.w r1, [pc, 0x4d4]                             |     
    0x0001af8c movs r7, 0                                        |     r7 = 0;
    0x0001af8e mov.w r3, 0x800                                   |     r3 = 0x800;
    0x0001af92 mov r2, r4                                        |     r2 = r4;
    0x0001af94 mov r0, r5                                        |     r0 = r5;
    0x0001af96 str r7, [sp]                                      |     *(sp) = r7;
    0x0001af98 add r1, pc                                        |     r1 = 0x363fc;
    0x0001af9a bl 0x3b3dc                                        |     r0 = zbx_json_value_by_name ();
    0x0001af9e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001afa0 beq.w 0x1b372                                     |         goto label_18;
                                                                 |     }
    0x0001afa4 str r7, [sp, 0x44]                                |     var_44h = r7;
    0x0001afa6 str r7, [sp, 0x68]                                |     var_68h = r7;
                                                                 | label_11:
    0x0001afa8 ldr.w r1, [pc, 0x4b8]                             |     
    0x0001afac movs r7, 0                                        |     r7 = 0;
    0x0001afae mov.w r3, 0x800                                   |     r3 = 0x800;
    0x0001afb2 mov r2, r4                                        |     r2 = r4;
    0x0001afb4 mov r0, r5                                        |     r0 = r5;
    0x0001afb6 str r7, [sp]                                      |     *(sp) = r7;
    0x0001afb8 add r1, pc                                        |     r1 = 0x36420;
    0x0001afba bl 0x3b3dc                                        |     zbx_json_value_by_name ();
    0x0001afbc invalid                                           |     
                                                                 |     if (r7 == 0) {
    0x0001afc0 beq.w 0x1b360                                     |         goto label_19;
                                                                 |     }
    0x0001afc4 str r7, [sp, 0x48]                                |     var_48h = r7;
    0x0001afc6 str r7, [sp, 0x6c]                                |     var_6ch = r7;
                                                                 | label_10:
    0x0001afc8 ldr.w r1, [pc, 0x49c]                             |     
    0x0001afcc movs r7, 0                                        |     r7 = 0;
    0x0001afce mov.w r3, 0x800                                   |     r3 = 0x800;
    0x0001afd2 mov r2, r4                                        |     r2 = r4;
    0x0001afd4 mov r0, r5                                        |     r0 = r5;
    0x0001afd6 str r7, [sp]                                      |     *(sp) = r7;
    0x0001afd8 add r1, pc                                        |     r1 = 0x36444;
    0x0001afda bl 0x3b3dc                                        |     r0 = zbx_json_value_by_name ();
    0x0001afde cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001afe0 beq.w 0x1b34e                                     |         goto label_20;
                                                                 |     }
    0x0001afe4 str r7, [sp, 0x4c]                                |     var_4ch = r7;
    0x0001afe6 str r7, [sp, 0x70]                                |     var_70h = r7;
                                                                 | label_9:
    0x0001afe8 ldr.w r1, [pc, 0x480]                             |     
    0x0001afec movs r7, 0                                        |     r7 = 0;
    0x0001afee mov.w r3, 0x800                                   |     r3 = 0x800;
    0x0001aff2 mov r2, r4                                        |     r2 = r4;
    0x0001aff4 mov r0, r5                                        |     r0 = r5;
    0x0001aff6 str r7, [sp]                                      |     *(sp) = r7;
    0x0001aff8 add r1, pc                                        |     r1 = 0x36468;
    0x0001affa bl 0x3b3dc                                        |     r0 = zbx_json_value_by_name ();
    0x0001affe cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001b000 beq.w 0x1b326                                     |         goto label_21;
                                                                 |     }
    0x0001b004 str r7, [sp, 0x40]                                |     var_40h = r7;
                                                                 | label_8:
    0x0001b006 ldr.w r1, [pc, 0x468]                             |     r1 = *(0x0001b470);
    0x0001b00a movs r7, 0                                        |     r7 = 0;
    0x0001b00c mov.w r3, 0x800                                   |     r3 = 0x800;
    0x0001b010 mov r2, r4                                        |     r2 = r4;
    0x0001b012 mov r0, r5                                        |     r0 = r5;
    0x0001b014 str r7, [sp]                                      |     *(sp) = r7;
    0x0001b016 add r1, pc                                        |     r1 += pc;
    0x0001b018 bl 0x3b3dc                                        |     r0 = zbx_json_value_by_name ();
    0x0001b01c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001b01e beq.w 0x1b2fc                                     |         goto label_22;
                                                                 |     }
    0x0001b020 strh r5, [r5, 0xa]                                |     *((r5 + 0xa)) = r5;
    0x0001b022 str r7, [sp, 0x38]                                |     var_38h = r7;
                                                                 | label_7:
    0x0001b024 ldr.w r1, [pc, 0x44c]                             |     
    0x0001b028 movs r7, 0                                        |     r7 = 0;
    0x0001b02a mov.w r3, 0x800                                   |     r3 = 0x800;
    0x0001b02e mov r2, r4                                        |     r2 = r4;
    0x0001b030 mov r0, r5                                        |     r0 = r5;
    0x0001b032 str r7, [sp]                                      |     *(sp) = r7;
    0x0001b034 add r1, pc                                        |     r1 = 0x364ac;
    0x0001b036 bl 0x3b3dc                                        |     r0 = zbx_json_value_by_name ();
    0x0001b03a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001b03c beq.w 0x1b2d2                                     |         goto label_23;
                                                                 |     }
    0x0001b040 str r7, [sp, 0x3c]                                |     var_3ch = r7;
                                                                 | label_6:
    0x0001b042 ldr.w r1, [pc, 0x434]                             |     r1 = *(0x0001b478);
    0x0001b046 movs r7, 0                                        |     r7 = 0;
    0x0001b048 mov.w r3, 0x800                                   |     r3 = 0x800;
    0x0001b04c mov r2, r4                                        |     r2 = r4;
    0x0001b04e mov r0, r5                                        |     r0 = r5;
    0x0001b050 str r7, [sp]                                      |     *(sp) = r7;
    0x0001b052 add r1, pc                                        |     r1 += pc;
    0x0001b054 bl 0x3b3dc                                        |     r0 = zbx_json_value_by_name ();
    0x0001b058 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001b05a beq.w 0x1b2aa                                     |         goto label_24;
                                                                 |     }
                                                                 | label_5:
    0x0001b05e ldr.w r1, [pc, 0x41c]                             |     r1 = *(0x0001b47c);
    0x0001b062 movs r3, 0                                        |     r3 = 0;
    0x0001b064 str r3, [sp]                                      |     *(sp) = r3;
    0x0001b066 mov r2, r4                                        |     r2 = r4;
    0x0001b068 mov.w r3, 0x800                                   |     r3 = 0x800;
    0x0001b06c mov r0, r5                                        |     r0 = r5;
    0x0001b06e add r1, pc                                        |     r1 += pc;
    0x0001b070 bl 0x3b3dc                                        |     r0 = zbx_json_value_by_name ();
    0x0001b074 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001b076 beq.w 0x1b282                                     |         goto label_25;
                                                                 |     }
    0x0001b07a movs r3, 1                                        |     r3 = 1;
    0x0001b07c str r3, [sp, 0x54]                                |     var_54h = r3;
                                                                 | label_4:
    0x0001b07e ldr.w r1, [pc, 0x400]                             |     r1 = *(0x0001b480);
    0x0001b082 mov.w sb, 0                                       |     sb = 0;
    0x0001b086 mov.w r3, 0x800                                   |     r3 = 0x800;
    0x0001b088 str r0, [r0, 0x30]                                |     *((r0 + 0x30)) = r0;
    0x0001b08a mov r2, r4                                        |     r2 = r4;
    0x0001b08c mov r0, r5                                        |     r0 = r5;
    0x0001b08e str.w sb, [sp]                                    |     __asm ("str.w sb, [sp]");
    0x0001b092 add r1, pc                                        |     r1 += pc;
    0x0001b094 bl 0x3b3dc                                        |     r0 = zbx_json_value_by_name ();
    0x0001b098 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001b09a beq.w 0x1b270                                     |         goto label_26;
                                                                 |     }
    0x0001b09e str.w sb, [sp, 0x74]                              |     __asm ("str.w sb, [var_74h]");
                                                                 | label_3:
    0x0001b0a2 ldr r1, [pc, 0x3e0]                               |     
    0x0001b0a4 movs r3, 0                                        |     r3 = 0;
    0x0001b0a6 str r3, [sp]                                      |     *(sp) = r3;
    0x0001b0a8 mov r2, r4                                        |     r2 = r4;
    0x0001b0aa mov.w r3, 0x800                                   |     r3 = 0x800;
    0x0001b0ae mov r0, r5                                        |     r0 = r5;
    0x0001b0b0 add r1, pc                                        |     r1 = 0x3653a;
    0x0001b0b2 bl 0x3b3dc                                        |     r0 = zbx_json_value_by_name ();
    0x0001b0b6 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001b0b8 beq.w 0x1b256                                     |         goto label_27;
                                                                 |     }
    0x0001b0bc movs r3, 0                                        |     r3 = 0;
    0x0001b0be str r3, [sp, 0x34]                                |     var_34h = r3;
                                                                 | label_2:
    0x0001b0c0 ldr r1, [pc, 0x3c4]                               |     
    0x0001b0c2 movs r3, 0                                        |     r3 = 0;
    0x0001b0c4 str r3, [sp]                                      |     *(sp) = r3;
    0x0001b0c6 mov r2, r4                                        |     r2 = r4;
    0x0001b0c8 mov.w r3, 0x800                                   |     r3 = 0x800;
    0x0001b0cc mov r0, r5                                        |     r0 = r5;
    0x0001b0ce add r1, pc                                        |     r1 = 0x3655a;
    0x0001b0d0 bl 0x3b3dc                                        |     r0 = zbx_json_value_by_name ();
    0x0001b0d4 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001b0d6 beq.w 0x1b22c                                     |         goto label_28;
                                                                 |     }
    0x0001b0da mov.w r8, 0                                       |     r8 = 0;
                                                                 | label_1:
    0x0001b0de ldr r1, [pc, 0x3ac]                               |     
    0x0001b0e0 movs r3, 0                                        |     r3 = 0;
    0x0001b0e2 str r3, [sp]                                      |     *(sp) = r3;
    0x0001b0e4 mov r0, r5                                        |     r0 = r5;
    0x0001b0e6 mov.w r3, 0x800                                   |     r3 = 0x800;
    0x0001b0ea mov r2, r4                                        |     r2 = r4;
    0x0001b0ec add r1, pc                                        |     r1 = 0x3657e;
    0x0001b0ee bl 0x3b3dc                                        |     r0 = zbx_json_value_by_name ();
    0x0001b0f2 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001b0f4 beq.w 0x1b210                                     |         goto label_29;
                                                                 |     }
                                                                 | label_0:
    0x0001b0f8 ldr r4, [sp, 0x28]                                |     r4 = var_28h;
    0x0001b0fa ldr r3, [sp, 0x54]                                |     r3 = var_54h;
    0x0001b0fc orrs r4, r3                                       |     r4 |= r3;
                                                                 |     if (r4 != r3) {
    0x0001b0fe bne.w 0x1b438                                     |         goto label_30;
                                                                 |     }
    0x0001b102 ldr r2, [sp, 0x50]                                |     r2 = var_50h;
    0x0001b104 ldr r3, [sp, 0x44]                                |     r3 = var_44h;
    0x0001b106 add r3, r2                                        |     r3 += r2;
    0x0001b108 ldr r2, [sp, 0x48]                                |     r2 = var_48h;
    0x0001b10a add r3, r2                                        |     r3 += r2;
    0x0001b10c ldr r2, [sp, 0x4c]                                |     r2 = var_4ch;
    0x0001b10e add r3, r2                                        |     r3 += r2;
    0x0001b110 ldr r2, [sp, 0x40]                                |     r2 = var_40h;
    0x0001b112 add r3, r2                                        |     r3 += r2;
    0x0001b114 ldr r2, [sp, 0x38]                                |     r2 = var_38h;
    0x0001b116 add r3, r2                                        |     r3 += r2;
    0x0001b118 ldr r2, [sp, 0x3c]                                |     r2 = var_3ch;
    0x0001b11a add r3, r2                                        |     r3 += r2;
    0x0001b11c ldr r2, [sp, 0x34]                                |     r2 = var_34h;
    0x0001b11e add r3, r7                                        |     r3 += r7;
    0x0001b120 add r3, sb                                        |     r3 += sb;
    0x0001b122 add r3, r2                                        |     r3 += r2;
    0x0001b124 add r3, r8                                        |     r3 += r8;
    0x0001b126 adds.w r3, r3, sl                                 |     r3 += sl;
                                                                 |     if (r3 == r3) {
    0x0001b12a beq 0x1b204                                       |         goto label_31;
                                                                 |     }
    0x0001b12c cmp r3, 0xc                                       |     
                                                                 |     if (r3 != 0xc) {
    0x0001b12e bne.w 0x1b3ec                                     |         goto label_32;
                                                                 |     }
    0x0001b132 ldr r7, [pc, 0x35c]                               |     
    0x0001b134 movs r3, 0x70                                     |     r3 = 0x70;
    0x0001b136 mov r2, r4                                        |     r2 = r4;
    0x0001b138 movw r1, 0x381                                    |     r1 = 0x381;
    0x0001b13c add r7, pc                                        |     r7 = 0x365d2;
    0x0001b13e mov r0, r7                                        |     r0 = r7;
    0x0001b140 bl 0x40dd8                                        |     zbx_malloc2 ();
    0x0001b144 ldr r1, [sp, 0x5c]                                |     r1 = var_5ch;
    0x0001b146 movs r2, 1                                        |     r2 = 1;
    0x0001b148 mov r5, r0                                        |     r5 = r0;
    0x0001b14a str.w r0, [fp]                                    |     __asm ("str.w r0, [fp]");
    0x0001b14e ldr r3, [sp, 0x78]                                |     r3 = var_78h;
    0x0001b150 mov r0, r7                                        |     r0 = r7;
    0x0001b152 str r2, [r1]                                      |     *(r1) = r2;
    0x0001b154 mov r2, r4                                        |     r2 = r4;
    0x0001b156 mov.w r1, 0x384                                   |     r1 = 0x384;
    0x0001b15a bl 0x40ed8                                        |     zbx_strdup2 ();
    0x0001b15e ldr r3, [sp, 0x68]                                |     r3 = var_68h;
    0x0001b160 str r0, [r5]                                      |     *(r5) = r0;
    0x0001b162 ldr.w r5, [fp]                                    |     r5 = *(fp);
    0x0001b166 ldrd r8, sb, [r6]                                 |     __asm ("ldrd r8, sb, [r6]");
    0x0001b16a str r3, [r5, 8]                                   |     *((r5 + 8)) = r3;
    0x0001b16c ldr r3, [sp, 0x6c]                                |     r3 = var_6ch;
    0x0001b16e str r4, [r5, 0xc]                                 |     *((r5 + 0xc)) = r4;
    0x0001b170 strd r8, sb, [r5, 0x38]                           |     __asm ("strd r8, sb, [r5, 0x38]");
    0x0001b174 str r3, [r5, 0x10]                                |     *((r5 + 0x10)) = r3;
    0x0001b176 ldr r3, [sp, 0x70]                                |     r3 = var_70h;
    0x0001b178 str r3, [r5, 0x14]                                |     *((r5 + 0x14)) = r3;
    0x0001b17a ldr r3, [sp, 0x74]                                |     r3 = var_74h;
    0x0001b17c str r3, [r5, 0x40]                                |     *((r5 + 0x40)) = r3;
    0x0001b17e ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
    0x0001b180 str r3, [r5, 4]                                   |     *((r5 + 4)) = r3;
    0x0001b182 ldrd r2, r3, [sp, 0x80]                           |     __asm ("ldrd r2, r3, [var_80h]");
    0x0001b186 strd r2, r3, [r5, 0x18]                           |     __asm ("strd r2, r3, [r5, 0x18]");
    0x0001b188 movs r3, 6                                        |     r3 = 6;
    0x0001b18a ldr r2, [sp, 0x58]                                |     r2 = var_58h;
    0x0001b18c sub.w r7, r2, 0x24                                |     r7 = r2 - 0x24;
    0x0001b190 sub.w ip, r2, 0x14                                |     
    0x0001b194 ldr r2, [sp, 0x64]                                |     r2 = var_64h;
    0x0001b196 vldr d16, [r2, -8]                                |     __asm ("vldr d16, [r2, -8]");
    0x0001b19a ldrd r2, r3, [r6, -0x18]                          |     __asm ("ldrd r2, r3, [var_18h]");
    0x0001b19e strd r2, r3, [r5, 0x20]                           |     __asm ("strd r2, r3, [r5, 0x20]");
    0x0001b1a2 ldrd r2, r3, [r6, -0x10]                          |     __asm ("ldrd r2, r3, [var_10h_3]");
    0x0001b1a6 strd r2, r3, [r5, 0x28]                           |     __asm ("strd r2, r3, [r5, 0x28]");
    0x0001b1aa ldrd r2, r3, [r6, -0x8]                           |     __asm ("ldrd r2, r3, [r6, -0x8]");
    0x0001b1ae strd r2, r3, [r5, 0x30]                           |     __asm ("strd r2, r3, [r5, 0x30]");
    0x0001b1b2 ldm r7!, {r0, r1, r2, r3}                         |     r0 = *(r7!);
                                                                 |     r1 = *((r7! + 4));
                                                                 |     r2 = *((r7! + 8));
                                                                 |     r3 = *((r7! + 12));
    0x0001b1b4 str r0, [r5, 0x44]                                |     *((r5 + 0x44)) = r0;
    0x0001b1b6 str r1, [r5, 0x48]                                |     *((r5 + 0x48)) = r1;
    0x0001b1b8 str r2, [r5, 0x4c]                                |     *((r5 + 0x4c)) = r2;
    0x0001b1ba str r3, [r5, 0x50]                                |     *((r5 + 0x50)) = r3;
    0x0001b1bc ldm.w ip!, {r0, r1, r2, r3}                       |     r0 = *(ip!);
                                                                 |     r1 = *((ip! + 4));
                                                                 |     r2 = *((ip! + 8));
                                                                 |     r3 = *((ip! + 12));
    0x0001b1c0 ldr.w r5, [fp]                                    |     r5 = *(fp);
    0x0001b1c4 str r2, [r5, 0x68]                                |     *((r5 + 0x68)) = r2;
    0x0001b1c6 str r3, [r5, 0x6c]                                |     *((r5 + 0x6c)) = r3;
    0x0001b1c8 ldrd r3, r2, [sp, 0x2c]                           |     __asm ("ldrd r3, r2, [var_30h]");
    0x0001b1cc vstr d16, [r5, 0x58]                              |     __asm ("vstr d16, [r5, 0x58]");
    0x0001b1d0 str r0, [r5, 0x60]                                |     *((r5 + 0x60)) = r0;
    0x0001b1d2 str r1, [r5, 0x64]                                |     *((r5 + 0x64)) = r1;
    0x0001b1d4 str r3, [r2]                                      |     *(r2) = r3;
                                                                 |     do {
    0x0001b1d6 ldr r3, [sp, 0x60]                                |         r3 = var_60h;
    0x0001b1d8 strd r8, sb, [r3]                                 |         __asm ("strd r8, sb, [r3]");
                                                                 | label_13:
    0x0001b1dc ldr r2, [pc, 0x2b4]                               |         
    0x0001b1de add.w r1, sp, 0x10c0                              |         r1 += var_10c0h;
    0x0001b1e2 ldr r3, [pc, 0x26c]                               |         r3 = *(0x1b452);
    0x0001b1e4 adds r1, 0x1c                                     |         r1 += 0x1c;
    0x0001b1e6 add r2, pc                                        |         r2 = 0x3667e;
    0x0001b1e8 ldr r3, [r2, r3]                                  |         r3 = *(0x3667e);
    0x0001b1ea ldr r2, [r3]                                      |         r2 = *(0x3667e);
    0x0001b1ec ldr r3, [r1]                                      |         r3 = *(r1);
    0x0001b1ee eors r2, r3                                       |         r2 ^= r3;
    0x0001b1f0 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0001b1f4 bne.w 0x1b448                                     |             goto label_33;
                                                                 |         }
    0x0001b1f8 mov r0, r4                                        |         r0 = r4;
    0x0001b1fa add.w sp, sp, 0x10e0                              |         
    0x0001b1fe add sp, 4                                         |         
    0x0001b200 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_31:
    0x0001b204 ldrd r2, r3, [sp, 0x2c]                           |         __asm ("ldrd r2, r3, [var_30h]");
    0x0001b208 ldrd r8, sb, [r6]                                 |         __asm ("ldrd r8, sb, [r6]");
    0x0001b20c str r2, [r3]                                      |         *(r3) = r2;
    0x0001b20e b 0x1b1d6                                         |         
                                                                 |     } while (1);
                                                                 | label_29:
    0x0001b210 ldr r3, [sp, 0x58]                                |     r3 = var_58h;
    0x0001b212 mov r0, r4                                        |     r0 = r4;
    0x0001b214 movs r2, 0x10                                     |     r2 = 0x10;
    0x0001b216 sub.w r1, r3, 0x14                                |     r1 = r3 - 0x14;
    0x0001b21a bl 0x4a3e8                                        |     zbx_hex2bin ();
    0x0001b21e sub.w sl, r0, 0x10                                |     sl -= var_10h_4;
    0x0001b222 clz sl, sl                                        |     sl &= sl;
    0x0001b226 lsr.w sl, sl, 5                                   |     sl >>= 5;
    0x0001b228 subs r2, r3, r1                                   |     r2 = r3 - r1;
    0x0001b22a b 0x1b0f8                                         |     goto label_0;
                                                                 | label_28:
    0x0001b22c vmov.i8 d17, 0xff                                 |     __asm ("vmov.i8 d17, 0xff");
    0x0001b230 sub.w r2, r8, 0x18                                |     r2 -= var_18h_2;
    0x0001b234 vmov.i32 d16, 0                                   |     __asm ("vmov.i32 d16, 0");
    0x0001b238 movs r3, 8                                        |     r3 = 8;
    0x0001b23a mov.w r1, -1                                      |     r1 = -1;
    0x0001b23e mov r0, r4                                        |     r0 = r4;
    0x0001b240 vstr d17, [sp, 8]                                 |     __asm ("vstr d17, [sp, 8]");
    0x0001b244 vstr d16, [sp]                                    |     __asm ("vstr d16, [sp]");
    0x0001b248 bl 0x419a8                                        |     r0 = is_uint_n_range ();
    0x0001b24c clz r8, r0                                        |     r8 &= r0;
    0x0001b250 lsr.w r8, r8, 5                                   |     r8 >>= 5;
    0x0001b254 b 0x1b0de                                         |     goto label_1;
                                                                 | label_27:
    0x0001b256 movs r2, 0x10                                     |     r2 = 0x10;
    0x0001b258 sub.w r1, r8, 4                                   |     r1 -= var_4h_2;
    0x0001b25c mov r0, r4                                        |     r0 = r4;
    0x0001b25e bl 0x4a3e8                                        |     zbx_hex2bin ();
    0x0001b262 sub.w r3, r0, 0x10                                |     r3 -= var_10h_4;
    0x0001b266 clz r3, r3                                        |     r3 &= r3;
    0x0001b26a lsrs r3, r3, 5                                    |     r3 >>= 5;
    0x0001b26c str r3, [sp, 0x34]                                |     var_34h = r3;
    0x0001b26e b 0x1b0c0                                         |     goto label_2;
                                                                 | label_26:
    0x0001b270 mov r1, r0                                        |     r1 = r0;
    0x0001b272 movs r2, 0xa                                      |     r2 = 0xa;
    0x0001b274 mov r0, r4                                        |     r0 = r4;
    0x0001b276 mov.w sb, 1                                       |     sb = 1;
    0x0001b27a blx 0xdfe8                                        |     waitpid ();
    0x0001b27e str r0, [sp, 0x74]                                |     var_74h = r0;
    0x0001b280 b 0x1b0a2                                         |     goto label_3;
                                                                 | label_25:
    0x0001b282 vmov.i8 d17, 0xff                                 |     __asm ("vmov.i8 d17, 0xff");
    0x0001b286 movs r3, 8                                        |     r3 = 8;
    0x0001b288 vmov.i32 d16, 0                                   |     __asm ("vmov.i32 d16, 0");
    0x0001b28c mov r2, r6                                        |     r2 = r6;
    0x0001b28e mov.w r1, -1                                      |     r1 = -1;
    0x0001b292 mov r0, r4                                        |     r0 = r4;
    0x0001b294 vstr d17, [sp, 8]                                 |     __asm ("vstr d17, [sp, 8]");
    0x0001b298 vstr d16, [sp]                                    |     __asm ("vstr d16, [sp]");
    0x0001b29c bl 0x419a8                                        |     is_uint_n_range ();
    0x0001b2a0 subs r3, r0, 0                                    |     r3 -= var_8dch;
    0x0001b2a2 it ne                                             |     
                                                                 |     if (r3 == var_8dch) {
    0x0001b2a4 movne r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x0001b2a6 str r3, [sp, 0x54]                                |     var_54h = r3;
    0x0001b2a8 b 0x1b07e                                         |     goto label_4;
                                                                 | label_24:
    0x0001b2aa vmov.i8 d17, 0xff                                 |     __asm ("vmov.i8 d17, 0xff");
    0x0001b2ae movs r3, 8                                        |     r3 = 8;
    0x0001b2b0 vmov.i32 d16, 0                                   |     __asm ("vmov.i32 d16, 0");
    0x0001b2b4 sub.w r2, r6, 8                                   |     r2 -= var_8h_2;
    0x0001b2b8 mov.w r1, -1                                      |     r1 = -1;
    0x0001b2bc mov r0, r4                                        |     r0 = r4;
    0x0001b2be vstr d17, [sp, 8]                                 |     __asm ("vstr d17, [sp, 8]");
    0x0001b2c2 vstr d16, [sp]                                    |     __asm ("vstr d16, [sp]");
    0x0001b2c6 bl 0x419a8                                        |     r0 = is_uint_n_range ();
    0x0001b2ca clz r7, r0                                        |     r7 &= r0;
    0x0001b2ce lsrs r7, r7, 5                                    |     r7 >>= 5;
    0x0001b2d0 b 0x1b05e                                         |     goto label_5;
                                                                 | label_23:
    0x0001b2d2 vmov.i8 d17, 0xff                                 |     __asm ("vmov.i8 d17, 0xff");
    0x0001b2d6 movs r3, 8                                        |     r3 = 8;
    0x0001b2d8 vmov.i32 d16, 0                                   |     __asm ("vmov.i32 d16, 0");
    0x0001b2dc sub.w r2, r6, 0x10                                |     r2 -= var_10h_3;
    0x0001b2e0 mov.w r1, -1                                      |     r1 = -1;
    0x0001b2e4 mov r0, r4                                        |     r0 = r4;
    0x0001b2e6 vstr d17, [sp, 8]                                 |     __asm ("vstr d17, [sp, 8]");
    0x0001b2ea vstr d16, [sp]                                    |     __asm ("vstr d16, [sp]");
    0x0001b2ee bl 0x419a8                                        |     r0 = is_uint_n_range ();
    0x0001b2f2 clz r3, r0                                        |     r3 &= r0;
    0x0001b2f6 lsrs r3, r3, 5                                    |     r3 >>= 5;
    0x0001b2f8 str r3, [sp, 0x3c]                                |     var_3ch = r3;
    0x0001b2fa b 0x1b042                                         |     goto label_6;
                                                                 | label_22:
    0x0001b2fc vmov.i8 d17, 0xff                                 |     __asm ("vmov.i8 d17, 0xff");
    0x0001b300 movs r3, 8                                        |     r3 = 8;
    0x0001b302 vmov.i32 d16, 0                                   |     __asm ("vmov.i32 d16, 0");
    0x0001b306 sub.w r2, r6, 0x18                                |     r2 -= var_18h;
    0x0001b30a mov.w r1, -1                                      |     r1 = -1;
    0x0001b30e mov r0, r4                                        |     r0 = r4;
    0x0001b310 vstr d17, [sp, 8]                                 |     __asm ("vstr d17, [sp, 8]");
    0x0001b314 vstr d16, [sp]                                    |     __asm ("vstr d16, [sp]");
    0x0001b318 bl 0x419a8                                        |     r0 = is_uint_n_range ();
    0x0001b31c clz r3, r0                                        |     r3 &= r0;
    0x0001b320 lsrs r3, r3, 5                                    |     r3 >>= 5;
    0x0001b322 str r3, [sp, 0x38]                                |     var_38h = r3;
    0x0001b324 b 0x1b024                                         |     goto label_7;
                                                                 | label_21:
    0x0001b326 vmov.i8 d17, 0xff                                 |     __asm ("vmov.i8 d17, 0xff");
    0x0001b32a movs r3, 8                                        |     r3 = 8;
    0x0001b32c vmov.i32 d16, 0                                   |     __asm ("vmov.i32 d16, 0");
    0x0001b330 add r2, sp, 0x80                                  |     r2 += var_80h;
    0x0001b332 mov.w r1, -1                                      |     r1 = -1;
    0x0001b336 mov r0, r4                                        |     r0 = r4;
    0x0001b338 vstr d17, [sp, 8]                                 |     __asm ("vstr d17, [sp, 8]");
    0x0001b33c vstr d16, [sp]                                    |     __asm ("vstr d16, [sp]");
    0x0001b340 bl 0x419a8                                        |     r0 = is_uint_n_range ();
    0x0001b344 clz r3, r0                                        |     r3 &= r0;
    0x0001b348 lsrs r3, r3, 5                                    |     r3 >>= 5;
    0x0001b34a str r3, [sp, 0x40]                                |     var_40h = r3;
    0x0001b34c b 0x1b006                                         |     goto label_8;
                                                                 | label_20:
    0x0001b34e mov r1, r0                                        |     r1 = r0;
    0x0001b350 movs r2, 0xa                                      |     r2 = 0xa;
    0x0001b352 mov r0, r4                                        |     r0 = r4;
    0x0001b354 blx 0xdfe8                                        |     waitpid ();
    0x0001b358 movs r3, 1                                        |     r3 = 1;
    0x0001b35a str r0, [sp, 0x70]                                |     var_70h = r0;
    0x0001b35c str r3, [sp, 0x4c]                                |     var_4ch = r3;
    0x0001b35e b 0x1afe8                                         |     goto label_9;
                                                                 | label_19:
    0x0001b360 mov r1, r0                                        |     r1 = r0;
    0x0001b362 movs r2, 0xa                                      |     r2 = 0xa;
    0x0001b364 mov r0, r4                                        |     r0 = r4;
    0x0001b366 blx 0xdfe8                                        |     waitpid ();
    0x0001b36a movs r3, 1                                        |     r3 = 1;
    0x0001b36c str r0, [sp, 0x6c]                                |     var_6ch = r0;
    0x0001b36e str r3, [sp, 0x48]                                |     var_48h = r3;
    0x0001b370 b 0x1afc8                                         |     goto label_10;
                                                                 | label_18:
    0x0001b372 mov r1, r0                                        |     r1 = r0;
    0x0001b374 movs r2, 0xa                                      |     r2 = 0xa;
    0x0001b376 mov r0, r4                                        |     r0 = r4;
    0x0001b378 blx 0xdfe8                                        |     waitpid ();
    0x0001b37c movs r3, 1                                        |     r3 = 1;
    0x0001b37e str r0, [sp, 0x68]                                |     var_68h = r0;
    0x0001b380 str r3, [sp, 0x44]                                |     var_44h = r3;
    0x0001b382 b 0x1afa8                                         |     goto label_11;
                                                                 | label_17:
    0x0001b384 mov r1, r0                                        |     r1 = r0;
    0x0001b386 movs r2, 0xa                                      |     r2 = 0xa;
    0x0001b388 mov r0, r4                                        |     r0 = r4;
    0x0001b38a blx 0xdfe8                                        |     waitpid ();
    0x0001b38e str r0, [sp, 0x2c]                                |     var_2ch = r0;
    0x0001b390 b 0x1af88                                         |     goto label_12;
                                                                 | label_15:
    0x0001b392 ldr r5, [pc, 0x104]                               |     
    0x0001b394 movw r3, 0x2fe                                    |     r3 = 0x2fe;
    0x0001b398 str r3, [sp]                                      |     *(sp) = r3;
    0x0001b39a ldr r1, [pc, 0x100]                               |     
    0x0001b39c ldr r3, [pc, 0x100]                               |     
    0x0001b39e add r5, pc                                        |     
    0x0001b3a0 ldr r0, [pc, 0x100]                               |     
    0x0001b3a2 add.w r5, r5, 0x110                               |     r5 = 0x3694c;
    0x0001b3a6 add r1, pc                                        |     r1 = 0x36848;
    0x0001b3a8 mov r2, r5                                        |     r2 = r5;
    0x0001b3aa add r3, pc                                        |     
    0x0001b3ac ldr r6, [pc, 0xf8]                                |     
    0x0001b3ae add r0, pc                                        |     r0 = 0x36856;
    0x0001b3b0 bl 0x43cd4                                        |     zbx_error ();
    0x0001b3b4 bl 0x356ac                                        |     zbx_backtrace ();
    0x0001b3b8 ldr r7, [sp, 0x7c]                                |     r7 = var_7ch;
    0x0001b3ba add r6, pc                                        |     r6 = 0x36866;
    0x0001b3bc ldr r3, [sp, 0x5c]                                |     r3 = var_5ch;
    0x0001b3be mov r2, r5                                        |     r2 = r5;
    0x0001b3c0 mov r1, r6                                        |     r1 = r6;
    0x0001b3c2 ldr r0, [r7]                                      |     r0 = *(r7);
    0x0001b3c4 ldr r3, [r3]                                      |     r3 = *(0x3684e);
    0x0001b3c6 bl 0x44820                                        |     zbx_dsprintf ()
    0x0001b3ca ldr r3, [pc, 0xe0]                                |     
    0x0001b3cc str r0, [r7]                                      |     *(r7) = r0;
    0x0001b3ce ldr r3, [r4, r3]                                  |     r3 = *((r4 + r3));
    0x0001b3d0 ldr r3, [r3]                                      |     r3 = *(0x1b4ae);
    0x0001b3d2 cmp r3, 2                                         |     
    0x0001b3d4 bgt 0x1b3dc                                       |     
                                                                 |     while (1) {
                                                                 | label_14:
    0x0001b3d6 mov.w r4, -1                                      |         r4 = -1;
    0x0001b3da b 0x1b1dc                                         |         goto label_13;
    0x0001b3dc ldr r3, [sp, 0x5c]                                |         r3 = var_5ch;
    0x0001b3de mov r2, r5                                        |         r2 = r5;
    0x0001b3e0 mov r1, r6                                        |         r1 = r6;
    0x0001b3e2 movs r0, 3                                        |         r0 = 3;
    0x0001b3e4 ldr r3, [r3]                                      |         r3 = *(r3);
    0x0001b3e6 bl 0x30d1c                                        |         zbx_zabbix_log ();
    0x0001b3ea b 0x1b3d6                                         |         
                                                                 |     }
                                                                 | label_32:
    0x0001b3ec ldr r3, [sp, 0x34]                                |     r3 = var_34h;
    0x0001b3ee ldrd r1, r2, [sp, 0x4c]                           |     __asm ("ldrd r1, r2, [var_50h]");
    0x0001b3f2 ldr r0, [sp, 0x48]                                |     r0 = var_48h;
    0x0001b3f4 strd sb, r3, [sp, 0x18]                           |     __asm ("strd sb, r3, [var_18h_3]");
    0x0001b3f8 ldr r3, [sp, 0x3c]                                |     r3 = var_3ch;
    0x0001b3fa ldr r4, [sp, 0x7c]                                |     r4 = var_7ch;
    0x0001b3fc str r1, [sp, 4]                                   |     var_4h = r1;
    0x0001b3fe str r3, [sp, 0x10]                                |     var_10h = r3;
    0x0001b400 ldr r3, [sp, 0x38]                                |     r3 = var_38h;
    0x0001b402 ldr r1, [pc, 0xac]                                |     
    0x0001b404 strd r8, sl, [sp, 0x20]                           |     __asm ("strd r8, sl, [var_20h]");
    0x0001b408 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x0001b40a ldr r3, [sp, 0x40]                                |     r3 = var_40h;
    0x0001b40c add r1, pc                                        |     r1 = 0x368c2;
    0x0001b40e str r7, [sp, 0x14]                                |     var_14h = r7;
    0x0001b410 str r0, [sp]                                      |     *(sp) = r0;
    0x0001b412 str r3, [sp, 8]                                   |     var_8h = r3;
    0x0001b414 ldr r3, [sp, 0x44]                                |     r3 = var_44h;
    0x0001b416 ldr r0, [r4]                                      |     r0 = *(r4);
    0x0001b418 bl 0x44820                                        |     zbx_dsprintf ()
    0x0001b41c str r0, [r4]                                      |     *(r4) = r0;
    0x0001b41e b 0x1b3d6                                         |     goto label_14;
                                                                 | label_16:
    0x0001b420 ldr r5, [sp, 0x7c]                                |     r5 = var_7ch;
    0x0001b422 ldr r4, [r5]                                      |     r4 = *(r5);
    0x0001b424 bl 0x3a984                                        |     zbx_json_strerror ();
    0x0001b428 ldr r1, [pc, 0x88]                                |     
    0x0001b42a mov r2, r0                                        |     r2 = r0;
    0x0001b42c mov r0, r4                                        |     r0 = r4;
    0x0001b42e add r1, pc                                        |     r1 = 0x368e6;
    0x0001b430 bl 0x44820                                        |     zbx_dsprintf ()
    0x0001b434 str r0, [r5]                                      |     *(r5) = r0;
    0x0001b436 b 0x1b3d6                                         |     goto label_14;
                                                                 | label_30:
    0x0001b438 ldr r4, [sp, 0x7c]                                |     r4 = var_7ch;
    0x0001b43a ldr r1, [pc, 0x7c]                                |     
    0x0001b43c ldr r0, [r4]                                      |     r0 = *(r4);
    0x0001b43e add r1, pc                                        |     r1 = 0x368fc;
    0x0001b440 bl 0x44820                                        |     zbx_dsprintf ()
    0x0001b444 str r0, [r4]                                      |     *(r4) = r0;
    0x0001b446 b 0x1b3d6                                         |     goto label_14;
                                                                 | label_33:
    0x0001b448 blx 0xe158                                        |     fcn_0000e158 ();
    0x0001b44c lsrs r2, r6, 0x13                                 |     r2 = r6 >> 0x13;
    0x0001b44e movs r4, r0                                       |     r4 = r0;
    0x0001b450 lsls r4, r2, 0xe                                  |     r4 = r2 << 0xe;
    0x0001b452 movs r0, r0                                       |     
    0x0001b454 lsrs r6, r1, 0x13                                 |     r6 = r1 >> 0x13;
    0x0001b456 movs r4, r0                                       |     r4 = r0;
    0x0001b458 strb r0, [r3, r4]                                 |     *((r3 + r4)) = r0;
    0x0001b45a movs r3, r0                                       |     r3 = r0;
    0x0001b45c cmp r6, 0x74                                      |     
    0x0001b45e movs r3, r0                                       |     r3 = r0;
    0x0001b460 strb r4, [r4, r3]                                 |     *((r4 + r3)) = r4;
    0x0001b462 movs r3, r0                                       |     r3 = r0;
    0x0001b464 strb r0, [r1, r3]                                 |     *((r1 + r3)) = r0;
    0x0001b466 movs r3, r0                                       |     r3 = r0;
    0x0001b468 strb r4, [r6, r2]                                 |     *((r6 + r2)) = r4;
    0x0001b46a movs r3, r0                                       |     r3 = r0;
    0x0001b46c strb r4, [r3, r2]                                 |     *((r3 + r2)) = r4;
    0x0001b46e movs r3, r0                                       |     r3 = r0;
    0x0001b470 strb r2, [r0, r2]                                 |     *((r0 + r2)) = r2;
    0x0001b472 movs r3, r0                                       |     r3 = r0;
    0x0001b474 strb r4, [r5, r1]                                 |     *((r5 + r1)) = r4;
    0x0001b476 movs r3, r0                                       |     r3 = r0;
    0x0001b478 str r2, [r0, 0x30]                                |     *((r0 + 0x30)) = r2;
    0x0001b47a movs r3, r0                                       |     r3 = r0;
    0x0001b47c strh r6, [r7, r7]                                 |     *((r7 + r7)) = r6;
    0x0001b47e movs r3, r0                                       |     r3 = r0;
    0x0001b480 strb r6, [r2, r0]                                 |     *((r2 + r0)) = r6;
    0x0001b482 movs r3, r0                                       |     r3 = r0;
    0x0001b484 strb r0, [r1, r0]                                 |     *((r1 + r0)) = r0;
    0x0001b486 movs r3, r0                                       |     r3 = r0;
    0x0001b488 strh r2, [r7, r7]                                 |     *((r7 + r7)) = r2;
    0x0001b48a movs r3, r0                                       |     r3 = r0;
    0x0001b48c strh r0, [r6, r7]                                 |     *((r6 + r7)) = r0;
    0x0001b48e movs r3, r0                                       |     r3 = r0;
    0x0001b490 str r4, [r3, r3]                                  |     *((r3 + r3)) = r4;
    0x0001b492 movs r3, r0                                       |     r3 = r0;
    0x0001b494 lsrs r2, r6, 7                                    |     r2 = r6 >> 7;
    0x0001b496 movs r4, r0                                       |     r4 = r0;
    0x0001b498 strh r6, [r6, r7]                                 |     *((r6 + r7)) = r6;
    0x0001b49a movs r3, r0                                       |     r3 = r0;
    0x0001b49c ldr r6, [pc, 0x1c8]                               |     r6 = *(0x1b668);
    0x0001b49e movs r3, r0                                       |     r3 = r0;
    0x0001b4a0 subs r2, r1, 0                                    |     r2 -= var_0h_2;
    0x0001b4a2 movs r3, r0                                       |     r3 = r0;
    0x0001b4a4 movs r0, 0x6a                                     |     r0 = 0x6a;
    0x0001b4a6 movs r3, r0                                       |     r3 = r0;
    0x0001b4a8 strh r6, [r1, r2]                                 |     *((r1 + r2)) = r6;
    0x0001b4aa movs r3, r0                                       |     r3 = r0;
    0x0001b4ac lsls r4, r7, 0xe                                  |     r4 = r7 << 0xe;
    0x0001b4ae movs r0, r0                                       |     
    0x0001b4b0 strh r0, [r2, r3]                                 |     *((r2 + r3)) = r0;
    0x0001b4b2 movs r3, r0                                       |     r3 = r0;
    0x0001b4b4 strh r2, [r1, r1]                                 |     *((r1 + r1)) = r2;
    0x0001b4b6 movs r3, r0                                       |     r3 = r0;
    0x0001b4b8 strh r6, [r3, r1]                                 |     *((r3 + r1)) = r6;
    0x0001b4ba movs r3, r0                                       |     r3 = r0;
    0x0001b4bc ldr r2, [r0]                                      |     r2 = *(r0);
    0x0001b4be push {r3, r4, r5, r6, r7, lr}                     |     
    0x0001b4c0 ldr r3, [r1]                                      |     r3 = *(r1);
    0x0001b4c2 ldr r0, [r2, 0x20]                                |     r0 = *((r2 + 0x20));
    0x0001b4c4 ldr r1, [r3, 0x20]                                |     r1 = *((r3 + 0x20));
    0x0001b4c6 cmp r0, r1                                        |     
                                                                 |     if (r0 != r1) {
    0x0001b4c8 bne 0x1b4f8                                       |         goto label_34;
                                                                 |     }
    0x0001b4ca ldr r7, [r2, 8]                                   |     r7 = *((r2 + 8));
    0x0001b4cc ldr r1, [r3, 8]                                   |     r1 = *((r3 + 8));
    0x0001b4ce cmp r7, r1                                        |     
                                                                 |     if (r7 != r1) {
    0x0001b4d0 bne 0x1b4f8                                       |         goto label_34;
                                                                 |     }
    0x0001b4d2 cmp r7, 0                                         |     
                                                                 |     if (r7 <= 0) {
    0x0001b4d4 ble 0x1b4fc                                       |         goto label_35;
                                                                 |     }
    0x0001b4d6 ldr r6, [r2, 4]                                   |     r6 = *((r2 + 4));
    0x0001b4d8 movs r4, 0                                        |     r4 = 0;
    0x0001b4da ldr r5, [r3, 4]                                   |     r5 = *((r3 + 4));
    0x0001b4dc subs r6, 4                                        |     r6 -= 4;
    0x0001b4de subs r5, 4                                        |     r5 -= 4;
    0x0001b4e0 b 0x1b4e6                                         |     
                                                                 |     while (r0 == 0) {
    0x0001b4e2 cmp r7, r4                                        |         
                                                                 |         if (r7 == r4) {
    0x0001b4e4 beq 0x1b4fa                                       |             goto label_36;
                                                                 |         }
    0x0001b4e6 ldr r1, [r5, 4]!                                  |         r1 = *((r5 += 4));
    0x0001b4ea adds r4, 1                                        |         r4++;
    0x0001b4ec ldr r0, [r6, 4]!                                  |         r0 = *((r6 += 4));
    0x0001b4f0 blx 0xe3b0                                        |         r0 = fcn_0000e3b0 ();
    0x0001b4f4 cmp r0, 0                                         |         
    0x0001b4f6 beq 0x1b4e2                                       |         
                                                                 |     }
                                                                 | label_34:
    0x0001b4f8 movs r0, 1                                        |     r0 = 1;
                                                                 | label_36:
    0x0001b4fa pop {r3, r4, r5, r6, r7, pc}                      |     
                                                                 | label_35:
    0x0001b4fc movs r0, 0                                        |     r0 = 0;
    0x0001b4fe pop {r3, r4, r5, r6, r7, pc}                      |     
                                                                 | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x3a0e8 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.zbx_set_data_destination_hosts ()                    | void zbx_set_data_destination_hosts (int16_t arg_80h, int16_t arg_84h, int16_t arg_88h, 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_10h;
                                                                     |     int16_t var_14h;
                                                                     |     int16_t var_18h;
                                                                     |     int16_t var_1ch;
                                                                     |     int16_t var_24h;
                                                                     |     int16_t var_3ch;
                                                                     |     int16_t var_40h;
                                                                     |     int16_t var_54h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
                                                                     |     r3 = arg4;
    0x0003a0e8 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0003a0ec sub sp, 0x5c                                          |     
    0x0003a0ee str r2, [sp, 4]                                       |     var_4h = r2;
    0x0003a0f0 add.w r8, sp, 0x24                                    |     r8 += var_24h;
    0x0003a0f4 mov r6, r0                                            |     r6 = r0;
    0x0003a0f6 add.w sl, sp, 0x3c                                    |     sl += var_3ch;
    0x0003a0fa ldr r2, [pc, 0x184]                                   |     
    0x0003a0fc mov r0, r8                                            |     r0 = r8;
    0x0003a0fe str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x0003a100 mov fp, r1                                            |     
    0x0003a102 ldr r4, [sp, 0x80]                                    |     r4 = *(arg_80h);
    0x0003a104 mov.w sb, 0                                           |     sb = 0;
    0x0003a108 ldr r3, [pc, 0x178]                                   |     r3 = *(0x3a284);
    0x0003a10a add r2, pc                                            |     r2 = 0x74390;
    0x0003a10c str r4, [sp, 0x10]                                    |     var_10h = r4;
    0x0003a10e ldr r3, [r2, r3]                                      |     
    0x0003a110 ldr r3, [r3]                                          |     r3 = *(0x74390);
    0x0003a112 str r3, [sp, 0x54]                                    |     var_54h = r3;
    0x0003a114 mov.w r3, 0                                           |     r3 = 0;
    0x0003a118 ldr r3, [pc, 0x16c]                                   |     
    0x0003a11a add r3, pc                                            |     r3 = 0x743a6;
    0x0003a11c str r3, [sp]                                          |     *(sp) = r3;
    0x0003a11e ldr r3, [pc, 0x16c]                                   |     
    0x0003a120 add r3, pc                                            |     r3 = 0x743b2;
    0x0003a122 str r3, [sp, 8]                                       |     var_8h = r3;
    0x0003a124 ldr r3, [sp, 0x84]                                    |     r3 = *(arg_84h);
    0x0003a126 str r3, [sp, 0x14]                                    |     var_14h = r3;
    0x0003a128 ldr r3, [sp, 0x88]                                    |     r3 = *(arg_88h);
    0x0003a12a str r3, [sp, 0x1c]                                    |     var_1ch = r3;
    0x0003a12c bl 0x32e10                                            |     zbx_vector_ptr_create ();
    0x0003a130 mov r0, sl                                            |     r0 = sl;
    0x0003a132 bl 0x32e10                                            |     zbx_vector_ptr_create ();
                                                                     | label_5:
    0x0003a136 movs r1, 0x2c                                         |     r1 = 0x2c;
    0x0003a138 mov r0, r6                                            |     r0 = r6;
    0x0003a13a blx 0xdcd4                                            |     r0 = fcn_0000dcd4 ();
    0x0003a13e cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0003a140 beq.w 0x3a24a                                         |         goto label_6;
                                                                     |     }
    0x0003a144 strb.w sb, [r0]                                       |     *(r0) = sb;
    0x0003a148 str r0, [sp, 0x18]                                    |     var_18h = r0;
                                                                     |     do {
                                                                     | label_3:
    0x0003a14a movs r1, 0x3b                                         |         r1 = 0x3b;
    0x0003a14c mov r0, r6                                            |         r0 = r6;
    0x0003a14e blx 0xdcd4                                            |         r0 = fcn_0000dcd4 ();
    0x0003a152 mov r5, r0                                            |         r5 = r0;
                                                                     |         if (r0 != 0) {
    0x0003a154 cbz r0, 0x3a15a                                       |             
    0x0003a156 strb.w sb, [r0]                                       |             *(r0) = sb;
                                                                     |         }
    0x0003a15a movs r3, 8                                            |         r3 = 8;
    0x0003a15c movs r2, 0                                            |         r2 = 0;
    0x0003a15e movw r1, 0x293                                        |         r1 = 0x293;
    0x0003a162 ldr r0, [sp]                                          |         r0 = *(sp);
    0x0003a164 bl 0x40dd8                                            |         r0 = zbx_malloc2 ();
    0x0003a168 mov r2, r0                                            |         r2 = r0;
    0x0003a16a mov r1, r0                                            |         r1 = r0;
    0x0003a16c mov r4, r0                                            |         r4 = r0;
    0x0003a16e mov r3, fp                                            |         r3 = fp;
    0x0003a170 mov r0, r6                                            |         r0 = r6;
    0x0003a172 str sb, [r2], 4                                       |         *(r2) = sb;
                                                                     |         r2 += 4;
    0x0003a176 bl 0x42e88                                            |         r0 = parse_serveractive_element ();
    0x0003a17a mov r7, r0                                            |         r7 = r0;
                                                                     |         if (r0 != 0) {
    0x0003a17c cbz r0, 0x3a1da                                       |             
    0x0003a17e ldr r1, [pc, 0x110]                                   |             
    0x0003a180 mov r3, r6                                            |             r3 = r6;
    0x0003a182 ldr r2, [sp, 4]                                       |             r2 = var_4h;
    0x0003a184 movs r0, 0                                            |             r0 = 0;
    0x0003a186 add r1, pc                                            |             r1 = 0x7441c;
    0x0003a188 bl 0x44820                                            |             zbx_dsprintf ()
                                                                     | label_2:
    0x0003a18c ldr r3, [sp, 0x1c]                                    |             r3 = var_1ch;
    0x0003a18e str r0, [r3]                                          |             *(r3) = r0;
    0x0003a190 cmp r5, 0                                             |             
                                                                     |             if (r5 != 0) {
    0x0003a192 bne 0x3a20c                                           |                 goto label_7;
                                                                     |             }
    0x0003a194 mov r1, r4                                            |             r1 = r4;
    0x0003a196 mov r0, sl                                            |             r0 = sl;
    0x0003a198 bl 0x32ea0                                            |             zbx_vector_ptr_append ();
    0x0003a19c mov r1, r4                                            |             r1 = r4;
    0x0003a19e mov r0, r8                                            |             r0 = r8;
    0x0003a1a0 bl 0x32ea0                                            |             zbx_vector_ptr_append ();
                                                                     | label_0:
    0x0003a1a4 mov.w r7, -1                                          |             r7 = -1;
                                                                     | label_4:
    0x0003a1a8 mov r0, sl                                            |             r0 = sl;
    0x0003a1aa bl 0x32e70                                            |             zbx_vector_ptr_destroy ();
    0x0003a1ae ldr r1, [pc, 0xe4]                                    |             
    0x0003a1b0 mov r0, r8                                            |             r0 = r8;
    0x0003a1b2 add r1, pc                                            |             r1 = 0x7444c;
    0x0003a1b4 bl 0x33280                                            |             zbx_vector_ptr_clear_ext ();
    0x0003a1b8 mov r0, r8                                            |             r0 = r8;
    0x0003a1ba bl 0x32e70                                            |             zbx_vector_ptr_destroy ();
    0x0003a1be ldr r2, [pc, 0xd8]                                    |             
    0x0003a1c0 ldr r3, [pc, 0xc0]                                    |             r3 = *(0x3a284);
    0x0003a1c2 add r2, pc                                            |             r2 = 0x74460;
    0x0003a1c4 ldr r3, [r2, r3]                                      |             r3 = *(0x74460);
    0x0003a1c6 ldr r2, [r3]                                          |             r2 = *(0x74460);
    0x0003a1c8 ldr r3, [sp, 0x54]                                    |             r3 = var_54h;
    0x0003a1ca eors r2, r3                                           |             r2 ^= r3;
    0x0003a1cc mov.w r3, 0                                           |             r3 = 0;
                                                                     |             if (r2 != r3) {
    0x0003a1d0 bne 0x3a24e                                           |                 goto label_8;
                                                                     |             }
    0x0003a1d2 mov r0, r7                                            |             r0 = r7;
    0x0003a1d4 add sp, 0x5c                                          |             
    0x0003a1d6 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |             
                                                                     |         }
    0x0003a1da ldr r0, [r4]                                          |         r0 = *(r4);
    0x0003a1dc bl 0x413f0                                            |         is_supported_ip ();
    0x0003a1e0 adds r0, 1                                            |         r0++;
                                                                     |         if (r0 == 1) {
    0x0003a1e2 beq 0x3a222                                           |             goto label_9;
                                                                     |         }
                                                                     | label_1:
    0x0003a1e4 ldr r2, [sp, 8]                                       |         r2 = var_8h;
    0x0003a1e6 mov r1, r4                                            |         r1 = r4;
    0x0003a1e8 mov r0, r8                                            |         r0 = r8;
    0x0003a1ea bl 0x33174                                            |         r0 = zbx_vector_ptr_search ();
                                                                     |         if (r0 == 0) {
    0x0003a1ee cbz r0, 0x3a23c                                       |             goto label_10;
                                                                     |         }
                                                                     |         if (r5 == 0) {
    0x0003a1f0 cbz r5, 0x3a252                                       |             goto label_11;
                                                                     |         }
    0x0003a1f2 movs r3, 0x3b                                         |         r3 = 0x3b;
    0x0003a1f4 mov r6, r5                                            |         r6 = r5;
    0x0003a1f6 mov r1, r4                                            |         r1 = r4;
    0x0003a1f8 mov r0, sl                                            |         r0 = sl;
    0x0003a1fa strb r3, [r6], 1                                      |         *(r6) = r3;
                                                                     |         r6++;
    0x0003a1fe bl 0x32ea0                                            |         zbx_vector_ptr_append ();
    0x0003a202 mov r1, r4                                            |         r1 = r4;
    0x0003a204 mov r0, r8                                            |         r0 = r8;
    0x0003a206 bl 0x32ea0                                            |         zbx_vector_ptr_append ();
    0x0003a20a b 0x3a14a                                             |         
                                                                     |     } while (1);
                                                                     | label_7:
    0x0003a20c movs r3, 0x3b                                         |     r3 = 0x3b;
    0x0003a20e mov r1, r4                                            |     r1 = r4;
    0x0003a210 mov r0, sl                                            |     r0 = sl;
    0x0003a212 strb r3, [r5]                                         |     *(r5) = r3;
    0x0003a214 bl 0x32ea0                                            |     zbx_vector_ptr_append ();
    0x0003a218 mov r1, r4                                            |     r1 = r4;
    0x0003a21a mov r0, r8                                            |     r0 = r8;
    0x0003a21c bl 0x32ea0                                            |     zbx_vector_ptr_append ();
    0x0003a220 b 0x3a1a4                                             |     goto label_0;
                                                                     | label_9:
    0x0003a222 ldr r0, [r4]                                          |     r0 = *(r4);
    0x0003a224 bl 0x41424                                            |     zbx_validate_hostname ();
    0x0003a228 adds r0, 1                                            |     r0++;
                                                                     |     if (r0 != 1) {
    0x0003a22a bne 0x3a1e4                                           |         goto label_1;
                                                                     |     }
    0x0003a22c ldr r1, [pc, 0x6c]                                    |     
    0x0003a22e mov r3, r6                                            |     r3 = r6;
    0x0003a230 ldr r2, [sp, 4]                                       |     r2 = var_4h;
    0x0003a232 mov r0, r7                                            |     r0 = r7;
    0x0003a234 add r1, pc                                            |     r1 = 0x744d4;
    0x0003a236 bl 0x44820                                            |     zbx_dsprintf ()
    0x0003a23a b 0x3a18c                                             |     goto label_2;
                                                                     | label_10:
    0x0003a23c ldr r1, [pc, 0x60]                                    |     
    0x0003a23e mov r3, r6                                            |     r3 = r6;
    0x0003a240 ldr r2, [sp, 4]                                       |     r2 = var_4h;
    0x0003a242 add r1, pc                                            |     r1 = 0x744e6;
    0x0003a244 bl 0x44820                                            |     zbx_dsprintf ()
    0x0003a248 b 0x3a18c                                             |     goto label_2;
                                                                     | label_6:
    0x0003a24a str r0, [sp, 0x18]                                    |     var_18h = r0;
    0x0003a24c b 0x3a14a                                             |     goto label_3;
                                                                     | label_8:
    0x0003a24e blx 0xe158                                            |     fcn_0000e158 ();
                                                                     | label_11:
    0x0003a252 mov r1, r4                                            |     r1 = r4;
    0x0003a254 mov r0, sl                                            |     r0 = sl;
    0x0003a256 bl 0x32ea0                                            |     zbx_vector_ptr_append ();
    0x0003a25a mov r1, r4                                            |     r1 = r4;
    0x0003a25c mov r0, r8                                            |     r0 = r8;
    0x0003a25e bl 0x32ea0                                            |     zbx_vector_ptr_append ();
    0x0003a262 ldr r3, [sp, 0xc]                                     |     r3 = var_ch;
    0x0003a264 mov r0, sl                                            |     r0 = sl;
    0x0003a266 ldrd r1, r2, [sp, 0x10]                               |     __asm ("ldrd r1, r2, [var_10h]");
    0x0003a26a blx r3                                                |     uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
    0x0003a26c ldr r3, [sp, 0x18]                                    |     r3 = var_18h;
    0x0003a26e str r5, [sp, 0x40]                                    |     var_40h = r5;
    0x0003a270 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0003a272 beq 0x3a1a8                                           |         goto label_4;
                                                                     |     }
    0x0003a274 mov r6, r3                                            |     r6 = r3;
    0x0003a276 movs r3, 0x2c                                         |     r3 = 0x2c;
    0x0003a278 strb r3, [r6], 1                                      |     *(r6) = r3;
                                                                     |     r6++;
    0x0003a27c b 0x3a136                                             |     goto label_5;
                                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x38cc0 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.zbx_telnet_execute ()                            | void zbx_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_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;
    0x00038cc0 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00038cc4 sub.w sp, sp, 0x10000                             |     
    0x00038cc8 ldr r6, [pc, 0x374]                               |     
    0x00038cca sub sp, 0x34                                      |     
    0x00038ccc add.w r7, sp, 0x10000                             |     r7 += arg_10000h;
    0x00038cd0 mov r8, r0                                        |     r8 = r0;
    0x00038cd2 ldr r5, [pc, 0x370]                               |     r5 = *(0x39046);
    0x00038cd4 adds r7, 0x2c                                     |     r7 += 0x2c;
    0x00038cd6 add r6, pc                                        |     r6 = 0x71d1a;
    0x00038cd8 ldr r4, [pc, 0x36c]                               |     
    0x00038cda ldr r5, [r6, r5]                                  |     
    0x00038cdc add r4, pc                                        |     r4 = 0x71d28;
    0x00038cde ldr r5, [r5]                                      |     r5 = *(0x71d1a);
    0x00038ce0 str r5, [r7]                                      |     *(r7) = r5;
    0x00038ce2 mov.w r5, 0                                       |     r5 = 0;
    0x00038ce6 strd r2, r3, [sp, 0x18]                           |     __asm ("strd r2, r3, [sp, 0x18]");
    0x00038cea ldr r2, [pc, 0x360]                               |     r2 = *(0x3904e);
    0x00038cec mov r3, r4                                        |     r3 = r4;
    0x00038cee mov r5, r1                                        |     r5 = r1;
    0x00038cf0 ldr r3, [r4, r2]                                  |     
    0x00038cf2 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x00038cf4 ldr r3, [r3]                                      |     r3 = *(0x71d28);
    0x00038cf6 cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x00038cf8 bgt.w 0x38fa2                                     |         goto label_15;
                                                                 |     }
                                                                 | label_8:
    0x00038cfc ldr r4, [pc, 0x350]                               |     
    0x00038cfe mov r0, r5                                        |     r0 = r5;
    0x00038d00 add r6, sp, 0x30                                  |     r6 += var_30h;
    0x00038d02 blx 0xdf68                                        |     fcn_0000df68 ();
    0x00038d06 add r4, pc                                        |     r4 = 0x71d5a;
    0x00038d08 add.w sb, r0, 1                                   |     sb = r0 + 1;
    0x00038d0c mov r7, r6                                        |     r7 = r6;
    0x00038d0e mov r3, sb                                        |     r3 = sb;
    0x00038d10 str r0, [r7, -0x8]!                               |     *((r7 -= 0x8)) = r0;
    0x00038d14 movs r2, 0                                        |     r2 = 0;
    0x00038d16 mov.w r1, 0x1bc                                   |     r1 = 0x1bc;
    0x00038d1a mov r0, r4                                        |     r0 = r4;
    0x00038d1c bl 0x40dd8                                        |     zbx_malloc2 ();
    0x00038d20 mov r2, sb                                        |     r2 = sb;
    0x00038d22 mov r1, r5                                        |     r1 = r5;
    0x00038d24 mov sb, r0                                        |     sb = r0;
    0x00038d26 str r0, [sp, 0x10]                                |     var_10h = r0;
    0x00038d28 bl 0x4465c                                        |     zbx_strlcpy ();
    0x00038d2c mov r0, sb                                        |     r0 = sb;
    0x00038d2e mov r1, r7                                        |     r1 = r7;
    0x00038d30 bl 0x382e0                                        |     fcn_000382e0 (r0, r1);
    0x00038d34 mov r0, r4                                        |     r0 = r4;
    0x00038d36 ldr r4, [r6, -0x8]                                |     r4 = *((r6 - 0x8));
    0x00038d3a movs r2, 0                                        |     r2 = 0;
    0x00038d3c movw r1, 0x1c1                                    |     r1 = 0x1c1;
    0x00038d40 mov r5, sb                                        |     r5 = sb;
    0x00038d42 str r4, [sp, 0x14]                                |     var_14h = r4;
    0x00038d44 lsls r3, r4, 1                                    |     r3 = r4 << 1;
    0x00038d46 adds r3, 1                                        |     r3++;
    0x00038d48 bl 0x40dd8                                        |     r0 = zbx_malloc2 ();
    0x00038d4c mov sb, r0                                        |     sb = r0;
    0x00038d4e cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x00038d50 beq.w 0x39002                                     |         goto label_16;
                                                                 |     }
    0x00038d54 subs r4, 1                                        |     r4--;
    0x00038d56 subs r3, r5, 1                                    |     r3 = r5 - 1;
    0x00038d58 add r4, r5                                        |     r4 += r5;
    0x00038d5a movs r2, 0                                        |     r2 = 0;
    0x00038d5c movw r5, 0xa0d                                    |     r5 = 0xa0d;
                                                                 |     do {
    0x00038d60 ldrb r1, [r3, 1]!                                 |         r1 = *((r3 += 1));
    0x00038d64 add.w r0, sb, r2                                  |         r0 = sb + r2;
    0x00038d68 cmp r1, 0xa                                       |         
    0x00038d6a itete ne                                          |         
                                                                 |         if (r1 == 0xa) {
    0x00038d6c addne r2, 1                                       |             r2++;
                                                                 |         }
                                                                 |         if (r1 != 0xa) {
    0x00038d6e addeq r2, 2                                       |             r2 += 2;
                                                                 |         }
                                                                 |         if (r1 == 0xa) {
    0x00038d70 strbne r1, [r0]                                   |             *(r0) = r1;
                                                                 |         }
                                                                 |         if (r1 == 0xa) {
    0x00038d72 strheq r5, [r0]                                   |             __asm ("strheq r5, [r0]");
                                                                 |         }
    0x00038d74 cmp r3, r4                                        |         
    0x00038d76 bne 0x38d60                                       |         
                                                                 |     } while (r3 != r4);
                                                                 | label_13:
    0x00038d78 mov r1, sb                                        |     r1 = sb;
    0x00038d7a mov r0, r8                                        |     r0 = r8;
    0x00038d7c bl 0x38554                                        |     fcn_00038554 (r0, r1, r2);
    0x00038d80 ldr.w fp, [pc, 0x2d0]                             |     
    0x00038d84 movs r2, 2                                        |     r2 = 2;
    0x00038d86 ldr r1, [pc, 0x2d0]                               |     
    0x00038d88 mov r0, r8                                        |     r0 = r8;
    0x00038d8a add r7, sp, 0x24                                  |     r7 += var_24h;
    0x00038d8c add.w sl, sp, 0x20                                |     sl += var_20h;
    0x00038d90 add fp, pc                                        |     fp = 0x71de8;
    0x00038d92 add r4, sp, 0x2c                                  |     r4 += var_2ch;
    0x00038d94 add r1, pc                                        |     r1 = 0x71df2;
    0x00038d96 bl 0x38554                                        |     fcn_00038554 (r0, r1, r2);
    0x00038d9a mov.w r2, 0x10000                                 |     r2 = 0x10000;
    0x00038d9e movs r3, 0                                        |     r3 = 0;
    0x00038da0 strd r2, r3, [r6, -0x10]                          |     __asm ("strd r2, r3, [r6, -0x10]");
                                                                 | label_0:
    0x00038da4 mov r3, r7                                        |     r3 = r7;
    0x00038da6 mov r2, sl                                        |     r2 = sl;
    0x00038da8 mov r1, r4                                        |     r1 = r4;
    0x00038daa mov r0, r8                                        |     r0 = r8;
    0x00038dac bl 0x38630                                        |     r0 = fcn_00038630 (r0, r1, r2, r3, r4, r5);
    0x00038db0 adds r3, r0, 1                                    |     r3 = r0 + 1;
                                                                 |     if (r3 == r0) {
    0x00038db2 beq.w 0x38f00                                     |         goto label_17;
                                                                 |     }
    0x00038db6 ldr r3, [r6, -0xc]                                |     r3 = *((r6 - 0xc));
    0x00038dba add r3, r4                                        |     r3 += r4;
    0x00038dbc b 0x38dc6                                         |     
                                                                 |     while (r3 != r4) {
    0x00038dbe ldrb r2, [r3, -0x1]!                              |         r2 = *((r3 -= 0x1));
    0x00038dc2 cmp r2, 0x20                                      |         
                                                                 |         if (r2 != 0x20) {
    0x00038dc4 bne 0x38dcc                                       |             goto label_18;
                                                                 |         }
    0x00038dc6 cmp r3, r4                                        |         
    0x00038dc8 bne 0x38dbe                                       |         
                                                                 |     }
    0x00038dca movs r2, 0                                        |     r2 = 0;
                                                                 | label_18:
    0x00038dcc ldrb.w r3, [fp]                                   |     r3 = *(fp);
    0x00038dd0 cmp r3, r2                                        |     
                                                                 |     if (r3 != r2) {
    0x00038dd2 bne 0x38da4                                       |         goto label_0;
                                                                 |     }
    0x00038dd4 mov r1, r7                                        |     r1 = r7;
    0x00038dd6 mov r0, r4                                        |     r0 = r4;
    0x00038dd8 bl 0x382e0                                        |     fcn_000382e0 (r0, r1);
    0x00038ddc ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x00038dde ldr r3, [r3]                                      |     r3 = *(r3);
    0x00038de0 cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x00038de2 bgt.w 0x39022                                     |         goto label_19;
                                                                 |     }
                                                                 | label_14:
    0x00038de6 ldr r7, [sp, 0x14]                                |     r7 = var_14h;
    0x00038de8 mov r0, r4                                        |     r0 = r4;
    0x00038dea ldr r1, [sp, 0x10]                                |     r1 = var_10h;
    0x00038dec mov r2, r7                                        |     r2 = r7;
    0x00038dee blx 0xdbec                                        |     sysconf ();
    0x00038df2 ldr r5, [r6, -0xc]                                |     r5 = *((r6 - 0xc));
                                                                 |     if (r0 == 0) {
    0x00038df6 cbnz r0, 0x38e0c                                  |         
    0x00038df8 subs r5, r5, r7                                   |         r5 -= r7;
    0x00038dfa mov.w r3, 0x10000                                 |         r3 = 0x10000;
    0x00038dfe mov r2, r5                                        |         r2 = r5;
    0x00038e00 adds r1, r4, r7                                   |         r1 = r4 + r7;
    0x00038e02 mov r0, r4                                        |         r0 = r4;
    0x00038e04 str r5, [r6, -0xc]                                |         *((r6 - 0xc)) = r5;
    0x00038e08 blx 0xe31c                                        |         fcn_0000e31c ();
                                                                 |     }
    0x00038e0c ldr r3, [sp, 0x14]                                |     r3 = var_14h;
                                                                 |     if (r3 == 0) {
    0x00038e0e cbz r3, 0x38e52                                   |         goto label_12;
                                                                 |     }
    0x00038e10 subs r7, r3, 1                                    |     r7 = r3 - 1;
    0x00038e12 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x00038e14 movw fp, 0x2024                                   |     fp = 0x2024;
    0x00038e18 sub.w sl, r6, 2                                   |     sl = r6 - 2;
    0x00038e1c add.w r8, r3, r7                                  |     r8 = r3 + r7;
    0x00038e20 subs r7, r3, 1                                    |     r7 = r3 - 1;
    0x00038e22 b 0x38e28                                         |     
                                                                 |     while (r3 != 0xa) {
                                                                 | label_4:
    0x00038e24 cmp r7, r8                                        |         
                                                                 |         if (r7 == r8) {
    0x00038e26 beq 0x38e52                                       |             goto label_12;
                                                                 |         }
                                                                 | label_1:
    0x00038e28 ldrb r3, [r7, 1]!                                 |         r3 = *((r7 += 1));
    0x00038e2c cmp r3, 0xa                                       |         
    0x00038e2e bne 0x38e24                                       |         
                                                                 |     }
    0x00038e30 ldrh r3, [r6, -0x4]                               |     r3 = *((r6 - 0x4));
    0x00038e34 cmp r3, fp                                        |     
                                                                 |     if (r3 != fp) {
    0x00038e36 bne.w 0x38f52                                     |         goto label_20;
                                                                 |     }
                                                                 | label_3:
    0x00038e3a subs r5, 2                                        |     r5 -= 2;
    0x00038e3c mov.w r3, 0x10000                                 |     r3 = 0x10000;
    0x00038e40 mov r2, r5                                        |     r2 = r5;
    0x00038e42 mov r1, sl                                        |     r1 = sl;
    0x00038e44 mov r0, r4                                        |     r0 = r4;
    0x00038e46 str r5, [r6, -0xc]                                |     *((r6 - 0xc)) = r5;
    0x00038e4a blx 0xe31c                                        |     fcn_0000e31c ();
    0x00038e4e cmp r7, r8                                        |     
                                                                 |     if (r7 != r8) {
    0x00038e50 bne 0x38e28                                       |         goto label_1;
                                                                 |     }
                                                                 | label_12:
    0x00038e52 ldrb r3, [r6, -0x4]                               |     r3 = *((r6 - 0x4));
    0x00038e56 cmp r3, 0xa                                       |     
                                                                 |     if (r3 == 0xa) {
    0x00038e58 bne 0x38e6e                                       |         
    0x00038e5a subs r5, 1                                        |         r5--;
    0x00038e5c mov.w r3, 0x10000                                 |         r3 = 0x10000;
    0x00038e60 mov r2, r5                                        |         r2 = r5;
    0x00038e62 subs r1, r6, 3                                    |         r1 = r6 - 3;
    0x00038e64 mov r0, r4                                        |         r0 = r4;
    0x00038e66 str r5, [r6, -0xc]                                |         *((r6 - 0xc)) = r5;
    0x00038e6a blx 0xe31c                                        |         fcn_0000e31c ();
                                                                 |     }
    0x00038e6e ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x00038e70 ldr r7, [r3]                                      |     r7 = *(r3);
    0x00038e72 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00038e74 beq.w 0x39006                                     |         goto label_21;
                                                                 |     }
    0x00038e78 ldr r3, [pc, 0x1e0]                               |     
    0x00038e7a movs r1, 0                                        |     r1 = 0;
    0x00038e7c add r3, pc                                        |     r3 = 0x71edc;
    0x00038e7e ldrb r0, [r3]                                     |     r0 = *(r3);
    0x00038e80 adds r3, r4, r5                                   |     r3 = r4 + r5;
                                                                 |     do {
                                                                 | label_5:
    0x00038e82 ldrb r2, [r3, -0x1]!                              |         r2 = *((r3 -= 0x1));
    0x00038e86 subs r5, 1                                        |         r5--;
    0x00038e88 cmp r1, 0                                         |         
                                                                 |         if (r1 != 0) {
    0x00038e8a bne 0x38f7a                                       |             goto label_22;
                                                                 |         }
    0x00038e8c cmp r0, r2                                        |         
                                                                 |         if (r0 == r2) {
    0x00038e8e beq 0x38f7a                                       |             goto label_22;
                                                                 |         }
    0x00038e90 cmp r5, 0                                         |         
    0x00038e92 bne 0x38e82                                       |         
                                                                 |     } while (r5 != 0);
                                                                 | label_6:
    0x00038e94 cmp r7, 3                                         |     
    0x00038e96 str r5, [r6, -0xc]                                |     *((r6 - 0xc)) = r5;
                                                                 |     if (r7 > 3) {
    0x00038e9a bgt.w 0x38fcc                                     |         goto label_23;
                                                                 |     }
                                                                 | label_10:
    0x00038e9e movs r5, 0                                        |     r5 = 0;
                                                                 | label_9:
    0x00038ea0 mov r0, r4                                        |     r0 = r4;
    0x00038ea2 ldr r4, [sp, 0x18]                                |     r4 = var_18h;
    0x00038ea4 add r6, r5                                        |     r6 += r5;
    0x00038ea6 mov r1, r5                                        |     r1 = r5;
    0x00038ea8 ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x00038eaa movs r5, 0                                        |     r5 = 0;
    0x00038eac ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x00038eae strb r5, [r6, -0x4]                               |     *((r6 - 0x4)) = r5;
    0x00038eb2 orr r3, r3, 4                                     |     r3 |= 4;
    0x00038eb6 str r3, [r4, 0x28]                                |     *((r4 + 0x28)) = r3;
    0x00038eb8 bl 0x4587c                                        |     convert_to_utf8 ();
    0x00038ebc str r0, [r4, 0x18]                                |     *((r4 + 0x18)) = r0;
                                                                 | label_2:
    0x00038ebe ldr r0, [sp, 0x10]                                |     r0 = var_10h;
    0x00038ec0 blx 0xde30                                        |     fcn_0000de30 ();
                                                                 |     do {
    0x00038ec4 cmp.w sb, 0                                       |         
                                                                 |         if (sb != 0) {
    0x00038ec8 beq 0x38ed0                                       |             
    0x00038eca mov r0, sb                                        |             r0 = sb;
    0x00038ecc blx 0xde30                                        |             fcn_0000de30 ();
                                                                 |         }
    0x00038ed0 ldr r3, [sp, 0xc]                                 |         r3 = var_ch;
    0x00038ed2 ldr r3, [r3]                                      |         r3 = *(r3);
    0x00038ed4 cmp r3, 3                                         |         
                                                                 |         if (r3 > 3) {
    0x00038ed6 bgt 0x38f88                                       |             goto label_24;
                                                                 |         }
                                                                 | label_7:
    0x00038ed8 ldr r2, [pc, 0x184]                               |         
    0x00038eda add.w r1, sp, 0x10000                             |         r1 += arg_10000h;
    0x00038ede ldr r3, [pc, 0x164]                               |         r3 = *(0x39046);
    0x00038ee0 adds r1, 0x2c                                     |         r1 += 0x2c;
    0x00038ee2 add r2, pc                                        |         r2 = 0x71f46;
    0x00038ee4 ldr r3, [r2, r3]                                  |         r3 = *(0x71f46);
    0x00038ee6 ldr r2, [r3]                                      |         r2 = *(0x71f46);
    0x00038ee8 ldr r3, [r1]                                      |         r3 = *(r1);
    0x00038eea eors r2, r3                                       |         r2 ^= r3;
    0x00038eec mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00038ef0 bne.w 0x3903a                                     |             goto label_25;
                                                                 |         }
    0x00038ef4 mov r0, r5                                        |         r0 = r5;
    0x00038ef6 add.w sp, sp, 0x10000                             |         
    0x00038efa add sp, 0x34                                      |         
    0x00038efc pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_17:
    0x00038f00 mov r5, r0                                        |         r5 = r0;
    0x00038f02 mov r1, r7                                        |         r1 = r7;
    0x00038f04 mov r0, r4                                        |         r0 = r4;
    0x00038f06 bl 0x382e0                                        |         fcn_000382e0 (r0, r1);
    0x00038f0a ldr r3, [sp, 0xc]                                 |         r3 = var_ch;
    0x00038f0c ldr r3, [r3]                                      |         r3 = *(r3);
    0x00038f0e cmp r3, 3                                         |         
                                                                 |         if (r3 > 3) {
    0x00038f10 ble 0x38f28                                       |             
    0x00038f12 ldr r2, [pc, 0x150]                               |             
    0x00038f14 movs r0, 4                                        |             r0 = 4;
    0x00038f16 ldr r1, [pc, 0x150]                               |             
    0x00038f18 str r4, [sp]                                      |             *(sp) = r4;
    0x00038f1a add r2, pc                                        |             r2 = 0x71f84;
    0x00038f1c ldr r3, [r6, -0xc]                                |             r3 = *((r6 - 0xc));
    0x00038f20 adds r2, 0x74                                     |             r2 += 0x74;
    0x00038f22 add r1, pc                                        |             r1 = 0x71f90;
    0x00038f24 bl 0x30d1c                                        |             zbx_zabbix_log ();
                                                                 |         }
    0x00038f28 ldr r4, [sp, 0x18]                                |         r4 = var_18h;
    0x00038f2a ldr r3, [r4, 0x28]                                |         r3 = *((r4 + 0x28));
    0x00038f2c orr r3, r3, 0x20                                  |         r3 |= 0x20;
    0x00038f30 str r3, [r4, 0x28]                                |         *((r4 + 0x28)) = r3;
    0x00038f32 blx 0xe3d4                                        |         r0 = fcn_0000e3d4 ();
    0x00038f36 ldr r0, [r0]                                      |         r0 = *(r0);
    0x00038f38 bl 0x31154                                        |         strerror_from_system ();
    0x00038f3c ldr r1, [pc, 0x12c]                               |         
    0x00038f3e mov r2, r0                                        |         r2 = r0;
    0x00038f40 movs r0, 0                                        |         r0 = 0;
    0x00038f42 add r1, pc                                        |         r1 = 0x71fb2;
    0x00038f44 bl 0x44820                                        |         zbx_dsprintf ()
    0x00038f48 ldr r3, [sp, 0x10]                                |         r3 = var_10h;
    0x00038f4a str r0, [r4, 0x20]                                |         *((r4 + 0x20)) = r0;
    0x00038f4c cmp r3, 0                                         |         
    0x00038f4e beq 0x38ec4                                       |         
                                                                 |     } while (r3 == 0);
    0x00038f50 b 0x38ebe                                         |     goto label_2;
                                                                 | label_20:
    0x00038f52 movw r2, 0x2023                                   |     r2 = 0x2023;
    0x00038f56 cmp r3, r2                                        |     
                                                                 |     if (r3 == r2) {
    0x00038f58 beq.w 0x38e3a                                     |         goto label_3;
                                                                 |     }
    0x00038f5c movw r2, 0x203e                                   |     r2 = 0x203e;
    0x00038f60 cmp r3, r2                                        |     
                                                                 |     if (r3 != r2) {
    0x00038f62 bne 0x38ff8                                       |         goto label_26;
                                                                 |     }
                                                                 | label_11:
    0x00038f64 subs r5, 2                                        |     r5 -= 2;
    0x00038f66 mov.w r3, 0x10000                                 |     r3 = 0x10000;
    0x00038f6a mov r2, r5                                        |     r2 = r5;
    0x00038f6c subs r1, r6, 2                                    |     r1 = r6 - 2;
    0x00038f6e mov r0, r4                                        |     r0 = r4;
    0x00038f70 str r5, [r6, -0xc]                                |     *((r6 - 0xc)) = r5;
    0x00038f74 blx 0xe31c                                        |     fcn_0000e31c ();
    0x00038f78 b 0x38e24                                         |     goto label_4;
                                                                 | label_22:
    0x00038f7a cmp r2, 0xa                                       |     
                                                                 |     if (r2 == 0xa) {
    0x00038f7c beq 0x38fb4                                       |         goto label_27;
                                                                 |     }
    0x00038f7e movs r1, 1                                        |     r1 = 1;
    0x00038f80 cmp r5, 0                                         |     
                                                                 |     if (r5 != 0) {
    0x00038f82 bne.w 0x38e82                                     |         goto label_5;
                                                                 |     }
    0x00038f86 b 0x38e94                                         |     goto label_6;
                                                                 | label_24:
    0x00038f88 mov r0, r5                                        |     r0 = r5;
    0x00038f8a bl 0x45514                                        |     zbx_result_string ();
    0x00038f8e ldr r2, [pc, 0xe0]                                |     
    0x00038f90 mov r3, r0                                        |     r3 = r0;
    0x00038f92 ldr r1, [pc, 0xe0]                                |     
    0x00038f94 movs r0, 4                                        |     r0 = 4;
    0x00038f96 add r2, pc                                        |     r2 = 0x7200c;
    0x00038f98 add r1, pc                                        |     r1 = 0x72012;
    0x00038f9a adds r2, 0x74                                     |     r2 += 0x74;
    0x00038f9c bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x00038fa0 b 0x38ed8                                         |     goto label_7;
                                                                 | label_15:
    0x00038fa2 ldr r2, [pc, 0xd4]                                |     
    0x00038fa4 movs r0, 4                                        |     r0 = 4;
    0x00038fa6 ldr r1, [pc, 0xd4]                                |     
    0x00038fa8 add r2, pc                                        |     r2 = 0x72026;
    0x00038faa adds r2, 0x74                                     |     r2 += 0x74;
    0x00038fac add r1, pc                                        |     r1 = 0x7202e;
    0x00038fae bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x00038fb2 b 0x38cfc                                         |     goto label_8;
                                                                 | label_27:
    0x00038fb4 cmp r7, 3                                         |     
    0x00038fb6 str r5, [r6, -0xc]                                |     *((r6 - 0xc)) = r5;
                                                                 |     if (r7 <= 3) {
    0x00038fba bgt 0x38fe2                                       |         
    0x00038fbc cmp.w r5, 0x10000                                 |         
    0x00038fc0 itt eq                                            |         
                                                                 |         if (r5 == 0x10000) {
    0x00038fc2 movweq r5, 0xffff                                 |             __asm ("movweq r5, 0xffff");
                                                                 |         }
                                                                 |         if (r5 == 0x10000) {
    0x00038fc6 str r5, [r6, -0xc]                                |             *((r6 - 0xc)) = r5;
                                                                 |         }
    0x00038fca b 0x38ea0                                         |         goto label_9;
                                                                 | label_23:
    0x00038fcc ldr r2, [pc, 0xb0]                                |         
    0x00038fce mov r3, r5                                        |         r3 = r5;
    0x00038fd0 ldr r1, [pc, 0xb0]                                |         
    0x00038fd2 movs r0, 4                                        |         r0 = 4;
    0x00038fd4 str r4, [sp]                                      |         *(sp) = r4;
    0x00038fd6 add r2, pc                                        |         r2 = 0x7205a;
    0x00038fd8 adds r2, 0x74                                     |         r2 += 0x74;
    0x00038fda add r1, pc                                        |         r1 = 0x72062;
    0x00038fdc bl 0x30d1c                                        |         zbx_zabbix_log ();
    0x00038fe0 b 0x38e9e                                         |         goto label_10;
                                                                 |     }
    0x00038fe2 ldr r2, [pc, 0xa4]                                |     
    0x00038fe4 mov r3, r5                                        |     r3 = r5;
    0x00038fe6 ldr r1, [pc, 0xa4]                                |     
    0x00038fe8 movs r0, 4                                        |     r0 = 4;
    0x00038fea str r4, [sp]                                      |     *(sp) = r4;
    0x00038fec add r2, pc                                        |     r2 = 0x7207a;
    0x00038fee adds r2, 0x74                                     |     r2 += 0x74;
    0x00038ff0 add r1, pc                                        |     r1 = 0x72082;
    0x00038ff2 bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x00038ff4 cdp2 p7, 9, c14, c3, c1, 7                        |     __asm ("cdp2 p7, 9, c14, c3, c1, 7");
                                                                 | label_26:
    0x00038ff8 movw r2, 0x2025                                   |     r2 = 0x2025;
    0x00038ffc cmp r3, r2                                        |     
                                                                 |     if (r3 == r2) {
    0x00038ffe beq 0x38f64                                       |         goto label_11;
                                                                 |     }
    0x00039000 b 0x38e52                                         |     goto label_12;
                                                                 | label_16:
    0x00039002 ldr r2, [sp, 0x14]                                |     r2 = var_14h;
    0x00039004 b 0x38d78                                         |     goto label_13;
                                                                 | label_21:
    0x00039006 cmp r7, 3                                         |     
                                                                 |     if (r7 <= 3) {
    0x00039008 ble.w 0x38e9e                                     |         goto label_10;
                                                                 |     }
    0x0003900c ldr r2, [pc, 0x80]                                |     
    0x0003900e mov r3, r5                                        |     r3 = r5;
    0x00039010 ldr r1, [pc, 0x80]                                |     
    0x00039012 movs r0, 4                                        |     r0 = 4;
    0x00039014 str r4, [sp]                                      |     *(sp) = r4;
    0x00039016 add r2, pc                                        |     r2 = 0x720aa;
    0x00039018 adds r2, 0x74                                     |     r2 += 0x74;
    0x0003901a add r1, pc                                        |     r1 = 0x720b2;
    0x0003901c bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x00039020 b 0x38e9e                                         |     goto label_10;
                                                                 | label_19:
    0x00039022 ldr r2, [pc, 0x74]                                |     
    0x00039024 movs r0, 4                                        |     r0 = 4;
    0x00039026 ldr r1, [pc, 0x74]                                |     
    0x00039028 str r4, [sp]                                      |     *(sp) = r4;
    0x0003902a add r2, pc                                        |     r2 = 0x720c8;
    0x0003902c ldr r3, [r6, -0xc]                                |     r3 = *((r6 - 0xc));
    0x00039030 adds r2, 0x74                                     |     r2 += 0x74;
    0x00039032 add r1, pc                                        |     r1 = 0x720d4;
    0x00039034 bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x00039038 b 0x38de6                                         |     goto label_14;
                                                                 | label_25:
    0x0003903a blx 0xe158                                        |     fcn_0000e158 ();
    0x0003903e nop                                               |     
    0x00039040 cmp r7, 2                                         |     
    0x00039042 movs r2, r0                                       |     r2 = r0;
    0x00039044 lsls r4, r2, 0xe                                  |     r4 = r2 << 0xe;
    0x00039046 movs r0, r0                                       |     
    0x00039048 cmp r6, 0xfc                                      |     
    0x0003904a movs r2, r0                                       |     r2 = r0;
    0x0003904c lsls r4, r7, 0xe                                  |     r4 = r7 << 0xe;
    0x0003904e movs r0, r0                                       |     
                                                                 |     if (r0 == r0) {
    0x00039050 beq 0x39130                                       |         void (*0x39130)() ();
                                                                 |     }
    0x00039052 movs r1, r0                                       |     r1 = r0;
    0x00039054 strb r4, [r4, r5]                                 |     *((r4 + r5)) = r4;
    0x00039056 movs r2, r0                                       |     r2 = r0;
    0x00039058 stcl p0, c0, [r8, 4]                              |     __asm ("stcl p0, c0, [r8, 4]");
    0x0003905c strb r0, [r7, r1]                                 |     *((r7 + r1)) = r0;
    0x0003905e movs r2, r0                                       |     r2 = r0;
    0x00039060 cmp r4, 0xf6                                      |     
    0x00039062 movs r2, r0                                       |     r2 = r0;
    0x00039064 ldm r7!, {r1, r3, r5}                             |     r1 = *(r7!);
                                                                 |     r3 = *((r7! + 4));
                                                                 |     r5 = *((r7! + 8));
    0x00039066 movs r1, r0                                       |     r1 = r0;
    0x00039068 ldm r6!, {r1, r4, r5, r7}                         |     r1 = *(r6!);
                                                                 |     r4 = *((r6! + 4));
                                                                 |     r5 = *((r6! + 8));
                                                                 |     r7 = *((r6! + 12));
    0x0003906a movs r1, r0                                       |     r1 = r0;
    0x0003906c ldm r6!, {r1, r2, r3, r5, r7}                     |     r1 = *(r6!);
                                                                 |     r2 = *((r6! + 4));
                                                                 |     r3 = *((r6! + 8));
                                                                 |     r5 = *((r6! + 12));
                                                                 |     r7 = *((r6! + 16));
    0x0003906e movs r1, r0                                       |     r1 = r0;
    0x00039070 ldm r6!, {r1, r2, r3, r5, r7}                     |     r1 = *(r6!);
                                                                 |     r2 = *((r6! + 4));
                                                                 |     r3 = *((r6! + 8));
                                                                 |     r5 = *((r6! + 12));
                                                                 |     r7 = *((r6! + 16));
    0x00039072 movs r1, r0                                       |     r1 = r0;
    0x00039074 ldr r7, [pc, 0x2a0]                               |     r7 = *(0x39318);
    0x00039076 movs r1, r0                                       |     r1 = r0;
    0x00039078 ldm r6!, {r2, r3, r4, r7}                         |     r2 = *(r6!);
                                                                 |     r3 = *((r6! + 4));
                                                                 |     r4 = *((r6! + 8));
                                                                 |     r7 = *((r6! + 12));
    0x0003907a movs r1, r0                                       |     r1 = r0;
    0x0003907c ldr r3, [pc, 0x260]                               |     r3 = *(0x392e0);
    0x0003907e movs r1, r0                                       |     r1 = r0;
    0x00039080 ldm r6, {r1, r2, r3, r5, r6}                      |     r1 = *(r6);
                                                                 |     r2 = *((r6 + 4));
                                                                 |     r3 = *((r6 + 8));
                                                                 |     r5 = *((r6 + 12));
                                                                 |     r6 = *((r6 + 16));
    0x00039082 movs r1, r0                                       |     r1 = r0;
    0x00039084 ldm r6, {r1, r2, r6}                              |     r1 = *(r6);
                                                                 |     r2 = *((r6 + 4));
                                                                 |     r6 = *((r6 + 8));
    0x00039086 movs r1, r0                                       |     r1 = r0;
    0x00039088 ldm r6, {r3, r4, r6}                              |     r3 = *(r6);
                                                                 |     r4 = *((r6 + 4));
                                                                 |     r6 = *((r6 + 8));
    0x0003908a movs r1, r0                                       |     r1 = r0;
    0x0003908c ldm r6!, {r4, r5}                                 |     r4 = *(r6!);
                                                                 |     r5 = *((r6! + 4));
    0x0003908e movs r1, r0                                       |     r1 = r0;
    0x00039090 ldm r6!, {r1, r2, r3, r5}                         |     r1 = *(r6!);
                                                                 |     r2 = *((r6! + 4));
                                                                 |     r3 = *((r6! + 8));
                                                                 |     r5 = *((r6! + 12));
    0x00039092 movs r1, r0                                       |     r1 = r0;
    0x00039094 ldm r6!, {r1, r2}                                 |     r1 = *(r6!);
                                                                 |     r2 = *((r6! + 4));
    0x00039096 movs r1, r0                                       |     r1 = r0;
    0x00039098 ldm r6!, {r1, r3, r4}                             |     r1 = *(r6!);
                                                                 |     r3 = *((r6! + 4));
                                                                 |     r4 = *((r6! + 8));
    0x0003909a movs r1, r0                                       |     r1 = r0;
    0x0003909c ldm r5, {r1, r5, r7}                              |     r1 = *(r5);
                                                                 |     r5 = *((r5 + 4));
                                                                 |     r7 = *((r5 + 8));
    0x0003909e movs r1, r0                                       |     r1 = r0;
                                                                 | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x465e4 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.zbx_user_macro_quote_context_dyn ()      | void zbx_user_macro_quote_context_dyn (int16_t arg1, int16_t arg3) {
                                                         |     r0 = arg1;
                                                         |     r2 = arg3;
    0x000465e4 push.w {r4, r5, r6, r7, r8, lr}           |     
    0x000465e8 mov r6, r2                                |     r6 = r2;
    0x000465ea ldrb r3, [r0]                             |     r3 = *(r0);
    0x000465ec mov r5, r0                                |     r5 = r0;
    0x000465ee and r2, r3, 0xfd                          |     r2 = r3 & 0xfd;
    0x000465f2 cmp r2, 0x20                              |     
                                                         |     if (r2 == 0x20) {
    0x000465f4 beq 0x4666a                               |         goto label_2;
                                                         |     }
    0x000465f6 cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x000465f8 beq 0x46682                               |         goto label_3;
                                                         |     }
                                                         | label_0:
    0x000465fa mov r4, r5                                |     r4 = r5;
    0x000465fc movs r7, 0                                |     r7 = 0;
                                                         |     do {
    0x000465fe cmp r3, 0x7d                              |         
    0x00046600 it eq                                     |         
                                                         |         if (r3 != 0x7d) {
    0x00046602 moveq r1, 1                               |             r1 = 1;
                                                         |         }
                                                         |         if (r3 != 0x7d) {
    0x00046604 beq 0x4660c                               |             
    0x00046606 cmp r3, 0x22                              |             
    0x00046608 it eq                                     |             
                                                         |             if (r3 == 0x22) {
    0x0004660a addeq r7, 1                               |                 r7++;
                                                         |                 goto label_4;
                                                         |             }
                                                         |         }
                                                         | label_4:
    0x0004660c ldrb r3, [r4, 1]!                         |         r3 = *((r4 += 1));
    0x00046610 cmp r3, 0                                 |         
    0x00046612 bne 0x465fe                               |         
                                                         |     } while (r3 != 0);
                                                         |     if (r1 == 0) {
                                                         | label_1:
    0x00046614 cbz r1, 0x4666e                           |         goto label_5;
                                                         |     }
    0x00046616 mov r0, r5                                |     r0 = r5;
    0x00046618 blx 0xdf68                                |     r0 = fcn_0000df68 ();
    0x0004661c adds r3, r7, r0                           |     r3 = r7 + r0;
    0x0004661e ldr r0, [pc, 0x80]                        |     
    0x00046620 adds r3, 3                                |     r3 += 3;
    0x00046622 movw r1, 0xb12                            |     r1 = 0xb12;
    0x00046626 movs r2, 0                                |     r2 = 0;
    0x00046628 add r0, pc                                |     r0 = 0x8ccce;
    0x0004662a bl 0x40dd8                                |     zbx_malloc2 ();
    0x0004662e movs r3, 0x22                             |     r3 = 0x22;
    0x00046630 mov r1, r0                                |     r1 = r0;
    0x00046632 strb r3, [r1], 1                          |     *(r1) = r3;
                                                         |     r1++;
    0x00046636 mov r7, r0                                |     r7 = r0;
    0x00046638 ldrb r4, [r5]                             |     r4 = *(r5);
                                                         |     if (r4 == 0) {
    0x0004663a cbz r4, 0x46660                           |         goto label_6;
                                                         |     }
    0x0004663c mov ip, r5                                |     
    0x0004663e movs r2, 0x5c                             |     r2 = 0x5c;
                                                         |     do {
    0x00046640 cmp r4, 0x22                              |         
    0x00046642 mov r4, r1                                |         r4 = r1;
    0x00046644 it eq                                     |         
                                                         |         if (r4 != 0x22) {
    0x00046646 strbeq r2, [r4], 1                        |             *(r4) = r2;
                                                         |             r4++;
                                                         |         }
    0x0004664a mov r1, r4                                |         r1 = r4;
    0x0004664c ldrb r3, [ip], 1                          |         r3 = *(ip);
                                                         |         ip++;
    0x00046650 strb r3, [r1], 1                          |         *(r1) = r3;
                                                         |         r1++;
    0x00046654 ldrb.w r4, [ip]                           |         r4 = *(ip);
    0x00046658 cmp r4, 0                                 |         
    0x0004665a bne 0x46640                               |         
                                                         |     } while (r4 != 0);
    0x0004665c cmp r3, 0x5c                              |     
                                                         |     if (r3 == 0x5c) {
    0x0004665e beq 0x46686                               |         goto label_7;
                                                         |     }
                                                         | label_6:
    0x00046660 movs r3, 0x22                             |     r3 = 0x22;
    0x00046662 strh r3, [r1]                             |     *(r1) = r3;
                                                         |     do {
    0x00046664 mov r0, r7                                |         r0 = r7;
    0x00046666 pop.w {r4, r5, r6, r7, r8, pc}            |         
                                                         | label_2:
    0x0004666a movs r1, 1                                |         r1 = 1;
    0x0004666c b 0x465fa                                 |         goto label_0;
                                                         | label_5:
    0x0004666e ldr r0, [pc, 0x34]                        |         
    0x00046670 mov r3, r5                                |         r3 = r5;
    0x00046672 mov r2, r1                                |         r2 = r1;
    0x00046674 pop.w {r4, r5, r6, r7, r8, lr}            |         
    0x00046678 movw r1, 0xb0f                            |         r1 = 0xb0f;
    0x0004667c add r0, pc                                |         r0 = 0x8cd26;
    0x0004667e b.w 0x40ed8                               |         void (*0x40ed8)() ();
                                                         | label_3:
    0x00046682 mov r7, r3                                |         r7 = r3;
    0x00046684 b 0x46614                                 |         goto label_1;
                                                         | label_7:
    0x00046686 ldr r1, [pc, 0x20]                        |         
    0x00046688 mov r2, r5                                |         r2 = r5;
    0x0004668a ldr r0, [r6]                              |         r0 = *(r6);
    0x0004668c add r1, pc                                |         r1 = 0x8cd3a;
    0x0004668e bl 0x44820                                |         zbx_dsprintf ()
    0x00046692 str r0, [r6]                              |         *(r6) = r0;
    0x00046694 mov r0, r7                                |         r0 = r7;
    0x00046696 blx 0xde30                                |         fcn_0000de30 ();
    0x0004669a mov r7, r4                                |         r7 = r4;
    0x0004669c b 0x46664                                 |         
                                                         |     } while (1);
                                                         | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x42190 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.zbx_validate_interval ()                     | void zbx_validate_interval (int16_t arg_f8h, 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;
    0x00042190 ldr r2, [pc, 0x254]                           |     
    0x00042192 ldr r3, [pc, 0x258]                           |     r3 = *(0x423ee);
    0x00042194 push.w {r4, r5, r6, r7, r8, sb, sl, lr}       |     
    0x00042198 sub sp, 0x30                                  |     
    0x0004219a add r2, pc                                    |     r2 = 0x84586;
    0x0004219c mov r5, r0                                    |     r5 = r0;
    0x0004219e mov r8, r1                                    |     r8 = r1;
    0x000421a0 ldr r3, [r2, r3]                              |     
    0x000421a2 ldr r3, [r3]                                  |     r3 = *(0x84586);
    0x000421a4 str r3, [sp, 0x2c]                            |     var_2ch = r3;
    0x000421a6 mov.w r3, 0                                   |     r3 = 0;
    0x000421aa ldrb r3, [r0]                                 |     r3 = *(r0);
    0x000421ac cmp r3, 0x7b                                  |     
                                                             |     if (r3 == 0x7b) {
    0x000421ae bne 0x421fa                                   |         
    0x000421b0 ldrb r3, [r0, 1]                              |         r3 = *((r0 + 1));
    0x000421b2 cmp r3, 0x24                                  |         
                                                             |         if (r3 != 0x24) {
    0x000421b4 bne 0x421fa                                   |             goto label_14;
                                                             |         }
    0x000421b6 movs r2, 0                                    |         r2 = 0;
    0x000421b8 add r3, sp, 0x1c                              |         r3 += var_1ch;
    0x000421ba str r2, [sp]                                  |         *(sp) = r2;
    0x000421bc add r1, sp, 0x14                              |         r1 += var_14h;
    0x000421be add r2, sp, 0x18                              |         r2 += var_18h;
    0x000421c0 bl 0x46264                                    |         r0 = zbx_user_macro_parse ();
                                                             |         if (r0 != 0) {
    0x000421c4 cbnz r0, 0x421fa                              |             goto label_14;
                                                             |         }
    0x000421c6 ldr r3, [sp, 0x14]                            |         r3 = var_14h;
    0x000421c8 adds r3, 1                                    |         r3++;
    0x000421ca ldrb r2, [r5, r3]                             |         r2 = *((r5 + r3));
    0x000421cc adds r4, r5, r3                               |         r4 = r5 + r3;
    0x000421ce str r3, [sp, 0x10]                            |         var_10h = r3;
                                                             |         if (r2 == 0) {
    0x000421d0 cbnz r2, 0x421f0                              |             
                                                             | label_1:
    0x000421d2 movs r0, 0                                    |             r0 = 0;
                                                             | label_9:
    0x000421d4 ldr r2, [pc, 0x218]                           |             
    0x000421d6 ldr r3, [pc, 0x214]                           |             r3 = *(0x423ee);
    0x000421d8 add r2, pc                                    |             r2 = 0x845cc;
    0x000421da ldr r3, [r2, r3]                              |             r3 = *(0x845cc);
    0x000421dc ldr r2, [r3]                                  |             r2 = *(0x845cc);
    0x000421de ldr r3, [sp, 0x2c]                            |             r3 = var_2ch;
    0x000421e0 eors r2, r3                                   |             r2 ^= r3;
    0x000421e2 mov.w r3, 0                                   |             r3 = 0;
                                                             |             if (r2 != r3) {
    0x000421e6 bne.w 0x423e4                                 |                 goto label_15;
                                                             |             }
    0x000421ea add sp, 0x30                                  |             
    0x000421ec pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |             
                                                             |         }
    0x000421f0 cmp r2, 0x3b                                  |         
    0x000421f2 itt eq                                        |         
                                                             |         if (r2 != 0x3b) {
    0x000421f4 moveq r3, 1                                   |             r3 = 1;
                                                             |         }
                                                             |         if (r2 != 0x3b) {
    0x000421f6 streq r3, [sp, 8]                             |             var_8h = r3;
                                                             |         }
                                                             |         if (r2 == 0x3b) {
    0x000421f8 beq 0x42218                                   |             goto label_16;
                                                             |         }
                                                             |     }
                                                             | label_14:
    0x000421fa add r3, sp, 8                                 |     r3 += var_8h;
    0x000421fc movs r2, 0x3b                                 |     r2 = 0x3b;
    0x000421fe add r1, sp, 0x10                              |     r1 += var_10h;
    0x00042200 mov r0, r5                                    |     r0 = r5;
    0x00042202 bl 0x41964                                    |     r0 = fcn_00041964 (r0, r1, r2, r3);
    0x00042206 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00042208 bne.w 0x423ae                                 |         goto label_17;
                                                             |     }
    0x0004220c ldr r4, [sp, 0x10]                            |     r4 = var_10h;
    0x0004220e ldrb r3, [r5, r4]                             |     r3 = *((r5 + r4));
    0x00042210 add r4, r5                                    |     r4 += r5;
    0x00042212 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00042214 beq.w 0x42358                                 |         goto label_18;
                                                             |     }
                                                             | label_16:
    0x00042218 ldr.w sl, [pc, 0x1d8]                         |     sl = *(0x000423f4);
    0x0004221c add.w sb, sp, 0x18                            |     sb += var_18h;
    0x00042220 add r7, sp, 0x14                              |     r7 += var_14h;
    0x00042222 add sl, pc                                    |     sl += pc;
                                                             |     do {
                                                             | label_0:
    0x00042224 ldrb r3, [r4, 1]                              |         r3 = *((r4 + 1));
    0x00042226 adds r5, r4, 1                                |         r5 = r4 + 1;
    0x00042228 cmp r3, 0x7b                                  |         
                                                             |         if (r3 != 0x7b) {
    0x0004222a bne 0x422b2                                   |             goto label_19;
                                                             |         }
    0x0004222c ldrb r3, [r4, 2]                              |         r3 = *((r4 + 2));
    0x0004222e cmp r3, 0x24                                  |         
                                                             |         if (r3 != 0x24) {
    0x00042230 bne 0x422b2                                   |             goto label_19;
                                                             |         }
    0x00042232 add r6, sp, 0x1c                              |         r6 += var_1ch;
    0x00042234 movs r4, 0                                    |         r4 = 0;
    0x00042236 mov r3, r6                                    |         r3 = r6;
    0x00042238 mov r2, sb                                    |         r2 = sb;
    0x0004223a mov r1, r7                                    |         r1 = r7;
    0x0004223c mov r0, r5                                    |         r0 = r5;
    0x0004223e str r4, [sp]                                  |         *(sp) = r4;
    0x00042240 bl 0x46264                                    |         r0 = zbx_user_macro_parse ();
    0x00042244 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00042246 bne 0x422b2                                   |             goto label_19;
                                                             |         }
    0x00042248 ldr r4, [sp, 0x14]                            |         r4 = var_14h;
    0x0004224a adds r4, 1                                    |         r4++;
    0x0004224c ldrb r3, [r5, r4]                             |         r3 = *((r5 + r4));
    0x0004224e str r4, [sp, 0x10]                            |         var_10h = r4;
    0x00042250 add r4, r5                                    |         r4 += r5;
    0x00042252 cmp r3, 0x2f                                  |         
                                                             |         if (r3 == 0x2f) {
    0x00042254 beq 0x4233e                                   |             goto label_20;
                                                             |         }
                                                             |         if (r3 == 0) {
    0x00042256 cbz r3, 0x422a2                               |             goto label_3;
                                                             |         }
    0x00042258 cmp r3, 0x3b                                  |         
    0x0004225a beq 0x42224                                   |         
                                                             |     } while (r3 == 0x3b);
                                                             | label_2:
    0x0004225c movs r2, 0                                    |     r2 = 0;
    0x0004225e movs r3, 0x1c                                 |     r3 = 0x1c;
    0x00042260 movw r1, 0x7a5                                |     r1 = 0x7a5;
    0x00042264 mov r0, sl                                    |     r0 = sl;
    0x00042266 bl 0x40dd8                                    |     zbx_malloc2 ();
    0x0004226a movs r3, 0                                    |     r3 = 0;
    0x0004226c mov r6, r0                                    |     r6 = r0;
    0x0004226e movs r1, 0x3b                                 |     r1 = 0x3b;
    0x00042270 mov r0, r5                                    |     r0 = r5;
    0x00042272 str r3, [r6]                                  |     *(r6) = r3;
    0x00042274 str r3, [r6, 4]                               |     *((r6 + 4)) = r3;
    0x00042276 str r3, [r6, 8]                               |     *((r6 + 8)) = r3;
    0x00042278 str r3, [r6, 0xc]                             |     *((r6 + 0xc)) = r3;
    0x0004227a str r3, [r6, 0x10]                            |     *((r6 + 0x10)) = r3;
    0x0004227c str r3, [r6, 0x14]                            |     *((r6 + 0x14)) = r3;
    0x0004227e str r3, [r6, 0x18]                            |     *((r6 + 0x18)) = r3;
    0x00042280 blx 0xdcd4                                    |     r0 = fcn_0000dcd4 ();
    0x00042284 mov r4, r0                                    |     r4 = r0;
    0x00042286 subs r2, r0, r5                               |     r2 = r0 - r5;
    0x00042288 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0004228a beq 0x42344                                   |         goto label_21;
                                                             |     }
                                                             | label_6:
    0x0004228c mov r1, r5                                    |     r1 = r5;
    0x0004228e mov r0, r6                                    |     r0 = r6;
    0x00042290 bl 0x42020                                    |     r0 = fcn_00042020 (r0, r1, r2);
    0x00042294 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00042296 bne 0x42374                                   |         goto label_22;
                                                             |     }
    0x00042298 mov r0, r6                                    |     r0 = r6;
    0x0004229a bl 0x3fe60                                    |     fcn_0003fe60 (r0);
                                                             | label_4:
    0x0004229e cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x000422a0 bne 0x42224                                   |         goto label_0;
                                                             |     }
                                                             | label_3:
    0x000422a2 ldr r2, [sp, 8]                               |     r2 = var_8h;
                                                             | label_8:
    0x000422a4 mov.w r3, 0x5180                              |     
    0x000422a8 movt r3, 1                                    |     r3 = 0x15180;
    0x000422ac cmp r2, r3                                    |     
                                                             |     if (r2 <= r3) {
    0x000422ae ble 0x421d2                                   |         goto label_1;
                                                             |     }
    0x000422b0 b 0x4235e                                     |     goto label_23;
                                                             | label_19:
    0x000422b2 add r3, sp, 0xc                               |     r3 += var_ch;
    0x000422b4 movs r2, 0x2f                                 |     r2 = 0x2f;
    0x000422b6 add r1, sp, 0x10                              |     r1 += var_10h;
    0x000422b8 mov r0, r5                                    |     r0 = r5;
    0x000422ba bl 0x41964                                    |     r0 = fcn_00041964 (r0, r1, r2, r3);
    0x000422be cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000422c0 bne 0x4225c                                   |         goto label_2;
                                                             |     }
    0x000422c2 ldr r2, [sp, 0x10]                            |     r2 = var_10h;
    0x000422c4 ldrb r3, [r5, r2]                             |     r3 = *((r5 + r2));
    0x000422c6 adds r4, r5, r2                               |     r4 = r5 + r2;
    0x000422c8 cmp r3, 0x2f                                  |     
                                                             |     if (r3 != 0x2f) {
    0x000422ca bne 0x4225c                                   |         goto label_2;
                                                             |     }
    0x000422cc ldrd r1, r3, [sp, 8]                          |     __asm ("ldrd r1, r3, [var_8h]");
    0x000422d0 orrs r3, r1                                   |     r3 |= r1;
                                                             |     if (r3 == r1) {
    0x000422d2 beq 0x42394                                   |         goto label_24;
                                                             |     }
    0x000422d4 add r6, sp, 0x1c                              |     r6 += var_1ch;
                                                             | label_5:
    0x000422d6 ldrb r3, [r4, 1]                              |     r3 = *((r4 + 1));
    0x000422d8 adds r5, r4, 1                                |     r5 = r4 + 1;
    0x000422da cmp r3, 0x7b                                  |     
                                                             |     if (r3 != 0x7b) {
    0x000422dc bne 0x42308                                   |         goto label_25;
                                                             |     }
    0x000422de ldrb r3, [r4, 2]                              |     r3 = *((r4 + 2));
    0x000422e0 cmp r3, 0x24                                  |     
                                                             |     if (r3 != 0x24) {
    0x000422e2 bne 0x42308                                   |         goto label_25;
                                                             |     }
    0x000422e4 movs r3, 0                                    |     r3 = 0;
    0x000422e6 mov r2, sb                                    |     r2 = sb;
    0x000422e8 str r3, [sp]                                  |     *(sp) = r3;
    0x000422ea mov r1, r7                                    |     r1 = r7;
    0x000422ec mov r3, r6                                    |     r3 = r6;
    0x000422ee mov r0, r5                                    |     r0 = r5;
    0x000422f0 bl 0x46264                                    |     r0 = zbx_user_macro_parse ();
                                                             |     if (r0 != 0) {
    0x000422f4 cbnz r0, 0x42308                              |         goto label_25;
                                                             |     }
    0x000422f6 ldr r4, [sp, 0x14]                            |     r4 = var_14h;
    0x000422f8 adds r4, 1                                    |     r4++;
    0x000422fa ldrb r3, [r5, r4]                             |     r3 = *((r5 + r4));
    0x000422fc str r4, [sp, 0x10]                            |     var_10h = r4;
    0x000422fe add r4, r5                                    |     r4 += r5;
    0x00042300 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00042302 beq 0x422a2                                   |         goto label_3;
                                                             |     }
    0x00042304 cmp r3, 0x3b                                  |     
                                                             |     if (r3 == 0x3b) {
    0x00042306 beq 0x42224                                   |         goto label_0;
                                                             |     }
                                                             | label_25:
    0x00042308 movs r1, 0x3b                                 |     r1 = 0x3b;
    0x0004230a mov r0, r5                                    |     r0 = r5;
    0x0004230c blx 0xdcd4                                    |     r0 = fcn_0000dcd4 ();
    0x00042310 mov r4, r0                                    |     r4 = r0;
    0x00042312 subs r2, r0, r5                               |     r2 = r0 - r5;
                                                             |     if (r0 == 0) {
    0x00042314 cbz r0, 0x4234e                               |         goto label_26;
                                                             |     }
                                                             | label_7:
    0x00042316 mov r0, r6                                    |     r0 = r6;
    0x00042318 mov r1, r5                                    |     r1 = r5;
    0x0004231a bl 0x41c64                                    |     r0 = fcn_00041c64 (r0, r1, r2, r3, r4);
    0x0004231e cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00042320 beq 0x4229e                                   |         goto label_4;
                                                             |     }
    0x00042322 ldr.w r6, [r8]                                |     r6 = *(r8);
    0x00042326 subs r2, r4, r5                               |     r2 = r4 - r5;
    0x00042328 cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x0004232a beq 0x423d0                                   |         goto label_27;
                                                             |     }
                                                             | label_13:
    0x0004232c ldr r1, [pc, 0xc8]                            |     
    0x0004232e mov r3, r5                                    |     r3 = r5;
    0x00042330 mov r0, r6                                    |     r0 = r6;
    0x00042332 add r1, pc                                    |     r1 = 0x8472e;
    0x00042334 bl 0x44820                                    |     zbx_dsprintf ()
                                                             | label_10:
    0x00042338 str.w r0, [r8]                                |     __asm ("str.w r0, [r8]");
    0x0004233c b 0x4236e                                     |     goto label_12;
                                                             | label_20:
    0x0004233e movs r3, 1                                    |     r3 = 1;
    0x00042340 str r3, [sp, 0xc]                             |     var_ch = r3;
    0x00042342 b 0x422d6                                     |     goto label_5;
                                                             | label_21:
    0x00042344 mov r0, r5                                    |     r0 = r5;
    0x00042346 blx 0xdf68                                    |     r0 = fcn_0000df68 ();
    0x0004234a mov r2, r0                                    |     r2 = r0;
    0x0004234c b 0x4228c                                     |     goto label_6;
                                                             | label_26:
    0x0004234e mov r0, r5                                    |     r0 = r5;
    0x00042350 blx 0xdf68                                    |     r0 = fcn_0000df68 ();
    0x00042354 mov r2, r0                                    |     r2 = r0;
    0x00042356 b 0x42316                                     |     goto label_7;
                                                             | label_18:
    0x00042358 ldr r2, [sp, 8]                               |     r2 = var_8h;
    0x0004235a cmp r2, 0                                     |     
                                                             |     if (r2 != 0) {
    0x0004235c bne 0x422a4                                   |         goto label_8;
                                                             |     }
                                                             | label_23:
    0x0004235e ldr r1, [pc, 0x9c]                            |     
    0x00042360 ldr.w r0, [r8]                                |     r0 = *(r8);
    0x00042364 add r1, pc                                    |     r1 = 0x84766;
    0x00042366 bl 0x44820                                    |     zbx_dsprintf ()
    0x0004236a str.w r0, [r8]                                |     __asm ("str.w r0, [r8]");
                                                             |     do {
                                                             | label_12:
    0x0004236e mov.w r0, -1                                  |         r0 = -1;
    0x00042372 b 0x421d4                                     |         goto label_9;
                                                             | label_22:
    0x00042374 mov r0, r6                                    |         r0 = r6;
    0x00042376 bl 0x3fe60                                    |         fcn_0003fe60 (r0);
    0x0004237a ldr.w r6, [r8]                                |         r6 = *(r8);
    0x0004237e subs r2, r4, r5                               |         r2 = r4 - r5;
                                                             |         if (r4 == 0) {
    0x00042380 cbz r4, 0x423a4                               |             goto label_28;
                                                             |         }
                                                             | label_11:
    0x00042382 ldr r1, [pc, 0x7c]                            |         
    0x00042384 mov r3, r5                                    |         r3 = r5;
    0x00042386 mov r0, r6                                    |         r0 = r6;
    0x00042388 add r1, pc                                    |         r1 = 0x8478e;
    0x0004238a bl 0x44820                                    |         zbx_dsprintf ()
    0x0004238e str.w r0, [r8]                                |         __asm ("str.w r0, [r8]");
    0x00042392 b 0x4236e                                     |         
                                                             |     } while (1);
                                                             | label_24:
    0x00042394 ldr r1, [pc, 0x6c]                            |     
    0x00042396 mov r3, r5                                    |     r3 = r5;
    0x00042398 ldr.w r0, [r8]                                |     r0 = *(r8);
    0x0004239c add r1, pc                                    |     r1 = 0x847a4;
    0x0004239e bl 0x44820                                    |     zbx_dsprintf ()
    0x000423a2 b 0x42338                                     |     goto label_10;
                                                             | label_28:
    0x000423a4 mov r0, r5                                    |     r0 = r5;
    0x000423a6 blx 0xdf68                                    |     r0 = fcn_0000df68 ();
    0x000423aa mov r2, r0                                    |     r2 = r0;
    0x000423ac b 0x42382                                     |     goto label_11;
                                                             | label_17:
    0x000423ae movs r1, 0x3b                                 |     r1 = 0x3b;
    0x000423b0 mov r0, r5                                    |     r0 = r5;
    0x000423b2 blx 0xdcd4                                    |     fcn_0000dcd4 ();
    0x000423b6 ldr.w r4, [r8]                                |     r4 = *(r8);
                                                             |     if (r0 == 0) {
    0x000423ba cbz r0, 0x423da                               |         goto label_29;
                                                             |     }
    0x000423bc subs r2, r0, r5                               |     r2 = r0 - r5;
                                                             |     do {
    0x000423be ldr r1, [pc, 0x48]                            |         
    0x000423c0 mov r3, r5                                    |         r3 = r5;
    0x000423c2 mov r0, r4                                    |         r0 = r4;
    0x000423c4 add r1, pc                                    |         r1 = 0x847d2;
    0x000423c6 bl 0x44820                                    |         zbx_dsprintf ()
    0x000423ca str.w r0, [r8]                                |         __asm ("str.w r0, [r8]");
    0x000423ce b 0x4236e                                     |         goto label_12;
                                                             | label_27:
    0x000423d0 mov r0, r5                                    |         r0 = r5;
    0x000423d2 blx 0xdf68                                    |         r0 = fcn_0000df68 ();
    0x000423d6 mov r2, r0                                    |         r2 = r0;
    0x000423d8 b 0x4232c                                     |         goto label_13;
                                                             | label_29:
    0x000423da mov r0, r5                                    |         r0 = r5;
    0x000423dc blx 0xdf68                                    |         r0 = fcn_0000df68 ();
    0x000423e0 mov r2, r0                                    |         r2 = r0;
    0x000423e2 b 0x423be                                     |         
                                                             |     } while (1);
                                                             | label_15:
    0x000423e4 blx 0xe158                                    |     fcn_0000e158 ();
    0x000423e8 ldr r2, [sp, 0xf8]                            |     r2 = *(arg_f8h);
    0x000423ea movs r1, r0                                   |     r1 = r0;
    0x000423ec lsls r4, r2, 0xe                              |     r4 = r2 << 0xe;
    0x000423ee movs r0, r0                                   |     
    0x000423f0 ldr r2, [sp]                                  |     r2 = *(sp);
    0x000423f2 movs r1, r0                                   |     r1 = r0;
    0x000423f4 ldr r4, [pc, 0xf8]                            |     r4 = *(0x424f0);
    0x000423f6 movs r1, r0                                   |     r1 = r0;
    0x000423f8 ldr r5, [pc, 0x348]                           |     r5 = *(0x42744);
    0x000423fa movs r1, r0                                   |     r1 = r0;
    0x000423fc ldr r5, [pc, 0x380]                           |     r5 = *(0x42780);
    0x000423fe movs r1, r0                                   |     r1 = r0;
    0x00042400 ldr r5, [pc, 0x270]                           |     r5 = *(0x42674);
    0x00042402 movs r1, r0                                   |     r1 = r0;
    0x00042404 ldr r5, [pc, 0x110]                           |     r5 = *(0x42518);
    0x00042406 movs r1, r0                                   |     r1 = r0;
    0x00042408 ldr r4, [pc, 0x3f0]                           |     r4 = *(0x427fc);
    0x0004240a movs r1, r0                                   |     r1 = r0;
                                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x37e50 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.zbx_validate_peer_list ()                        | void zbx_validate_peer_list (int16_t arg_18h, int16_t arg_1ch, int16_t arg_20h, int16_t arg_24h, int16_t arg_28h, int16_t arg_2ch, int16_t arg_30h, int16_t arg_34h, int16_t arg_38h, int16_t arg_3ch, int16_t arg_804h, int16_t arg_ff00h, int16_t arg1, int16_t arg2) {
                                                                 |     int32_t var_804h;
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_14h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00037680 bl 0x30fe88                                       |     r0 = void (*0x30fe88)() ();
    0x00037684 lsls r4, r0, 4                                    |     r4 = r0 << 4;
    0x00037686 mov r0, r5                                        |     r0 = r5;
    0x00037688 bl 0x364d4                                        |     r0 = fcn_000364d4 (r0, r1, r2);
                                                                 |     if (r0 == 0) {
    0x0003768c cbz r0, 0x376e2                                   |         goto label_29;
                                                                 |     }
                                                                 | label_0:
    0x0003768e adds r1, r0, 1                                    |     r1 = r0 + 1;
                                                                 |     if (r1 == r0) {
    0x00037690 beq.w 0x37832                                     |         goto label_7;
                                                                 |     }
    0x00037694 ldr r3, [r5, 0x1c]                                |     r3 = *((r5 + 0x1c));
    0x00037696 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00037698 bne 0x37736                                       |         goto label_30;
                                                                 |     }
    0x0003769a add r4, r0                                        |     r4 += r0;
                                                                 | label_1:
    0x0003769c adds r3, r7, r4                                   |     r3 = r7 + r4;
    0x0003769e cmp r3, r8                                        |     
    0x000376a0 mov.w r3, 0                                       |     r3 = 0;
    0x000376a4 sbcs.w r3, r3, sb                                 |     __asm ("sbcs.w r3, r3, sb");
                                                                 |     if (r3 >= r8) {
    0x000376a8 bhs 0x376e2                                       |         goto label_29;
                                                                 |     }
    0x000376aa cmp r6, 1                                         |     
                                                                 |     if (r6 == 1) {
    0x000376ac beq.w 0x37808                                     |         goto label_31;
                                                                 |     }
    0x000376b0 cmp r6, 2                                         |     
                                                                 |     if (r6 == 2) {
    0x000376b2 beq 0x3776c                                       |         goto label_32;
                                                                 |     }
    0x000376b4 cmp r6, 4                                         |     
                                                                 |     if (r6 != 4) {
    0x000376b6 bne 0x3767e                                       |         void (*0x3767e)() ();
                                                                 |     }
    0x000376b8 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x000376ba mov r6, sl                                        |     r6 = sl;
    0x000376bc ands r3, r3, 4                                    |     r3 &= 4;
                                                                 |     if (r3 != r3) {
    0x000376c0 bne 0x37794                                       |         goto label_33;
                                                                 |     }
                                                                 | label_2:
    0x000376c2 add.w sl, r6, 8                                   |     sl = r6 + 8;
    0x000376c6 cmp sl, r4                                        |     
                                                                 |     if (sl < r4) {
    0x000376c8 bls.w 0x37850                                     |         goto label_34;
                                                                 |     }
                                                                 | label_3:
    0x000376cc rsb.w r2, r4, 0x800                               |     r2 = 0x800 - r4;
    0x000376d0 add.w r1, fp, r4                                  |     r1 = fp + r4;
    0x000376d4 mov r0, r5                                        |     r0 = r5;
    0x000376d6 mov sl, r6                                        |     sl = r6;
    0x000376d8 movs r6, 4                                        |     r6 = 4;
    0x000376da bl 0x364d4                                        |     r0 = fcn_000364d4 (r0, r1, r2);
    0x000376de cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000376e0 bne 0x3768e                                       |         goto label_0;
                                                                 |     }
                                                                 | label_29:
    0x000376e2 cmp r6, 5                                         |     
                                                                 |     if (r6 == 5) {
    0x000376e4 beq.w 0x3786c                                     |         goto label_35;
                                                                 |     }
    0x000376e8 cmp r6, 4                                         |     
                                                                 |     if (r6 != 4) {
    0x000376ea bne.w 0x378e6                                     |         goto label_36;
                                                                 |     }
    0x000376ee ldr r3, [pc, 0x3c0]                               |     
    0x000376f0 ldr r2, [sp, 0x30]                                |     r2 = *(arg_30h);
    0x000376f2 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x000376f4 ldr r3, [r3]                                      |     r3 = *(0x37ab2);
    0x000376f6 cmp r3, 2                                         |     
                                                                 |     if (r3 <= 2) {
    0x000376f8 ble.w 0x37832                                     |         goto label_7;
                                                                 |     }
    0x000376fc ldr r1, [pc, 0x3b4]                               |     
    0x000376fe add r1, pc                                        |     r1 = 0x6f1b6;
                                                                 | label_10:
    0x00037700 addw r2, r5, 0xca8                                |     __asm ("addw r2, r5, 0xca8");
    0x00037704 movs r0, 3                                        |     r0 = 3;
    0x00037706 bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x0003770a ldr r3, [sp, 0x1c]                                |     r3 = *(arg_1ch);
                                                                 |     if (r3 != 0) {
    0x0003770c cbz r3, 0x37716                                   |         
                                                                 | label_8:
    0x0003770e ldr r3, [r5, 0x18]                                |         r3 = *((r5 + 0x18));
    0x00037710 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x00037712 bne.w 0x37842                                     |             goto label_37;
                                                                 |         }
                                                                 |     }
                                                                 | label_5:
    0x00037716 mov.w r0, -1                                      |     r0 = -1;
                                                                 | label_11:
    0x0003771a ldr r2, [pc, 0x39c]                               |     
    0x0003771c ldr r3, [pc, 0x38c]                               |     r3 = *(0x37aac);
    0x0003771e add r2, pc                                        |     r2 = 0x6f1dc;
    0x00037720 ldr r3, [r2, r3]                                  |     r3 = *(0x6f1dc);
    0x00037722 ldr r2, [r3]                                      |     r2 = *(0x6f1dc);
    0x00037724 ldr r3, [sp, 0x3c]                                |     r3 = *(arg_3ch);
    0x00037726 eors r2, r3                                       |     r2 ^= r3;
    0x00037728 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x0003772c bne.w 0x37a9e                                     |         goto label_38;
                                                                 |     }
    0x00037730 add sp, 0x44                                      |     
    0x00037732 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_30:
    0x00037736 adds r3, r7, r0                                   |     r3 = r7 + r0;
    0x00037738 cmp r8, r3                                        |     
    0x0003773a sbcs r2, sb, 0                                    |     __asm ("sbcs r2, sb, 0");
                                                                 |     if (r8 < r3) {
    0x0003773e bhs 0x37744                                       |         
    0x00037740 mov r7, r3                                        |         r7 = r3;
    0x00037742 b 0x3769c                                         |         goto label_1;
                                                                 |     }
    0x00037744 mov r2, r0                                        |     r2 = r0;
    0x00037746 ldr r0, [r5, 0xc]                                 |     r0 = *((r5 + 0xc));
    0x00037748 mov r1, fp                                        |     r1 = fp;
    0x0003774a str r3, [sp, 0x34]                                |     *(arg_34h) = r3;
    0x0003774c add r0, r7                                        |     r0 += r7;
    0x0003774e blx 0xdf84                                        |     fcn_0000df84 ();
    0x00037752 ldr r3, [sp, 0x34]                                |     r3 = *(arg_34h);
    0x00037754 mov r7, r3                                        |     r7 = r3;
    0x00037756 b 0x3769c                                         |     goto label_1;
                                                                 | label_4:
    0x00037758 ldr r1, [pc, 0x360]                               |     
    0x0003775a movs r2, 4                                        |     r2 = 4;
    0x0003775c mov r0, fp                                        |     r0 = fp;
    0x0003775e add r1, pc                                        |     r1 = 0x6f21e;
    0x00037760 blx 0xe2c8                                        |     r0 = fcn_0000e2c8 ();
    0x00037764 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00037766 bne 0x37824                                       |         goto label_39;
                                                                 |     }
    0x00037768 add.w sl, sl, 4                                   |     sl += 4;
                                                                 | label_32:
    0x0003776c add.w r6, sl, 1                                   |     r6 = sl + 1;
    0x00037770 cmp r6, r4                                        |     
                                                                 |     if (r6 > r4) {
    0x00037772 bhi 0x3784c                                       |         goto label_40;
                                                                 |     }
    0x00037774 ldrb.w r3, [r5, 0x42c]                            |     r3 = *((r5 + 0x42c));
    0x00037778 lsls r2, r3, 0x1f                                 |     r2 = r3 << 0x1f;
    0x0003777a str r3, [sp, 0x14]                                |     var_14h = r3;
                                                                 |     if (r2 >= r3) {
    0x0003777c bpl.w 0x37928                                     |         goto label_41;
                                                                 |     }
    0x00037780 ldr r2, [sp, 0x20]                                |     r2 = *(arg_20h);
    0x00037782 cmp r3, r2                                        |     
                                                                 |     if (r3 > r2) {
    0x00037784 bhi.w 0x37928                                     |         goto label_41;
                                                                 |     }
    0x00037788 str.w r3, [r5, 0xda8]                             |     __asm ("str.w r3, [r5, 0xda8]");
    0x0003778c ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0003778e ands r3, r3, 4                                    |     r3 &= 4;
                                                                 |     if (r3 == r3) {
    0x00037792 beq 0x376c2                                       |         goto label_2;
                                                                 |     }
                                                                 | label_33:
    0x00037794 add.w sl, r6, 0x10                                |     sl = r6 + 0x10;
    0x00037798 cmp sl, r4                                        |     
                                                                 |     if (sl > r4) {
    0x0003779a bhi 0x376cc                                       |         goto label_3;
                                                                 |     }
    0x0003779c add.w r3, fp, r6                                  |     r3 = fp + r6;
    0x000377a0 ldr.w r0, [fp, r6]                                |     r0 = *((fp + r6));
    0x000377a4 ldr r1, [r3, 4]                                   |     r1 = *((r3 + 4));
    0x000377a6 str r3, [sp, 0x18]                                |     *(arg_18h) = r3;
    0x000377a8 bl 0x3f874                                        |     zbx_letoh_uint64 ();
    0x000377ac ldr r3, [sp, 0x18]                                |     r3 = *(arg_18h);
    0x000377ae mov r8, r0                                        |     r8 = r0;
    0x000377b0 mov sb, r1                                        |     sb = r1;
    0x000377b2 ldr r0, [r3, 8]                                   |     r0 = *((r3 + 8));
    0x000377b4 ldr r1, [r3, 0xc]                                 |     r1 = *((r3 + 0xc));
    0x000377b6 bl 0x3f874                                        |     zbx_letoh_uint64 ();
    0x000377ba str r0, [sp, 0x18]                                |     *(arg_18h) = r0;
    0x000377bc str r1, [sp, 0x24]                                |     *(arg_24h) = r1;
                                                                 | label_6:
    0x000377be ldr r3, [sp, 0x28]                                |     r3 = *(arg_28h);
    0x000377c0 cmp r3, r8                                        |     
    0x000377c2 ldr r3, [sp, 0x2c]                                |     r3 = *(arg_2ch);
    0x000377c4 sbcs.w r3, r3, sb                                 |     __asm ("sbcs.w r3, r3, sb");
                                                                 |     if (r3 <= r8) {
    0x000377c8 blo.w 0x37a12                                     |         goto label_42;
                                                                 |     }
    0x000377cc ldr r3, [sp, 0x28]                                |     r3 = *(arg_28h);
    0x000377ce ldr r2, [sp, 0x18]                                |     r2 = *(arg_18h);
    0x000377d0 cmp r3, r2                                        |     
    0x000377d2 ldr r3, [sp, 0x2c]                                |     r3 = *(arg_2ch);
    0x000377d4 ldr r2, [sp, 0x24]                                |     r2 = *(arg_24h);
    0x000377d6 sbcs r3, r2                                       |     __asm ("sbcs r3, r2");
                                                                 |     if (r3 <= r2) {
    0x000377d8 blo.w 0x37a46                                     |         goto label_43;
                                                                 |     }
    0x000377dc cmp.w r8, 0x800                                   |     
    0x000377e0 sub.w r4, r4, sl                                  |     r4 -= sl;
    0x000377e4 sbcs r3, sb, 0                                    |     __asm ("sbcs r3, sb, 0");
    0x000377e8 add.w r6, fp, sl                                  |     r6 = fp + sl;
                                                                 |     if (r8 >= 0x800) {
                                                                 | label_20:
    0x000377ec bhs 0x378c0                                       |         goto label_44;
                                                                 |     }
    0x000377ee mov r2, r4                                        |     r2 = r4;
    0x000377f0 mov r1, r6                                        |     r1 = r6;
    0x000377f2 mov r0, fp                                        |     r0 = fp;
    0x000377f4 blx 0xe1ec                                        |     getpid ();
    0x000377f8 adds r2, r7, r4                                   |     r2 = r7 + r4;
                                                                 | label_9:
    0x000377fa movs r3, 0                                        |     r3 = 0;
    0x000377fc cmp r2, r8                                        |     
    0x000377fe sbcs.w r3, r3, sb                                 |     __asm ("sbcs.w r3, r3, sb");
                                                                 |     if (r2 >= r8) {
    0x00037802 bhs 0x3786c                                       |         goto label_35;
                                                                 |     }
    0x00037804 movs r6, 5                                        |     r6 = 5;
    0x00037806 b 0x3767e                                         |     void (*0x3767e)() ();
                                                                 | label_31:
    0x00037808 cmp r4, 3                                         |     
                                                                 |     if (r4 > 3) {
    0x0003780a bhi 0x37758                                       |         goto label_4;
                                                                 |     }
    0x0003780c ldr r1, [pc, 0x2b0]                               |     
    0x0003780e mov r2, r4                                        |     r2 = r4;
    0x00037810 mov r0, fp                                        |     r0 = fp;
    0x00037812 add r1, pc                                        |     r1 = 0x6f2d6;
    0x00037814 blx 0xe2c8                                        |     r0 = fcn_0000e2c8 ();
    0x00037818 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0003781a beq.w 0x3767e                                     |         void (*0x3767e)() ();
                                                                 |     }
                                                                 | label_13:
    0x0003781e cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x00037820 beq.w 0x37950                                     |         goto label_45;
                                                                 |     }
                                                                 | label_39:
    0x00037824 ldr r3, [pc, 0x288]                               |     
    0x00037826 ldr r2, [sp, 0x30]                                |     r2 = *(arg_30h);
    0x00037828 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x0003782a ldr r3, [r3]                                      |     r3 = *(0x37ab0);
    0x0003782c cmp r3, 2                                         |     
                                                                 |     if (r3 > 2) {
    0x0003782e bgt.w 0x3795e                                     |         goto label_46;
                                                                 |     }
                                                                 | label_7:
    0x00037832 ldr r3, [sp, 0x1c]                                |     r3 = *(arg_1ch);
    0x00037834 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00037836 beq.w 0x37716                                     |         goto label_5;
                                                                 |     }
    0x0003783a ldr r3, [r5, 0x18]                                |     r3 = *((r5 + 0x18));
    0x0003783c cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0003783e beq.w 0x37716                                     |         goto label_5;
                                                                 |     }
                                                                 | label_37:
    0x00037842 bl 0x42fd4                                        |     zbx_alarm_off ();
    0x00037846 movs r3, 0                                        |     r3 = 0;
    0x00037848 str r3, [r5, 0x18]                                |     *((r5 + 0x18)) = r3;
    0x0003784a b 0x37716                                         |     goto label_5;
                                                                 | label_40:
    0x0003784c movs r6, 2                                        |     r6 = 2;
    0x0003784e b 0x3767e                                         |     void (*0x3767e)() ();
                                                                 | label_34:
    0x00037850 ldr.w r0, [fp, r6]                                |     r0 = *((fp + r6));
    0x00037854 add r6, fp                                        |     r6 += fp;
    0x00037856 mov sb, r3                                        |     sb = r3;
    0x00037858 bl 0x3f87c                                        |     r0 = zbx_letoh_uint32 ();
    0x0003785c mov r8, r0                                        |     r8 = r0;
    0x0003785e ldr r0, [r6, 4]                                   |     r0 = *((r6 + 4));
    0x00037860 bl 0x3f87c                                        |     zbx_letoh_uint32 ();
    0x00037864 str.w sb, [sp, 0x24]                              |     __asm ("str.w sb, [arg_24h]");
    0x00037868 str r0, [sp, 0x18]                                |     *(arg_18h) = r0;
    0x0003786a b 0x377be                                         |     goto label_6;
                                                                 | label_35:
    0x0003786c add r7, r4                                        |     r7 += r4;
    0x0003786e movs r4, 0                                        |     r4 = 0;
    0x00037870 cmp r4, sb                                        |     
    0x00037872 it eq                                             |     
                                                                 |     if (r4 == sb) {
    0x00037874 cmpeq r7, r8                                      |         __asm ("cmpeq r7, r8");
                                                                 |     }
                                                                 |     if (r4 == sb) {
    0x00037876 beq 0x378fc                                       |         goto label_47;
                                                                 |     }
    0x00037878 ldr r3, [pc, 0x234]                               |     
    0x0003787a cmp r7, r8                                        |     
    0x0003787c ldr r2, [sp, 0x30]                                |     r2 = *(arg_30h);
    0x0003787e sbcs.w r4, r4, sb                                 |     __asm ("sbcs.w r4, r4, sb");
    0x00037882 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00037884 ldr r3, [r3]                                      |     r3 = *(0x37ab0);
                                                                 |     if (r7 >= r8) {
    0x00037886 bhs 0x37918                                       |         goto label_48;
                                                                 |     }
    0x00037888 cmp r3, 2                                         |     
                                                                 |     if (r3 <= 2) {
    0x0003788a ble 0x37832                                       |         goto label_7;
                                                                 |     }
    0x0003788c ldr r1, [pc, 0x234]                               |     
    0x0003788e add r1, pc                                        |     r1 = 0x6f356;
                                                                 | label_12:
    0x00037890 addw r2, r5, 0xca8                                |     __asm ("addw r2, r5, 0xca8");
    0x00037894 movs r0, 3                                        |     r0 = 3;
    0x00037896 strd r8, sb, [sp]                                 |     __asm ("strd r8, sb, [sp]");
    0x0003789a bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x0003789e ldr r3, [sp, 0x1c]                                |     r3 = *(arg_1ch);
    0x000378a0 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x000378a2 beq.w 0x37716                                     |         goto label_5;
                                                                 |     }
    0x000378a6 b 0x3770e                                         |     goto label_8;
                                                                 | label_44:
    0x000378c0 ldr r0, [pc, 0x204]                               |     
    0x000378c2 movs r3, 1                                        |     r3 = 1;
    0x000378c4 movs r2, 0                                        |     r2 = 0;
    0x000378c6 movw r1, 0x752                                    |     r1 = 0x752;
    0x000378ca str r3, [r5, 0x1c]                                |     *((r5 + 0x1c)) = r3;
    0x000378cc add r3, r8                                        |     r3 += r8;
    0x000378ce add r0, pc                                        |     r0 = 0x6f39a;
    0x000378d0 mov r7, r4                                        |     r7 = r4;
    0x000378d2 bl 0x40dd8                                        |     zbx_malloc2 ();
    0x000378d6 mov r2, r4                                        |     r2 = r4;
    0x000378d8 mov r1, r6                                        |     r1 = r6;
    0x000378da str r0, [r5, 0xc]                                 |     *((r5 + 0xc)) = r0;
    0x000378dc blx 0xdf84                                        |     fcn_0000df84 ();
    0x000378e0 mov r2, r4                                        |     r2 = r4;
    0x000378e2 movs r4, 0                                        |     r4 = 0;
    0x000378e4 b 0x377fa                                         |     goto label_9;
                                                                 | label_36:
    0x000378e6 cmp r6, 2                                         |     
                                                                 |     if (r6 != 2) {
    0x000378e8 bne 0x37922                                       |         goto label_49;
                                                                 |     }
    0x000378ea ldr r3, [pc, 0x1c4]                               |     
    0x000378ec ldr r2, [sp, 0x30]                                |     r2 = *(arg_30h);
    0x000378ee ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x000378f0 ldr r3, [r3]                                      |     r3 = *(0x37ab2);
    0x000378f2 cmp r3, 2                                         |     
                                                                 |     if (r3 <= 2) {
    0x000378f4 ble 0x37832                                       |         goto label_7;
                                                                 |     }
    0x000378f6 ldr r1, [pc, 0x1d4]                               |     
    0x000378f8 add r1, pc                                        |     r1 = 0x6f3ca;
    0x000378fa b 0x37700                                         |     goto label_10;
                                                                 | label_47:
    0x000378fc ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x000378fe lsls r3, r3, 0x1e                                 |     r3 <<= 0x1e;
                                                                 |     if (r3 < r3) {
    0x00037900 bmi 0x3796e                                       |         goto label_50;
                                                                 |     }
    0x00037902 ldr r6, [r5, 0xc]                                 |     r6 = *((r5 + 0xc));
    0x00037904 str r7, [r5, 8]                                   |     *((r5 + 8)) = r7;
                                                                 | label_16:
    0x00037906 movs r3, 0                                        |     r3 = 0;
    0x00037908 strb r3, [r6, r7]                                 |     *((r6 + r7)) = r3;
    0x0003790a ldr r3, [sp, 0x1c]                                |     r3 = *(arg_1ch);
                                                                 |     if (r3 != 0) {
    0x0003790c cbz r3, 0x37912                                   |         
                                                                 | label_15:
    0x0003790e ldr r3, [r5, 0x18]                                |         r3 = *((r5 + 0x18));
                                                                 |         if (r3 != 0) {
    0x00037910 cbnz r3, 0x37964                                  |             goto label_51;
                                                                 |         }
                                                                 |     }
                                                                 | label_14:
    0x00037912 ldr r0, [r5, 8]                                   |     r0 = *((r5 + 8));
    0x00037914 add r0, sl                                        |     r0 += sl;
    0x00037916 b 0x3771a                                         |     goto label_11;
                                                                 | label_48:
    0x00037918 cmp r3, 2                                         |     
                                                                 |     if (r3 <= 2) {
    0x0003791a ble 0x37832                                       |         goto label_7;
                                                                 |     }
    0x0003791c ldr r1, [pc, 0x1b0]                               |     
    0x0003791e add r1, pc                                        |     r1 = 0x6f3f2;
    0x00037920 b 0x37890                                         |     goto label_12;
                                                                 | label_49:
    0x00037922 cmp r6, 3                                         |     
                                                                 |     if (r6 != 3) {
    0x00037924 bne.w 0x3781e                                     |         goto label_13;
                                                                 |     }
                                                                 | label_41:
    0x00037928 ldr r3, [pc, 0x184]                               |     
    0x0003792a ldr r2, [sp, 0x30]                                |     r2 = *(arg_30h);
    0x0003792c ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x0003792e ldr r3, [r3]                                      |     r3 = *(0x37ab0);
    0x00037930 cmp r3, 2                                         |     
                                                                 |     if (r3 <= 2) {
    0x00037932 ble.w 0x37832                                     |         goto label_7;
                                                                 |     }
    0x00037936 ldr r1, [pc, 0x19c]                               |     
    0x00037938 addw r2, r5, 0xca8                                |     __asm ("addw r2, r5, 0xca8");
    0x0003793c ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0003793e movs r0, 3                                        |     r0 = 3;
    0x00037940 add r1, pc                                        |     r1 = 0x6f41a;
    0x00037942 bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x00037946 ldr r3, [sp, 0x1c]                                |     r3 = *(arg_1ch);
    0x00037948 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0003794a beq.w 0x37716                                     |         goto label_5;
                                                                 |     }
    0x0003794e b 0x3770e                                         |     goto label_8;
                                                                 | label_45:
    0x00037950 ldr r3, [r5, 0xc]                                 |     r3 = *((r5 + 0xc));
    0x00037952 str r4, [r5, 8]                                   |     *((r5 + 8)) = r4;
    0x00037954 strb r4, [r3]                                     |     *(r3) = r4;
    0x00037956 ldr r3, [sp, 0x1c]                                |     r3 = *(arg_1ch);
    0x00037958 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0003795a beq 0x37912                                       |         goto label_14;
                                                                 |     }
    0x0003795c b 0x3790e                                         |     goto label_15;
                                                                 | label_46:
    0x0003795e ldr r1, [pc, 0x178]                               |     
    0x00037960 add r1, pc                                        |     r1 = 0x6f43e;
    0x00037962 b 0x37700                                         |     goto label_10;
                                                                 | label_51:
    0x00037964 bl 0x42fd4                                        |     zbx_alarm_off ();
    0x00037968 movs r3, 0                                        |     r3 = 0;
    0x0003796a str r3, [r5, 0x18]                                |     *((r5 + 0x18)) = r3;
    0x0003796c b 0x37912                                         |     goto label_14;
                                                                 | label_50:
    0x0003796e ldr r3, [sp, 0x18]                                |     r3 = *(arg_18h);
    0x00037970 mov r2, r4                                        |     r2 = r4;
    0x00037972 ldr r0, [pc, 0x168]                               |     
    0x00037974 mov.w r1, 0x768                                   |     r1 = 0x768;
    0x00037978 str r3, [sp, 0x38]                                |     *(arg_38h) = r3;
    0x0003797a adds r3, 1                                        |     r3++;
    0x0003797c add r0, pc                                        |     r0 = 0x6f45e;
    0x0003797e bl 0x40dd8                                        |     r0 = zbx_malloc2 ();
    0x00037982 mov r6, r0                                        |     r6 = r0;
    0x00037984 add r3, sp, 0x38                                  |     r3 += arg_38h;
    0x00037986 ldr r0, [r5, 0xc]                                 |     r0 = *((r5 + 0xc));
    0x00037988 mov r2, r6                                        |     r2 = r6;
    0x0003798a mov r1, r7                                        |     r1 = r7;
    0x0003798c bl 0x4b0bc                                        |     zbx_uncompress ();
    0x00037990 adds r0, 1                                        |     r0++;
    0x00037992 ldr.w r8, [sp, 0x18]                              |     r8 = *(arg_18h);
                                                                 |     if (r0 == 1) {
    0x00037996 beq 0x37a7a                                       |         goto label_52;
                                                                 |     }
    0x00037998 ldr r3, [sp, 0x38]                                |     r3 = *(arg_38h);
    0x0003799a ldr r2, [sp, 0x18]                                |     r2 = *(arg_18h);
    0x0003799c ldr r1, [sp, 0x24]                                |     r1 = *(arg_24h);
    0x0003799e cmp r4, r1                                        |     
    0x000379a0 it eq                                             |     
                                                                 |     if (r4 == r1) {
    0x000379a2 cmpeq r3, r2                                      |         __asm ("cmpeq r3, r2");
                                                                 |     }
                                                                 |     if (r4 != r1) {
    0x000379a4 beq 0x379b8                                       |         
                                                                 |         if (r6 != 0) {
    0x000379a6 cbz r6, 0x379ae                                   |             
    0x000379a8 mov r0, r6                                        |             r0 = r6;
    0x000379aa blx 0xde30                                        |             fcn_0000de30 ();
                                                                 |         }
    0x000379ae ldr r0, [pc, 0x130]                               |         
    0x000379b0 add r0, pc                                        |         r0 = 0x6f496;
    0x000379b2 bl 0x363d0                                        |         fcn_000363d0 ();
    0x000379b6 b 0x37832                                         |         goto label_7;
                                                                 |     }
    0x000379b8 ldr r3, [r5, 0x1c]                                |     r3 = *((r5 + 0x1c));
    0x000379ba cmp r3, 1                                         |     
                                                                 |     if (r3 == 1) {
    0x000379bc beq 0x37a92                                       |         goto label_53;
                                                                 |     }
                                                                 | label_17:
    0x000379be ldr r3, [sp, 0x18]                                |     r3 = *(arg_18h);
    0x000379c0 movs r2, 1                                        |     r2 = 1;
    0x000379c2 str r2, [r5, 0x1c]                                |     *((r5 + 0x1c)) = r2;
    0x000379c4 ldr r2, [sp, 0x30]                                |     r2 = *(arg_30h);
    0x000379c6 str r3, [r5, 8]                                   |     *((r5 + 8)) = r3;
    0x000379c8 ldr r3, [pc, 0xe4]                                |     
    0x000379ca str r6, [r5, 0xc]                                 |     *((r5 + 0xc)) = r6;
    0x000379cc ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x000379ce ldr r3, [r3]                                      |     r3 = *(0x37ab0);
    0x000379d0 cmp r3, 4                                         |     
                                                                 |     if (r3 <= 4) {
    0x000379d2 bgt 0x379d8                                       |         
    0x000379d4 mov r7, r8                                        |         r7 = r8;
    0x000379d6 b 0x37906                                         |         goto label_16;
                                                                 |     }
    0x000379d8 ldr r0, [sp, 0x18]                                |     r0 = *(arg_18h);
    0x000379da ldr r1, [sp, 0x24]                                |     r1 = *(arg_24h);
    0x000379dc bl 0x4c6f4                                        |     fcn_0004c6f4 (r0, r1, r2);
    0x000379e0 vmov s15, r7                                      |     __asm ("vmov s15, r7");
    0x000379e4 vcvt.f64.u32 d17, s15                             |     __asm ("vcvt.f64.u32 d17, s15");
    0x000379e8 vmov d18, r0, r1                                  |     __asm ("vmov d18, r0, r1");
    0x000379ec movs r0, 5                                        |     r0 = 5;
    0x000379ee ldr r6, [pc, 0xf4]                                |     
    0x000379f0 ldr r1, [pc, 0xf4]                                |     
    0x000379f2 vdiv.f64 d16, d18, d17                            |     __asm ("vdiv.f64 d16, d18, d17");
    0x000379f6 add r6, pc                                        |     r6 = 0x6f4e0;
    0x000379f8 str r7, [sp]                                      |     *(sp) = r7;
    0x000379fa adds r6, 0x4c                                     |     r6 += 0x4c;
    0x000379fc add r1, pc                                        |     r1 = 0x6f4e8;
    0x000379fe mov r2, r6                                        |     r2 = r6;
    0x00037a00 str r4, [sp, 4]                                   |     var_4h = r4;
    0x00037a02 vstr d16, [sp, 8]                                 |     __asm ("vstr d16, [sp, 8]");
    0x00037a06 bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x00037a0a ldrd r8, r6, [r5, 8]                              |     __asm ("ldrd r8, r6, [r5, 8]");
    0x00037a0e mov r7, r8                                        |     r7 = r8;
    0x00037a10 b 0x37906                                         |     goto label_16;
                                                                 | label_42:
    0x00037a12 ldr r3, [pc, 0x9c]                                |     
    0x00037a14 ldr r2, [sp, 0x30]                                |     r2 = *(arg_30h);
    0x00037a16 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00037a18 ldr r3, [r3]                                      |     r3 = *(0x37ab2);
    0x00037a1a cmp r3, 2                                         |     
                                                                 |     if (r3 <= 2) {
    0x00037a1c ble.w 0x37832                                     |         goto label_7;
                                                                 |     }
    0x00037a20 ldr r1, [sp, 0x2c]                                |     r1 = *(arg_2ch);
    0x00037a22 mov r2, r8                                        |     r2 = r8;
    0x00037a24 ldr r3, [sp, 0x28]                                |     r3 = *(arg_28h);
    0x00037a26 movs r0, 3                                        |     r0 = 3;
    0x00037a28 str r1, [sp, 0xc]                                 |     var_ch = r1;
    0x00037a2a addw r1, r5, 0xca8                                |     __asm ("addw r1, r5, 0xca8");
    0x00037a2e str r1, [sp]                                      |     *(sp) = r1;
    0x00037a30 ldr r1, [pc, 0xb8]                                |     
    0x00037a32 str r3, [sp, 8]                                   |     var_8h = r3;
    0x00037a34 mov r3, sb                                        |     r3 = sb;
    0x00037a36 add r1, pc                                        |     r1 = 0x6f526;
    0x00037a38 bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x00037a3c ldr r3, [sp, 0x1c]                                |     r3 = *(arg_1ch);
    0x00037a3e cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00037a40 bne.w 0x3770e                                     |         goto label_8;
                                                                 |     }
    0x00037a44 b 0x37716                                         |     goto label_5;
                                                                 | label_43:
    0x00037a46 ldr r3, [pc, 0x68]                                |     
    0x00037a48 ldr r2, [sp, 0x30]                                |     r2 = *(arg_30h);
    0x00037a4a ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00037a4c ldr r3, [r3]                                      |     r3 = *(0x37ab2);
    0x00037a4e cmp r3, 2                                         |     
                                                                 |     if (r3 <= 2) {
    0x00037a50 ble.w 0x37832                                     |         goto label_7;
                                                                 |     }
    0x00037a54 ldr r1, [sp, 0x2c]                                |     r1 = *(arg_2ch);
    0x00037a56 movs r0, 3                                        |     r0 = 3;
    0x00037a58 ldr r3, [sp, 0x28]                                |     r3 = *(arg_28h);
    0x00037a5a ldr r2, [sp, 0x18]                                |     r2 = *(arg_18h);
    0x00037a5c str r1, [sp, 0xc]                                 |     var_ch = r1;
    0x00037a5e addw r1, r5, 0xca8                                |     __asm ("addw r1, r5, 0xca8");
    0x00037a62 str r1, [sp]                                      |     *(sp) = r1;
    0x00037a64 ldr r1, [pc, 0x88]                                |     
    0x00037a66 str r3, [sp, 8]                                   |     var_8h = r3;
    0x00037a68 ldr r3, [sp, 0x24]                                |     r3 = *(arg_24h);
    0x00037a6a add r1, pc                                        |     r1 = 0x6f55e;
    0x00037a6c bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x00037a70 ldr r3, [sp, 0x1c]                                |     r3 = *(arg_1ch);
    0x00037a72 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00037a74 bne.w 0x3770e                                     |         goto label_8;
                                                                 |     }
    0x00037a78 b 0x37716                                         |     goto label_5;
                                                                 |     if (r6 != 0) {
                                                                 | label_52:
    0x00037a7a cbz r6, 0x37a82                                   |         
    0x00037a7c mov r0, r6                                        |         r0 = r6;
    0x00037a7e blx 0xde30                                        |         fcn_0000de30 ();
                                                                 |     }
    0x00037a82 bl 0x4b0c4                                        |     r0 = zbx_compress_strerror ();
    0x00037a86 mov r1, r0                                        |     r1 = r0;
    0x00037a88 ldr r0, [pc, 0x68]                                |     
    0x00037a8a add r0, pc                                        |     r0 = 0x6f582;
    0x00037a8c bl 0x363d0                                        |     fcn_000363d0 ();
    0x00037a90 b 0x37832                                         |     goto label_7;
                                                                 | label_53:
    0x00037a92 ldr r0, [r5, 0xc]                                 |     r0 = *((r5 + 0xc));
    0x00037a94 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00037a96 beq 0x379be                                       |         goto label_17;
                                                                 |     }
    0x00037a98 blx 0xde30                                        |     fcn_0000de30 ();
    0x00037a9c b 0x379be                                         |     goto label_17;
                                                                 | label_38:
    0x00037a9e blx 0xe158                                        |     fcn_0000e158 ();
    0x00037aa2 nop                                               |     
    0x00037aa4 cmp sl, r6                                        |     
    0x00037aa6 movs r2, r0                                       |     r2 = r0;
    0x00037aa8 cmp sl, r4                                        |     
    0x00037aaa movs r2, r0                                       |     r2 = r0;
    0x00037aac lsls r4, r2, 0xe                                  |     r4 = r2 << 0xe;
    0x00037aae movs r0, r0                                       |     
    0x00037ab0 lsls r4, r7, 0xe                                  |     r4 = r7 << 0xe;
    0x00037ab2 movs r0, r0                                       |     
    0x00037ab4 b 0x381ac                                         |     goto label_54;
    0x00037e50 push.w {r4, r5, r6, r7, r8, lr}                   |     
    0x00037e54 subw sp, sp, 0x808                                |     __asm ("subw sp, sp, 0x808");
    0x00037e58 ldr r4, [pc, 0xc0]                                |     
    0x00037e5a add r6, sp, 4                                     |     r6 += var_4h;
    0x00037e5c mov r8, r1                                        |     r8 = r1;
    0x00037e5e mov.w r2, 0x800                                   |     r2 = 0x800;
    0x00037e62 ldr r3, [pc, 0xbc]                                |     r3 = *(0x37f22);
    0x00037e64 mov r1, r0                                        |     r1 = r0;
    0x00037e66 add r4, pc                                        |     r4 = 0x6fd86;
    0x00037e68 mov r0, r6                                        |     r0 = r6;
    0x00037e6a ldr r3, [r4, r3]                                  |     
    0x00037e6c ldr r3, [r3]                                      |     r3 = *(0x6fd86);
    0x00037e6e str.w r3, [sp, 0x804]                             |     __asm ("str.w r3, [arg_804h]");
    0x00037e72 mov.w r3, 0                                       |     r3 = 0;
    0x00037e76 bl 0x4465c                                        |     zbx_strlcpy ();
    0x00037e7a ldrb r3, [r6]                                     |     r3 = *(r6);
                                                                 |     if (r3 == 0) {
    0x00037e7c cbz r3, 0x37eb6                                   |         goto label_55;
                                                                 |     }
    0x00037e7e movs r7, 0                                        |     r7 = 0;
                                                                 |     do {
    0x00037e80 movs r1, 0x2c                                     |         r1 = 0x2c;
    0x00037e82 mov r0, r6                                        |         r0 = r6;
    0x00037e84 blx 0xdcd4                                        |         r0 = fcn_0000dcd4 ();
    0x00037e88 mov r4, r0                                        |         r4 = r0;
                                                                 |         if (r0 != 0) {
    0x00037e8a cbz r0, 0x37e8e                                   |             
    0x00037e8c strb r7, [r0]                                     |             *(r0) = r7;
                                                                 |         }
    0x00037e8e movs r1, 0x2f                                     |         r1 = 0x2f;
    0x00037e90 mov r0, r6                                        |         r0 = r6;
    0x00037e92 blx 0xdcd4                                        |         r0 = fcn_0000dcd4 ();
    0x00037e96 mov r5, r0                                        |         r5 = r0;
                                                                 |         if (r0 == 0) {
    0x00037e98 cbz r0, 0x37ed6                                   |             goto label_56;
                                                                 |         }
    0x00037e9a mov r1, r0                                        |         r1 = r0;
    0x00037e9c movs r2, 0                                        |         r2 = 0;
    0x00037e9e mov r0, r6                                        |         r0 = r6;
    0x00037ea0 strb r7, [r1], 1                                  |         *(r1) = r7;
                                                                 |         r1++;
    0x00037ea4 bl 0x37df8                                        |         validate_cidr ();
    0x00037ea8 adds r0, 1                                        |         r0++;
                                                                 |         if (r0 == 1) {
    0x00037eaa beq 0x37efa                                       |             goto label_57;
                                                                 |         }
                                                                 |         if (r4 == 0) {
                                                                 | label_18:
    0x00037eac cbz r4, 0x37eb6                                   |             goto label_55;
                                                                 |         }
    0x00037eae ldrb r3, [r4, 1]                                  |         r3 = *((r4 + 1));
    0x00037eb0 adds r6, r4, 1                                    |         r6 = r4 + 1;
    0x00037eb2 cmp r3, 0                                         |         
    0x00037eb4 bne 0x37e80                                       |         
                                                                 |     } while (r3 != 0);
                                                                 | label_55:
    0x00037eb6 movs r0, 0                                        |     r0 = 0;
                                                                 | label_19:
    0x00037eb8 ldr r2, [pc, 0x68]                                |     
    0x00037eba ldr r3, [pc, 0x64]                                |     r3 = *(0x37f22);
    0x00037ebc add r2, pc                                        |     r2 = 0x6fde4;
    0x00037ebe ldr r3, [r2, r3]                                  |     r3 = *(0x6fde4);
    0x00037ec0 ldr r2, [r3]                                      |     r2 = *(0x6fde4);
    0x00037ec2 ldr.w r3, [sp, 0x804]                             |     r3 = *(arg_804h);
    0x00037ec6 eors r2, r3                                       |     r2 ^= r3;
    0x00037ec8 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x00037ecc bne 0x37f16                                       |         goto label_58;
                                                                 |     }
    0x00037ece addw sp, sp, 0x808                                |     __asm ("addw sp, sp, 0x808");
    0x00037ed2 pop.w {r4, r5, r6, r7, r8, pc}                    |     
                                                                 | label_56:
    0x00037ed6 mov r0, r6                                        |     r0 = r6;
    0x00037ed8 bl 0x413f0                                        |     is_supported_ip ();
    0x00037edc adds r0, 1                                        |     r0++;
                                                                 |     if (r0 != 1) {
    0x00037ede bne 0x37eac                                       |         goto label_18;
                                                                 |     }
    0x00037ee0 mov r0, r6                                        |     r0 = r6;
    0x00037ee2 bl 0x41424                                        |     zbx_validate_hostname ();
    0x00037ee6 adds r0, 1                                        |     r0++;
                                                                 |     if (r0 != 1) {
    0x00037ee8 bne 0x37eac                                       |         goto label_18;
                                                                 |     }
    0x00037eea ldr r1, [pc, 0x3c]                                |     
    0x00037eec mov r2, r6                                        |     r2 = r6;
    0x00037eee mov r0, r5                                        |     r0 = r5;
    0x00037ef0 add r1, pc                                        |     r1 = 0x6fe1e;
    0x00037ef2 bl 0x44820                                        |     r0 = zbx_dsprintf ()
    0x00037ef6 mov r3, r0                                        |     r3 = r0;
    0x00037ef8 b 0x37f0c                                         |     goto label_59;
                                                                 | label_57:
    0x00037efa ldr r1, [pc, 0x30]                                |     
    0x00037efc movs r3, 0x2f                                     |     r3 = 0x2f;
    0x00037efe strb r3, [r5]                                     |     *(r5) = r3;
    0x00037f00 mov r2, r6                                        |     r2 = r6;
    0x00037f02 movs r0, 0                                        |     r0 = 0;
    0x00037f04 add r1, pc                                        |     r1 = 0x6fe36;
    0x00037f06 bl 0x44820                                        |     r0 = zbx_dsprintf ()
    0x00037f0a mov r3, r0                                        |     r3 = r0;
                                                                 | label_59:
    0x00037f0c mov.w r0, -1                                      |     r0 = -1;
    0x00037f10 str.w r3, [r8]                                    |     __asm ("str.w r3, [r8]");
    0x00037f14 b 0x37eb8                                         |     goto label_19;
                                                                 | label_58:
    0x00037f16 blx 0xe158                                        |     fcn_0000e158 ();
    0x00037f1a nop                                               |     
    0x00037f1c subs r5, 0x72                                     |     r5 -= 0x72;
    0x00037f1e movs r2, r0                                       |     r2 = r0;
    0x00037f20 lsls r4, r2, 0xe                                  |     r4 = r2 << 0xe;
    0x00037f22 movs r0, r0                                       |     
    0x00037f24 subs r5, 0x1c                                     |     r5 -= 0x1c;
    0x00037f26 movs r2, r0                                       |     r2 = r0;
    0x00037f28 b 0x377ec                                         |     goto label_20;
                                                                 | label_54:
    0x000381ac ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x000381ae adds r0, 0xec                                     |     r0 += 0xec;
    0x000381b0 mov r5, r1                                        |     r5 = r1;
    0x000381b2 ldr r3, [r3]                                      |     r3 = *(r3);
    0x000381b4 str r3, [r0]                                      |     *(r0) = r3;
    0x000381b6 mov.w r3, 0                                       |     r3 = 0;
    0x000381ba ldr r3, [r4, 0x1c]                                |     r3 = *((r4 + 0x1c));
    0x000381bc cmp r3, 1                                         |     
    0x000381be beq 0x38226                                       |     
                                                                 |     while (r0 == 0) {
    0x000381c0 cmp r5, 0                                         |         
                                                                 |         if (r5 != 0) {
    0x000381c2 bne 0x38238                                       |             goto label_60;
                                                                 |         }
                                                                 | label_21:
    0x000381c4 add r6, sp, 8                                     |         r6 += var_8h;
    0x000381c6 mov r3, r5                                        |         r3 = r5;
    0x000381c8 strd r5, r5, [sp]                                 |         __asm ("strd r5, r5, [sp]");
    0x000381cc movw r2, 0xffe3                                   |         r2 = 0xffe3;
    0x000381d0 ldr r0, [r4]                                      |         r0 = *(r4);
    0x000381d2 mov r1, r6                                        |         r1 = r6;
    0x000381d4 blx 0xe34c                                        |         r0 = fcn_0000e34c ();
    0x000381d8 adds r3, r0, 1                                    |         r3 = r0 + 1;
    0x000381da mov r5, r0                                        |         r5 = r0;
                                                                 |         if (r3 == r0) {
    0x000381dc beq 0x38288                                       |             goto label_61;
                                                                 |         }
                                                                 | label_22:
    0x000381de cmp.w r5, 0x800                                   |         
    0x000381e2 add.w r7, r5, 1                                   |         r7 = r5 + 1;
                                                                 |         if (r5 >= 0x800) {
    0x000381e6 bhs 0x38272                                       |             goto label_62;
                                                                 |         }
                                                                 | label_23:
    0x000381e8 add.w r0, r4, 0x428                               |         r0 = r4 + 0x428;
    0x000381ec movs r3, 0                                        |         r3 = 0;
    0x000381ee str r3, [r4, 0x1c]                                |         *((r4 + 0x1c)) = r3;
                                                                 | label_24:
    0x000381f0 mov r1, r6                                        |         r1 = r6;
    0x000381f2 add r3, sp, 8                                     |         r3 += var_8h;
    0x000381f4 movs r6, 0                                        |         r6 = 0;
    0x000381f6 mov r2, r7                                        |         r2 = r7;
    0x000381f8 str r0, [r4, 0xc]                                 |         *((r4 + 0xc)) = r0;
    0x000381fa strb r6, [r3, r5]                                 |         *((r3 + r5)) = r6;
    0x000381fc blx 0xdf84                                        |         fcn_0000df84 ();
    0x00038200 mov r0, r6                                        |         r0 = r6;
    0x00038202 str r5, [r4, 8]                                   |         *((r4 + 8)) = r5;
                                                                 | label_25:
    0x00038204 ldr r2, [pc, 0xc8]                                |         
    0x00038206 add.w r1, sp, 0xff00                              |         r1 += arg_ff00h;
    0x0003820a ldr r3, [pc, 0xc0]                                |         r3 = *(0x382ce);
    0x0003820c adds r1, 0xec                                     |         r1 += 0xec;
    0x0003820e add r2, pc                                        |         r2 = 0x704e2;
                                                                 | label_28:
    0x00038210 ldr r3, [r2, r3]                                  |         r3 = *((r2 + r3));
    0x00038212 ldr r2, [r3]                                      |         r2 = *(r3);
    0x00038214 ldr r3, [r1]                                      |         r3 = *(r1);
    0x00038216 eors r2, r3                                       |         r2 ^= r3;
    0x00038218 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0003821c bne 0x382c4                                       |             goto label_63;
                                                                 |         }
    0x0003821e add.w sp, sp, 0xff00                              |         
    0x00038222 add sp, 0xf4                                      |         
    0x00038224 pop {r4, r5, r6, r7, pc}                          |         
    0x00038226 ldr r0, [r4, 0xc]                                 |         r0 = *((r4 + 0xc));
    0x00038228 cmp r0, 0                                         |         
    0x0003822a beq 0x381c0                                       |         
                                                                 |     }
    0x0003822c blx 0xde30                                        |     fcn_0000de30 ();
    0x00038230 movs r3, 0                                        |     r3 = 0;
    0x00038232 str r3, [r4, 0xc]                                 |     *((r4 + 0xc)) = r3;
    0x00038234 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00038236 beq 0x381c4                                       |         goto label_21;
                                                                 |     }
                                                                 | label_60:
    0x00038238 movs r7, 0                                        |     r7 = 0;
    0x0003823a mov r0, r5                                        |     r0 = r5;
    0x0003823c str r5, [r4, 0x18]                                |     *((r4 + 0x18)) = r5;
    0x0003823e add r6, sp, 8                                     |     r6 += var_8h;
                                                                 | label_27:
    0x00038240 bl 0x42fc4                                        |     zbx_alarm_on ();
    0x00038244 movw r2, 0xffe3                                   |     r2 = 0xffe3;
    0x00038248 strd r7, r7, [sp]                                 |     __asm ("strd r7, r7, [sp]");
    0x0003824c mov r3, r7                                        |     r3 = r7;
    0x0003824e ldr r0, [r4]                                      |     r0 = *(r4);
    0x00038250 mov r1, r6                                        |     r1 = r6;
    0x00038252 blx 0xe34c                                        |     r0 = fcn_0000e34c ();
    0x00038256 adds r2, r0, 1                                    |     r2 = r0 + 1;
    0x00038258 mov r5, r0                                        |     r5 = r0;
                                                                 |     if (r2 == r0) {
    0x0003825a beq 0x382a2                                       |         goto label_64;
                                                                 |     }
    0x0003825c ldr r3, [r4, 0x18]                                |     r3 = *((r4 + 0x18));
    0x0003825e cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00038260 beq 0x381de                                       |         goto label_22;
                                                                 |     }
    0x00038262 bl 0x42fd4                                        |     zbx_alarm_off ();
    0x00038266 cmp.w r5, 0x800                                   |     
    0x0003826a str r7, [r4, 0x18]                                |     *((r4 + 0x18)) = r7;
    0x0003826c add.w r7, r5, 1                                   |     r7 = r5 + 1;
                                                                 |     if (r5 <= 0x800) {
    0x00038270 blo 0x381e8                                       |         goto label_23;
                                                                 |     }
                                                                 | label_62:
    0x00038272 ldr r0, [pc, 0x60]                                |     
    0x00038274 movs r3, 1                                        |     r3 = 1;
    0x00038276 str r3, [r4, 0x1c]                                |     *((r4 + 0x1c)) = r3;
    0x00038278 movw r1, 0x95b                                    |     r1 = 0x95b;
    0x0003827c ldr r2, [r4, 0xc]                                 |     r2 = *((r4 + 0xc));
    0x0003827e mov r3, r7                                        |     r3 = r7;
    0x00038280 add r0, pc                                        |     r0 = 0x7055a;
    0x00038282 bl 0x40dd8                                        |     zbx_malloc2 ();
    0x00038286 b 0x381f0                                         |     goto label_24;
                                                                 | label_61:
    0x00038288 blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x0003828c ldr r0, [r0]                                      |     r0 = *(r0);
    0x0003828e bl 0x31154                                        |     r0 = strerror_from_system ();
    0x00038292 mov r1, r0                                        |     r1 = r0;
    0x00038294 ldr r0, [pc, 0x40]                                |     
    0x00038296 add r0, pc                                        |     r0 = 0x70572;
    0x00038298 bl 0x363d0                                        |     fcn_000363d0 ();
                                                                 |     do {
                                                                 | label_26:
    0x0003829c mov.w r0, -1                                      |         r0 = -1;
    0x000382a0 b 0x38204                                         |         goto label_25;
                                                                 | label_64:
    0x000382a2 blx 0xe3d4                                        |         r0 = fcn_0000e3d4 ();
    0x000382a6 ldr r0, [r0]                                      |         r0 = *(r0);
    0x000382a8 bl 0x31154                                        |         r0 = strerror_from_system ();
    0x000382ac mov r1, r0                                        |         r1 = r0;
    0x000382ae ldr r0, [pc, 0x2c]                                |         
    0x000382b0 add r0, pc                                        |         r0 = 0x70592;
    0x000382b2 bl 0x363d0                                        |         fcn_000363d0 ();
    0x000382b6 ldr r3, [r4, 0x18]                                |         r3 = *((r4 + 0x18));
    0x000382b8 cmp r3, 0                                         |         
    0x000382ba beq 0x3829c                                       |         
                                                                 |     } while (r3 == 0);
    0x000382bc bl 0x42fd4                                        |     zbx_alarm_off ();
    0x000382c0 str r7, [r4, 0x18]                                |     *((r4 + 0x18)) = r7;
    0x000382c2 b 0x3829c                                         |     goto label_26;
                                                                 | label_63:
    0x000382c4 blx 0xe158                                        |     fcn_0000e158 ();
    0x000382c8 subs r2, 0x36                                     |     r2 -= 0x36;
    0x000382ca movs r2, r0                                       |     r2 = r0;
    0x000382cc lsls r4, r2, 0xe                                  |     r4 = r2 << 0xe;
    0x000382ce movs r0, r0                                       |     
    0x000382d0 subs r1, 0xca                                     |     r1 -= 0xca;
    0x000382d2 movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 >= r0) {
    0x000382d4 bhs 0x38300                                       |         goto label_65;
                                                                 |     }
    0x000382d6 movs r1, r0                                       |     r1 = r0;
                                                                 |     if (r1 < r0) {
    0x000382d8 bls 0x38240                                       |         goto label_27;
                                                                 |     }
    0x000382da movs r1, r0                                       |     r1 = r0;
                                                                 |     if (r1 < r0) {
    0x000382dc bls 0x38210                                       |         goto label_28;
                                                                 |     }
    0x000382de movs r1, r0                                       |     r1 = r0;
                                                                 | label_65:
    0x00038300 movs r0, 0xe                                      |     r0 = 0xe;
    0x00038302 mov r3, ip                                        |     r3 = ip;
    0x00038304 add.w lr, lr, 1                                   |     lr++;
                                                                 | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x3f0a4 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.zbx_variant_convert ()               | void zbx_variant_convert (int16_t arg_824h, int16_t arg1, uint32_t arg2) {
                                                     |     int16_t var_10h;
                                                     |     int16_t var_1ch_2;
                                                     |     int16_t var_81ch;
                                                     |     int16_t var_ch;
                                                     |     int16_t var_80ch;
                                                     |     int16_t var_0h;
                                                     |     int16_t var_24h;
                                                     |     int16_t var_1ch;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
                                                     | label_6:
    0x0003edf4 ldr r2, [pc, 0xa0]                    |     
    0x0003edf6 ldr r3, [pc, 0xa4]                    |     r3 = *(0x3ee9e);
    0x0003edf8 push {r4, r5, r6, lr}                 |     
    0x0003edfa sub.w sp, sp, 0x810                   |     
    0x0003edfe add r2, pc                            |     r2 = 0x7dc9a;
    0x0003ee00 ldr r3, [r2, r3]                      |     
    0x0003ee02 ldr r3, [r3]                          |     r3 = *(0x7dc9a);
    0x0003ee04 str.w r3, [sp, 0x80c]                 |     __asm ("str.w r3, [var_80ch]");
    0x0003ee08 mov.w r3, 0                           |     r3 = 0;
    0x0003ee0c ldrb r3, [r0]                         |     r3 = *(r0);
    0x0003ee0e cmp r3, 2                             |     
                                                     |     if (r3 == 2) {
    0x0003ee10 beq 0x3ee4c                           |         goto label_8;
                                                     |     }
    0x0003ee12 cmp r3, 3                             |     
    0x0003ee14 mov r4, r0                            |     r4 = r0;
                                                     |     if (r3 == 3) {
    0x0003ee16 beq 0x3ee3c                           |         goto label_9;
                                                     |     }
    0x0003ee18 cmp r3, 1                             |     
                                                     |     if (r3 == 1) {
    0x0003ee1a beq 0x3ee50                           |         goto label_10;
                                                     |     }
                                                     | label_0:
    0x0003ee1c mov.w r0, -1                          |     r0 = -1;
                                                     |     do {
                                                     | label_1:
    0x0003ee20 ldr r2, [pc, 0x7c]                    |         
    0x0003ee22 ldr r3, [pc, 0x78]                    |         r3 = *(0x3ee9e);
    0x0003ee24 add r2, pc                            |         r2 = 0x7dcc8;
    0x0003ee26 ldr r3, [r2, r3]                      |         r3 = *(0x7dcc8);
    0x0003ee28 ldr r2, [r3]                          |         r2 = *(0x7dcc8);
    0x0003ee2a ldr.w r3, [sp, 0x80c]                 |         r3 = var_80ch;
    0x0003ee2e eors r2, r3                           |         r2 ^= r3;
    0x0003ee30 mov.w r3, 0                           |         r3 = 0;
                                                     |         if (r2 != r3) {
    0x0003ee34 bne 0x3ee92                           |             goto label_11;
                                                     |         }
    0x0003ee36 add.w sp, sp, 0x810                   |         
    0x0003ee3a pop {r4, r5, r6, pc}                  |         
                                                     | label_9:
    0x0003ee3c ldrd r0, r1, [r0, 8]                  |         __asm ("ldrd r0, r1, [r0, 8]");
    0x0003ee40 bl 0x4c6f4                            |         fcn_0004c6f4 (r0, r1, r2);
    0x0003ee44 movs r3, 2                            |         r3 = 2;
    0x0003ee46 strd r0, r1, [r4, 8]                  |         __asm ("strd r0, r1, [r4, 8]");
    0x0003ee4a strb r3, [r4]                         |         *(r4) = r3;
                                                     | label_8:
    0x0003ee4c movs r0, 0                            |         r0 = 0;
    0x0003ee4e b 0x3ee20                             |         
                                                     |     } while (1);
                                                     | label_10:
    0x0003ee50 add r5, sp, 0xc                       |     r5 += var_ch;
    0x0003ee52 ldr r1, [r0, 8]                       |     r1 = *((r0 + 8));
    0x0003ee54 mov.w r2, 0x800                       |     r2 = 0x800;
    0x0003ee58 mov r0, r5                            |     r0 = r5;
    0x0003ee5a bl 0x4465c                            |     zbx_strlcpy ();
    0x0003ee5e ldr r1, [pc, 0x44]                    |     
    0x0003ee60 mov r0, r5                            |     r0 = r5;
    0x0003ee62 mov r6, sp                            |     r6 = sp;
    0x0003ee64 add r1, pc                            |     r1 = 0x7dd0e;
    0x0003ee66 bl 0x444f4                            |     zbx_rtrim ();
    0x0003ee6a mov r0, r5                            |     r0 = r5;
    0x0003ee6c bl 0x47e24                            |     zbx_trim_float ();
    0x0003ee70 mov r1, r6                            |     r1 = r6;
    0x0003ee72 mov r0, r5                            |     r0 = r5;
    0x0003ee74 bl 0x41798                            |     r0 = is_double ();
    0x0003ee78 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x0003ee7a bne 0x3ee1c                           |         goto label_0;
                                                     |     }
    0x0003ee7c mov r0, r4                            |     r0 = r4;
    0x0003ee7e bl 0x3edc4                            |     zbx_variant_clear ();
    0x0003ee82 ldrd r2, r3, [r6]                     |     __asm ("ldrd r2, r3, [r6]");
    0x0003ee86 movs r1, 2                            |     r1 = 2;
    0x0003ee88 movs r0, 0                            |     r0 = 0;
    0x0003ee8a strb r1, [r4]                         |     *(r4) = r1;
    0x0003ee8c strd r2, r3, [r4, 8]                  |     __asm ("strd r2, r3, [r4, 8]");
    0x0003ee90 b 0x3ee20                             |     goto label_1;
                                                     | label_11:
    0x0003ee92 blx 0xe158                            |     fcn_0000e158 ();
    0x0003ee96 nop                                   |     
    0x0003ee98 ldm r5!, {r1, r3, r4, r6, r7}         |     r1 = *(r5!);
                                                     |     r3 = *((r5! + 4));
                                                     |     r4 = *((r5! + 8));
                                                     |     r6 = *((r5! + 12));
                                                     |     r7 = *((r5! + 16));
    0x0003ee9a movs r1, r0                           |     r1 = r0;
    0x0003ee9c lsls r4, r2, 0xe                      |     r4 = r2 << 0xe;
    0x0003ee9e movs r0, r0                           |     
    0x0003eea0 ldm r5, {r2, r4, r5, r7}              |     r2 = *(r5);
                                                     |     r4 = *((r5 + 4));
                                                     |     r5 = *((r5 + 8));
                                                     |     r7 = *((r5 + 12));
    0x0003eea2 movs r1, r0                           |     r1 = r0;
    0x0003eea4 ldrb r0, [r1, 0x19]                   |     r0 = *((r1 + 0x19));
    0x0003eea6 movs r1, r0                           |     r1 = r0;
                                                     | label_5:
    0x0003eea8 ldr r2, [pc, 0xdc]                    |     
    0x0003eeaa ldr r3, [pc, 0xe0]                    |     r3 = *(0x3ef8e);
    0x0003eeac push {r4, r5, r6, lr}                 |     
    0x0003eeae sub.w sp, sp, 0x820                   |     
    0x0003eeb2 add r2, pc                            |     r2 = 0x7de3e;
    0x0003eeb4 mov r4, r0                            |     r4 = r0;
    0x0003eeb6 ldr r3, [r2, r3]                      |     
    0x0003eeb8 ldr r3, [r3]                          |     r3 = *(0x7de3e);
    0x0003eeba str.w r3, [sp, 0x81c]                 |     __asm ("str.w r3, [var_81ch]");
    0x0003eebe mov.w r3, 0                           |     r3 = 0;
    0x0003eec2 ldrb r3, [r0]                         |     r3 = *(r0);
    0x0003eec4 cmp r3, 2                             |     
                                                     |     if (r3 == 2) {
    0x0003eec6 beq 0x3eef0                           |         goto label_12;
                                                     |     }
    0x0003eec8 cmp r3, 3                             |     
                                                     |     if (r3 == 3) {
    0x0003eeca beq 0x3ef1c                           |         goto label_4;
                                                     |     }
    0x0003eecc cmp r3, 1                             |     
                                                     |     if (r3 == 1) {
    0x0003eece beq 0x3ef20                           |         goto label_13;
                                                     |     }
                                                     |     do {
                                                     | label_2:
    0x0003eed0 mov.w r0, -1                          |         r0 = -1;
                                                     | label_3:
    0x0003eed4 ldr r2, [pc, 0xb8]                    |         
    0x0003eed6 ldr r3, [pc, 0xb4]                    |         r3 = *(0x3ef8e);
    0x0003eed8 add r2, pc                            |         r2 = 0x7de6c;
    0x0003eeda ldr r3, [r2, r3]                      |         r3 = *(0x7de6c);
    0x0003eedc ldr r2, [r3]                          |         r2 = *(0x7de6c);
    0x0003eede ldr.w r3, [sp, 0x81c]                 |         r3 = var_81ch;
    0x0003eee2 eors r2, r3                           |         r2 ^= r3;
    0x0003eee4 mov.w r3, 0                           |         r3 = 0;
                                                     |         if (r2 != r3) {
    0x0003eee8 bne 0x3ef7c                           |             goto label_14;
                                                     |         }
    0x0003eeea add.w sp, sp, 0x820                   |         
    0x0003eeee pop {r4, r5, r6, pc}                  |         
                                                     | label_12:
    0x0003eef0 vldr d16, [r0, 8]                     |         __asm ("vldr d16, [r0, 8]");
    0x0003eef4 vcmpe.f64 d16, 0                      |         __asm ("vcmpe.f64 d16, 0");
    0x0003eef8 vmrs apsr_nzcv, fpscr                 |         __asm ("vmrs apsr_nzcv, fpscr");
    0x0003eefc bmi 0x3eed0                           |         
                                                     |     } while (r2 < r3);
    0x0003eefe vldr d17, [pc, 0x80]                  |     __asm ("vldr d17, [0x0003ef84]");
    0x0003ef02 vcmpe.f64 d16, d17                    |     __asm ("vcmpe.f64 d16, d17");
    0x0003ef06 vmrs apsr_nzcv, fpscr                 |     __asm ("vmrs apsr_nzcv, fpscr");
                                                     |     if (r2 >= r3) {
    0x0003ef0a bge 0x3eed0                           |         goto label_2;
                                                     |     }
    0x0003ef0c vmov r0, r1, d16                      |     __asm ("vmov r0, r1, d16");
    0x0003ef10 bl 0x4c7a0                            |     fcn_0004c7a0 (r0, r1);
    0x0003ef14 movs r3, 3                            |     r3 = 3;
    0x0003ef16 strd r0, r1, [r4, 8]                  |     __asm ("strd r0, r1, [r4, 8]");
    0x0003ef1a strb r3, [r4]                         |     *(r4) = r3;
                                                     | label_4:
    0x0003ef1c movs r0, 0                            |     r0 = 0;
    0x0003ef1e b 0x3eed4                             |     goto label_3;
                                                     | label_13:
    0x0003ef20 add r5, sp, 0x1c                      |     r5 += var_1ch_2;
    0x0003ef22 mov.w r2, 0x800                       |     r2 = 0x800;
    0x0003ef26 ldr r1, [r0, 8]                       |     r1 = *((r0 + 8));
    0x0003ef28 mov r0, r5                            |     r0 = r5;
    0x0003ef2a bl 0x4465c                            |     zbx_strlcpy ();
    0x0003ef2e ldr r1, [pc, 0x64]                    |     
    0x0003ef30 mov r0, r5                            |     r0 = r5;
    0x0003ef32 add r6, sp, 0x10                      |     r6 += var_10h;
    0x0003ef34 add r1, pc                            |     r1 = 0x7dece;
    0x0003ef36 bl 0x444f4                            |     zbx_rtrim ();
    0x0003ef3a mov r0, r5                            |     r0 = r5;
    0x0003ef3c bl 0x47e1c                            |     zbx_trim_integer ();
    0x0003ef40 mov r0, r5                            |     r0 = r5;
    0x0003ef42 bl 0x4448c                            |     del_zeros ();
    0x0003ef46 vmov.i8 d17, 0xff                     |     __asm ("vmov.i8 d17, 0xff");
    0x0003ef4a movs r3, 8                            |     r3 = 8;
    0x0003ef4c vmov.i32 d16, 0                       |     __asm ("vmov.i32 d16, 0");
    0x0003ef50 mov r2, r6                            |     r2 = r6;
    0x0003ef52 mov r0, r5                            |     r0 = r5;
    0x0003ef54 mov.w r1, -1                          |     r1 = -1;
    0x0003ef58 vstr d17, [sp, 8]                     |     __asm ("vstr d17, [sp, 8]");
    0x0003ef5c vstr d16, [sp]                        |     __asm ("vstr d16, [sp]");
    0x0003ef60 bl 0x419a8                            |     r0 = is_uint_n_range ();
    0x0003ef64 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x0003ef66 bne 0x3eed0                           |         goto label_2;
                                                     |     }
    0x0003ef68 mov r0, r4                            |     r0 = r4;
    0x0003ef6a bl 0x3edc4                            |     zbx_variant_clear ();
    0x0003ef6e ldrd r2, r3, [sp, 0x10]               |     __asm ("ldrd r2, r3, [var_10h]");
    0x0003ef72 movs r1, 3                            |     r1 = 3;
    0x0003ef74 strb r1, [r4]                         |     *(r4) = r1;
    0x0003ef76 strd r2, r3, [r4, 8]                  |     __asm ("strd r2, r3, [r4, 8]");
    0x0003ef7a b 0x3ef1c                             |     goto label_4;
                                                     | label_14:
    0x0003ef7c blx 0xe158                            |     r0 = fcn_0000e158 ();
    0x0003ef80 movs r0, r0                           |     
    0x0003ef82 movs r0, r0                           |     
    0x0003ef84 movs r0, r0                           |     
    0x0003ef86 mvns r0, r6                           |     r0 = ~r6;
    0x0003ef88 ldm r5, {r1, r2, r5}                  |     r1 = *(r5);
                                                     |     r2 = *((r5 + 4));
                                                     |     r5 = *((r5 + 8));
    0x0003ef8a movs r1, r0                           |     r1 = r0;
    0x0003ef8c lsls r4, r2, 0xe                      |     r4 = r2 << 0xe;
    0x0003ef8e movs r0, r0                           |     
    0x0003ef90 invalid                               |     
    0x0003f0a4 ldr r2, [pc, 0xd4]                    |     
    0x0003f0a6 ldr r3, [pc, 0xd8]                    |     r3 = *(0x3f182);
    0x0003f0a8 push {r4, r5, lr}                     |     
    0x0003f0aa sub sp, 0x24                          |     
    0x0003f0ac add r2, pc                            |     r2 = 0x7e22c;
    0x0003f0ae mov r5, r0                            |     r5 = r0;
    0x0003f0b0 ldr r3, [r2, r3]                      |     
    0x0003f0b2 ldr r3, [r3]                          |     r3 = *(0x7e22c);
    0x0003f0b4 str r3, [sp, 0x1c]                    |     var_1ch = r3;
    0x0003f0b6 mov.w r3, 0                           |     r3 = 0;
    0x0003f0ba cmp r1, 3                             |     
                                                     |     if (r1 <= 3) {
    0x0003f0bc bhi 0x3f10c                           |         
                                                     |         /* switch table (4 cases) at 0x3f0c2 */
    0x0003f0be tbb [pc, r1]                          |         __asm ("tbb [0x0003f0c4]");
    0x0003f0c6 ldr r2, [pc, 0xbc]                    |         
    0x0003f0c8 ldr r3, [pc, 0xb4]                    |         r3 = *(0x3f180);
    0x0003f0ca add r2, pc                            |         r2 = 0x7e254;
    0x0003f0cc ldr r3, [r2, r3]                      |         r3 = *(0x7e254);
    0x0003f0ce ldr r2, [r3]                          |         r2 = *(0x7e254);
    0x0003f0d0 ldr r3, [sp, 0x1c]                    |         r3 = var_1ch;
    0x0003f0d2 eors r2, r3                           |         r2 ^= r3;
    0x0003f0d4 mov.w r3, 0                           |         r3 = 0;
                                                     |         if (r2 != r3) {
    0x0003f0d8 bne 0x3f176                           |             goto label_15;
                                                     |         }
    0x0003f0da add sp, 0x24                          |         
    0x0003f0dc pop.w {r4, r5, lr}                    |         
    0x0003f0e0 b 0x3eea8                             |         goto label_5;
    0x0003f0e2 ldr r2, [pc, 0xa4]                    |         
    0x0003f0e4 ldr r3, [pc, 0x98]                    |         r3 = *(0x3f180);
    0x0003f0e6 add r2, pc                            |         r2 = 0x7e274;
    0x0003f0e8 ldr r3, [r2, r3]                      |         r3 = *(0x7e274);
    0x0003f0ea ldr r2, [r3]                          |         r2 = *(0x7e274);
    0x0003f0ec ldr r3, [sp, 0x1c]                    |         r3 = var_1ch;
    0x0003f0ee eors r2, r3                           |         r2 ^= r3;
    0x0003f0f0 mov.w r3, 0                           |         r3 = 0;
                                                     |         if (r2 != r3) {
    0x0003f0f4 bne 0x3f176                           |             goto label_15;
                                                     |         }
    0x0003f0f6 add sp, 0x24                          |         
    0x0003f0f8 pop.w {r4, r5, lr}                    |         
    0x0003f0fc b 0x3edf4                             |         goto label_6;
    0x0003f0fe ldrb r3, [r0]                         |         r3 = *(r0);
    0x0003f100 cmp r3, 2                             |         
                                                     |         if (r3 == 2) {
    0x0003f102 beq 0x3f152                           |             goto label_16;
                                                     |         }
    0x0003f104 cmp r3, 3                             |         
                                                     |         if (r3 == 3) {
    0x0003f106 beq 0x3f132                           |             goto label_17;
                                                     |         }
    0x0003f108 cmp r3, 1                             |         
                                                     |         if (r3 == 1) {
    0x0003f10a beq 0x3f14e                           |             goto label_18;
                                                     |         }
                                                     |     }
    0x0003f10c mov.w r0, -1                          |     r0 = -1;
    0x0003f110 b 0x3f11a                             |     goto label_19;
    0x0003f112 mov r4, r1                            |     r4 = r1;
    0x0003f114 bl 0x3edc4                            |     zbx_variant_clear ();
    0x0003f118 mov r0, r4                            |     r0 = r4;
                                                     |     do {
                                                     | label_19:
    0x0003f11a ldr r2, [pc, 0x70]                    |         
    0x0003f11c ldr r3, [pc, 0x60]                    |         r3 = *(0x3f180);
    0x0003f11e add r2, pc                            |         r2 = 0x7e2b0;
    0x0003f120 ldr r3, [r2, r3]                      |         r3 = *(0x7e2b0);
    0x0003f122 ldr r2, [r3]                          |         r2 = *(0x7e2b0);
    0x0003f124 ldr r3, [sp, 0x1c]                    |         r3 = var_1ch;
    0x0003f126 eors r2, r3                           |         r2 ^= r3;
    0x0003f128 mov.w r3, 0                           |         r3 = 0;
                                                     |         if (r2 != r3) {
    0x0003f12c bne 0x3f176                           |             goto label_15;
                                                     |         }
    0x0003f12e add sp, 0x24                          |         
    0x0003f130 pop {r4, r5, pc}                      |         
                                                     | label_17:
    0x0003f132 ldr r1, [pc, 0x5c]                    |         
    0x0003f134 ldrd r2, r3, [r0, 8]                  |         __asm ("ldrd r2, r3, [r0, 8]");
    0x0003f138 movs r0, 0                            |         r0 = 0;
    0x0003f13a add r1, pc                            |         r1 = 0x7e2d0;
    0x0003f13c bl 0x44820                            |         r0 = zbx_dsprintf ()
    0x0003f140 mov r4, r0                            |         r4 = r0;
                                                     | label_7:
    0x0003f142 mov r0, r5                            |         r0 = r5;
    0x0003f144 bl 0x3edc4                            |         zbx_variant_clear ();
    0x0003f148 movs r3, 1                            |         r3 = 1;
    0x0003f14a str r4, [r5, 8]                       |         *((r5 + 8)) = r4;
    0x0003f14c strb r3, [r5]                         |         *(r5) = r3;
                                                     | label_18:
    0x0003f14e movs r0, 0                            |         r0 = 0;
    0x0003f150 b 0x3f11a                             |         
                                                     |     } while (1);
                                                     | label_16:
    0x0003f152 vldr d0, [r0, 8]                      |     __asm ("vldr d0, [r0, 8]");
    0x0003f156 movs r1, 0x19                         |     r1 = 0x19;
    0x0003f158 mov r0, sp                            |     r0 = sp;
    0x0003f15a bl 0x480d8                            |     r0 = zbx_print_double ();
    0x0003f15e mov r3, r0                            |     r3 = r0;
    0x0003f160 ldr r0, [pc, 0x30]                    |     
    0x0003f162 movs r2, 0                            |     r2 = 0;
    0x0003f164 mov.w r1, 0x104                       |     r1 = 0x104;
    0x0003f168 add r0, pc                            |     r0 = 0x7e300;
    0x0003f16a bl 0x40ed8                            |     r0 = zbx_strdup2 ();
    0x0003f16e mov r4, r0                            |     r4 = r0;
    0x0003f170 bl 0x4448c                            |     del_zeros ();
    0x0003f174 b 0x3f142                             |     goto label_7;
                                                     | label_15:
    0x0003f176 blx 0xe158                            |     fcn_0000e158 ();
    0x0003f17a nop                                   |     
    0x0003f17c ldm r3, {r2, r3, r5}                  |     r2 = *(r3);
                                                     |     r3 = *((r3 + 4));
                                                     |     r5 = *((r3 + 8));
    0x0003f17e movs r1, r0                           |     r1 = r0;
    0x0003f180 lsls r4, r2, 0xe                      |     r4 = r2 << 0xe;
    0x0003f182 movs r0, r0                           |     
    0x0003f184 ldm r3, {r1, r2, r3}                  |     r1 = *(r3);
                                                     |     r2 = *((r3 + 4));
                                                     |     r3 = *((r3 + 8));
    0x0003f186 movs r1, r0                           |     r1 = r0;
    0x0003f188 ldm r2!, {r1, r4, r5, r6, r7}         |     r1 = *(r2!);
                                                     |     r4 = *((r2! + 4));
                                                     |     r5 = *((r2! + 8));
                                                     |     r6 = *((r2! + 12));
                                                     |     r7 = *((r2! + 16));
    0x0003f18a movs r1, r0                           |     r1 = r0;
    0x0003f18c ldm r2!, {r1, r3, r4, r5, r7}         |     r1 = *(r2!);
                                                     |     r3 = *((r2! + 4));
                                                     |     r4 = *((r2! + 8));
                                                     |     r5 = *((r2! + 12));
                                                     |     r7 = *((r2! + 16));
    0x0003f18e movs r1, r0                           |     r1 = r0;
    0x0003f190 adds r4, 0x46                         |     r4 += 0x46;
    0x0003f192 movs r1, r0                           |     r1 = r0;
    0x0003f194 ldrb r0, [r7, 0xc]                    |     r0 = *((r7 + 0xc));
    0x0003f196 movs r1, r0                           |     r1 = r0;
                                                     | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x2dc94 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.zbx_vfs_file_info ()             | void zbx_vfs_file_info (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                 |     int16_t var_0h;
                                                 |     int16_t var_4h;
                                                 |     int16_t var_ch;
                                                 |     int16_t var_10h;
                                                 |     int16_t var_14h;
                                                 |     int16_t var_18h;
                                                 |     int16_t var_20h;
                                                 |     int16_t var_68h;
                                                 |     int16_t var_78h;
                                                 |     int16_t var_80h;
                                                 |     int16_t var_84h;
                                                 |     int16_t var_d4h;
                                                 |     int16_t var_ech;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
                                                 |     r2 = arg3;
                                                 |     r3 = arg4;
    0x0002dc94 svcmi 0xf0e92d                    |     __asm ("svcmi 0xf0e92d");
    0x0002dc98 mov r7, r2                        |     r7 = r2;
    0x0002dc9a sub sp, 0xf4                      |     
    0x0002dc9c ldr.w r2, [pc, 0x4dc]             |     
    0x0002dca0 movs r5, 0                        |     r5 = 0;
    0x0002dca2 mov r4, r1                        |     r4 = r1;
    0x0002dca4 str r3, [sp, 0xc]                 |     var_ch = r3;
    0x0002dca6 add r1, sp, 0x68                  |     r1 += var_68h;
    0x0002dca8 ldr.w r3, [pc, 0x4d4]             |     r3 = *(0x2e180);
    0x0002dcac add r2, pc                        |     r2 = 0x5be2c;
    0x0002dcae mov r6, r0                        |     r6 = r0;
    0x0002dcb0 ldr r3, [r2, r3]                  |     
    0x0002dcb2 ldr r3, [r3]                      |     r3 = *(0x5be2c);
    0x0002dcb4 str r3, [sp, 0xec]                |     var_ech = r3;
    0x0002dcb6 mov.w r3, 0                       |     r3 = 0;
    0x0002dcba strd r5, r5, [sp, 0x10]           |     __asm ("strd r5, r5, [var_14h]");
    0x0002dcbe str r5, [sp, 0x18]                |     var_18h = r5;
    0x0002dcc0 blx 0xe1c4                        |     r0 = fcn_0000e1c4 ();
    0x0002dcc4 cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x0002dcc6 bne.w 0x2e156                     |         goto label_3;
                                                 |     }
    0x0002dcca ldr r1, [sp, 0x78]                |     r1 = var_78h;
    0x0002dccc mov r2, r0                        |     r2 = r0;
    0x0002dcce and r1, r1, 0xf000                |     r1 &= 0xf000;
    0x0002dcd2 cmp.w r1, 0xa000                  |     
                                                 |     if (r1 == 0xa000) {
    0x0002dcd6 beq.w 0x2e058                     |         goto label_4;
                                                 |     }
    0x0002dcda invalid                           |     
    0x0002dcdc ldr r7, [pc, 0]                   |     r7 = *(0x0002dce0);
                                                 |     if (r1 == 0xa000) {
    0x0002dcde beq.w 0x2e08a                     |         goto label_5;
                                                 |     }
    0x0002dce2 cmp.w r1, 0x4000                  |     
                                                 |     if (r1 == 0x4000) {
    0x0002dce6 beq.w 0x2e106                     |         goto label_6;
                                                 |     }
    0x0002dcea cmp.w r1, 0xc000                  |     
                                                 |     if (r1 == 0xc000) {
    0x0002dcee beq.w 0x2e06c                     |         goto label_7;
                                                 |     }
    0x0002dcf2 cmp.w r1, 0x6000                  |     
                                                 |     if (r1 == 0x6000) {
    0x0002dcf6 beq.w 0x2e11a                     |         goto label_8;
                                                 |     }
    0x0002dcf8 strh r0, [r2, 0x10]               |     *((r2 + 0x10)) = r0;
    0x0002dcfa cmp.w r1, 0x2000                  |     
                                                 |     if (r1 == 0x2000) {
    0x0002dcfe beq.w 0x2e12e                     |         goto label_9;
                                                 |     }
    0x0002dd02 cmp.w r1, 0x1000                  |     
    0x0002dd06 it ne                             |     
                                                 |     if (r1 == 0x1000) {
    0x0002dd08 movne r5, r0                      |         r5 = r0;
                                                 |     }
                                                 |     if (r1 == 0x1000) {
    0x0002dd0a beq.w 0x2e142                     |         goto label_10;
                                                 |     }
                                                 |     do {
                                                 | label_0:
    0x0002dd0e add r3, sp, 0x18                  |         r3 += var_18h;
    0x0002dd10 add r2, sp, 0x14                  |         r2 += var_14h;
    0x0002dd12 add r1, sp, 0x10                  |         r1 += var_10h;
    0x0002dd14 mov r0, r6                        |         r0 = r6;
    0x0002dd16 bl 0x2c478                        |         r0 = fcn_0002c478 (r0, r1, r2, r3);
    0x0002dd1a mov r8, r0                        |         r8 = r0;
    0x0002dd1c cmp r0, 0                         |         
                                                 |         if (r0 == 0) {
    0x0002dd1e bne.w 0x2dfc4                     |             
    0x0002dd22 mov r0, r6                        |             r0 = r6;
    0x0002dd24 add r2, sp, 0x20                  |             r2 += var_20h;
    0x0002dd26 movs r1, 1                        |             r1 = 1;
    0x0002dd28 bl 0x3fbe0                        |             zbx_get_file_time ();
    0x0002dd2c ldr.w fp, [sp, 0x10]              |             fp = var_10h;
    0x0002dd30 mov r6, r0                        |             r6 = r0;
    0x0002dd32 ldrd sl, sb, [sp, 0x14]           |             __asm ("ldrd sl, sb, [var_18h]");
    0x0002dd36 cmp r0, 0                         |             
                                                 |             if (r0 != 0) {
    0x0002dd38 bne.w 0x2e0e6                     |                 goto label_11;
                                                 |             }
    0x0002dd3c cmp r7, 0                         |             
                                                 |             if (r7 != 0) {
    0x0002dd3e bne.w 0x2e080                     |                 goto label_12;
                                                 |             }
                                                 | label_1:
    0x0002dd42 ldr.w r1, [pc, 0x440]             |             
    0x0002dd46 movs r3, 1                        |             r3 = 1;
    0x0002dd48 mov r2, fp                        |             r2 = fp;
    0x0002dd4a mov r0, r4                        |             r0 = r4;
    0x0002dd4c add r1, pc                        |             r1 = 0x5bed6;
    0x0002dd4e bl 0x3ac9c                        |             zbx_json_addstring ();
    0x0002dd52 ldr.w r1, [pc, 0x434]             |             
    0x0002dd56 movs r3, 1                        |             r3 = 1;
    0x0002dd58 mov r2, sb                        |             r2 = sb;
    0x0002dd5a mov r0, r4                        |             r0 = r4;
    0x0002dd5c add r1, pc                        |             r1 = 0x5beea;
    0x0002dd5e bl 0x3ac9c                        |             zbx_json_addstring ();
    0x0002dd62 ldr.w r1, [pc, 0x428]             |             
    0x0002dd66 movs r3, 1                        |             r3 = 1;
    0x0002dd68 mov r2, sl                        |             r2 = sl;
    0x0002dd6a mov r0, r4                        |             r0 = r4;
    0x0002dd6c add r1, pc                        |             r1 = 0x5befe;
    0x0002dd6e bl 0x3ac9c                        |             zbx_json_addstring ();
    0x0002dd72 ldr.w r1, [pc, 0x41c]             |             
    0x0002dd76 mov r0, r4                        |             r0 = r4;
    0x0002dd78 movs r3, 1                        |             r3 = 1;
    0x0002dd7a mov r2, r5                        |             r2 = r5;
    0x0002dd7c add r1, pc                        |             r1 = 0x5bf12;
    0x0002dd7e bl 0x3ac9c                        |             zbx_json_addstring ();
    0x0002dd82 ldr r0, [sp, 0x80]                |             r0 = var_80h;
    0x0002dd84 blx 0xdf9c                        |             r0 = fcn_0000df9c ();
    0x0002dd88 cmp r0, 0                         |             
                                                 |             if (r0 == 0) {
    0x0002dd8a beq.w 0x2e0c2                     |                 goto label_13;
                                                 |             }
    0x0002dd8e ldr.w r1, [pc, 0x404]             |             
    0x0002dd92 movs r3, 1                        |             r3 = 1;
    0x0002dd94 ldr r2, [r0]                      |             r2 = *(r0);
    0x0002dd96 mov r0, r4                        |             r0 = r4;
    0x0002dd98 add r1, pc                        |             r1 = 0x5bf32;
    0x0002dd9a bl 0x3ac9c                        |             zbx_json_addstring ();
                                                 | label_2:
    0x0002dd9e ldr r0, [sp, 0x84]                |             r0 = var_84h;
    0x0002dda0 blx 0xe1b8                        |             r0 = fcn_0000e1b8 ();
    0x0002dda4 cmp r0, 0                         |             
                                                 |             if (r0 == 0) {
    0x0002dda6 beq.w 0x2e09e                     |                 goto label_14;
                                                 |             }
    0x0002ddaa ldr r1, [pc, 0x3ec]               |             
    0x0002ddac movs r3, 1                        |             r3 = 1;
    0x0002ddae ldr r2, [r0]                      |             r2 = *(r0);
    0x0002ddb0 mov r0, r4                        |             r0 = r4;
    0x0002ddb2 add r1, pc                        |             r1 = 0x5bf50;
    0x0002ddb4 bl 0x3ac9c                        |             zbx_json_addstring ();
                                                 |         }
    0x0002dfc4 ldr r3, [pc, 0x224]               |         
    0x0002dfc6 movs r2, 0                        |         r2 = 0;
    0x0002dfc8 ldr r0, [pc, 0x224]               |         
    0x0002dfca mov.w r1, 0x648                   |         r1 = 0x648;
    0x0002dfce mov.w r6, -1                      |         r6 = -1;
    0x0002dfd2 add r3, pc                        |         r3 = 0x5c1c2;
    0x0002dfd4 add r0, pc                        |         r0 = 0x5c1c8;
    0x0002dfd6 bl 0x40ed8                        |         zbx_strdup2 ();
    0x0002dfda ldr r3, [sp, 0xc]                 |         r3 = var_ch;
    0x0002dfdc ldr.w fp, [sp, 0x10]              |         fp = var_10h;
    0x0002dfe0 ldr.w sb, [sp, 0x18]              |         sb = var_18h;
    0x0002dfe4 ldr.w sl, [sp, 0x14]              |         sl = var_14h;
    0x0002dfe8 str r0, [r3]                      |         *(r3) = r0;
    0x0002dfea b 0x2df7a                         |         void (*0x2df7a)() ();
                                                 | label_4:
    0x0002e058 ldr r3, [pc, 0x1b0]               |         
    0x0002e05a mov.w r1, 0x638                   |         r1 = 0x638;
    0x0002e05e ldr r0, [pc, 0x1b0]               |         
    0x0002e060 add r3, pc                        |         r3 = 0x5c270;
    0x0002e062 add r0, pc                        |         r0 = 0x5c278;
    0x0002e064 bl 0x40ed8                        |         r0 = zbx_strdup2 ();
    0x0002e068 mov r5, r0                        |         r5 = r0;
    0x0002e06a b 0x2dd0e                         |         
                                                 |     } while (1);
                                                 | label_7:
    0x0002e06c ldr r3, [pc, 0x1a4]               |     
    0x0002e06e movw r1, 0x63e                    |     r1 = 0x63e;
    0x0002e072 ldr r0, [pc, 0x1a4]               |     
    0x0002e074 add r3, pc                        |     r3 = 0x5c28c;
    0x0002e076 add r0, pc                        |     r0 = 0x5c294;
    0x0002e078 bl 0x40ed8                        |     r0 = zbx_strdup2 ();
    0x0002e07c mov r5, r0                        |     r5 = r0;
    0x0002e07e b 0x2dd0e                         |     goto label_0;
                                                 | label_12:
    0x0002e080 mov r1, r0                        |     r1 = r0;
    0x0002e082 mov r0, r4                        |     r0 = r4;
    0x0002e084 bl 0x3ac94                        |     zbx_json_addobject ();
    0x0002e088 b 0x2dd42                         |     goto label_1;
                                                 | label_5:
    0x0002e08a ldr r3, [pc, 0x190]               |     
    0x0002e08c movw r1, 0x63a                    |     r1 = 0x63a;
    0x0002e090 ldr r0, [pc, 0x18c]               |     
    0x0002e092 add r3, pc                        |     r3 = 0x5c2b4;
    0x0002e094 add r0, pc                        |     r0 = 0x5c2b8;
    0x0002e096 bl 0x40ed8                        |     r0 = zbx_strdup2 ();
    0x0002e09a mov r5, r0                        |     r5 = r0;
    0x0002e09c b 0x2dd0e                         |     goto label_0;
                                                 | label_14:
    0x0002e09e ldr r3, [sp, 0x84]                |     r3 = var_84h;
                                                 | label_13:
    0x0002e0c2 ldr r3, [sp, 0x80]                |     r3 = var_80h;
    0x0002e0c4 add r7, sp, 0xd4                  |     r7 += var_d4h;
    0x0002e0c6 ldr r2, [pc, 0x164]               |     
    0x0002e0c8 movs r1, 0x15                     |     r1 = 0x15;
    0x0002e0ca str r0, [sp, 4]                   |     var_4h = r0;
    0x0002e0cc mov r0, r7                        |     r0 = r7;
    0x0002e0ce str r3, [sp]                      |     *(sp) = r3;
    0x0002e0d0 add r2, pc                        |     r2 = 0x5c302;
    0x0002e0d2 bl 0x43f38                        |     zbx_snprintf ();
    0x0002e0d6 ldr r1, [pc, 0x158]               |     
    0x0002e0d8 mov r2, r7                        |     r2 = r7;
    0x0002e0da movs r3, 1                        |     r3 = 1;
    0x0002e0dc mov r0, r4                        |     r0 = r4;
    0x0002e0de add r1, pc                        |     r1 = 0x5c314;
    0x0002e0e0 bl 0x3ac9c                        |     zbx_json_addstring ();
    0x0002e0e4 b 0x2dd9e                         |     goto label_2;
                                                 | label_11:
    0x0002e0e6 blx 0xe3d4                        |     r0 = fcn_0000e3d4 ();
    0x0002e0ea ldr r0, [r0]                      |     r0 = *(r0);
    0x0002e0ec mov.w r6, -1                      |     r6 = -1;
    0x0002e0f0 bl 0x30b74                        |     zbx_strerror ();
    0x0002e0f4 ldr r1, [pc, 0x13c]               |     
    0x0002e0f6 mov r2, r0                        |     r2 = r0;
    0x0002e0f8 mov r0, r8                        |     r0 = r8;
    0x0002e0fa add r1, pc                        |     r1 = 0x5c332;
    0x0002e0fc bl 0x44820                        |     zbx_dsprintf ()
    0x0002e100 ldr r3, [sp, 0xc]                 |     r3 = var_ch;
    0x0002e102 str r0, [r3]                      |     *(r3) = r0;
    0x0002e104 b 0x2df7a                         |     void (*0x2df7a)() ();
                                                 | label_6:
    0x0002e106 ldr r3, [pc, 0x130]               |     
    0x0002e108 movw r1, 0x63c                    |     r1 = 0x63c;
    0x0002e10c ldr r0, [pc, 0x12c]               |     
    0x0002e10e add r3, pc                        |     r3 = 0x5c34c;
    0x0002e110 add r0, pc                        |     r0 = 0x5c350;
    0x0002e112 bl 0x40ed8                        |     r0 = zbx_strdup2 ();
    0x0002e116 mov r5, r0                        |     r5 = r0;
    0x0002e118 b 0x2dd0e                         |     goto label_0;
                                                 | label_8:
    0x0002e11a ldr r3, [pc, 0x124]               |     
    0x0002e11c mov.w r1, 0x640                   |     r1 = 0x640;
    0x0002e120 ldr r0, [pc, 0x120]               |     
    0x0002e122 add r3, pc                        |     r3 = 0x5c368;
    0x0002e124 add r0, pc                        |     r0 = 0x5c36c;
    0x0002e126 bl 0x40ed8                        |     r0 = zbx_strdup2 ();
    0x0002e12a mov r5, r0                        |     r5 = r0;
    0x0002e12c b 0x2dd0e                         |     goto label_0;
                                                 | label_9:
    0x0002e12e ldr r3, [pc, 0x118]               |     
    0x0002e130 movw r1, 0x642                    |     r1 = 0x642;
    0x0002e134 ldr r0, [pc, 0x114]               |     
    0x0002e136 add r3, pc                        |     r3 = 0x5c384;
    0x0002e138 add r0, pc                        |     r0 = 0x5c388;
    0x0002e13a bl 0x40ed8                        |     r0 = zbx_strdup2 ();
    0x0002e13e mov r5, r0                        |     r5 = r0;
    0x0002e140 b 0x2dd0e                         |     goto label_0;
                                                 | label_10:
    0x0002e142 ldr r3, [pc, 0x10c]               |     
    0x0002e144 movw r1, 0x644                    |     r1 = 0x644;
    0x0002e148 ldr r0, [pc, 0x108]               |     
    0x0002e14a add r3, pc                        |     r3 = 0x5c3a0;
    0x0002e14c add r0, pc                        |     r0 = 0x5c3a4;
    0x0002e14e bl 0x40ed8                        |     zbx_strdup2 ();
    0x0002e150 cdp2 p6, 0xc, c4, c3, c5, 0       |     __asm ("cdp2 p6, 0xc, c4, c3, c5, 0");
    0x0002e154 b 0x2dd0e                         |     goto label_0;
                                                 | label_3:
    0x0002e156 blx 0xe3d4                        |     r0 = fcn_0000e3d4 ();
    0x0002e15a ldr r0, [r0]                      |     r0 = *(r0);
    0x0002e15c mov.w r6, -1                      |     r6 = -1;
    0x0002e160 bl 0x30b74                        |     zbx_strerror ();
    0x0002e164 ldr r1, [pc, 0xf0]                |     
    0x0002e166 mov r2, r0                        |     r2 = r0;
    0x0002e168 mov r0, r5                        |     r0 = r5;
    0x0002e16a add r1, pc                        |     r1 = 0x5c3c6;
    0x0002e16c bl 0x44820                        |     zbx_dsprintf ()
    0x0002e170 ldr r3, [sp, 0xc]                 |     r3 = var_ch;
    0x0002e172 str r0, [r3]                      |     *(r3) = r0;
    0x0002e174 b 0x2dfa6                         |     return void (*0x2dfa6)() ();
                                                 | }

[*] Function sprintf used 212 times zabbix_agentd