[*] Binary protection state of zabbix_agentd

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


[*] Function strcpy tear down of zabbix_agentd

    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x31348 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00031348 ()                                      | void fcn_00031348 (int16_t arg1) {
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     r0 = arg1;
    0x00031348 ldr r2, [pc, 0x1c0]                               |     
    0x0003134a ldr r3, [pc, 0x1c4]                               |     r3 = *(0x31512);
    0x0003134c push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00031350 sub sp, 0x1c                                      |     
    0x00031352 add r2, pc                                        |     r2 = 0x62862;
    0x00031354 movs r4, 0                                        |     r4 = 0;
    0x00031356 ldr r3, [r2, r3]                                  |     
    0x00031358 ldr r3, [r3]                                      |     r3 = imp.__environ;
    0x0003135a str r3, [sp, 0x14]                                |     var_14h = r3;
    0x0003135c mov.w r3, 0                                       |     r3 = 0;
    0x00031360 ldr r3, [r0, 4]                                   |     r3 = *((r0 + 4));
    0x00031362 strd r4, r4, [sp, 8]                              |     __asm ("strd r4, r4, [var_8h]");
    0x00031366 str r4, [sp, 0x10]                                |     var_10h = r4;
    0x00031368 cmp r3, r4                                        |     
    0x0003136a it le                                             |     
                                                                 |     if (r3 > r4) {
    0x0003136c movle r0, r4                                      |         r0 = r4;
                                                                 |     }
                                                                 |     if (r3 <= r4) {
    0x0003136e ble 0x313b6                                       |         goto label_2;
                                                                 |     }
    0x00031370 ldr r3, [r0]                                      |     r3 = *(r0);
    0x00031372 mov r5, r0                                        |     r5 = r0;
    0x00031374 ldr.w sl, [pc, 0x19c]                             |     sl = *(0x00031514);
    0x00031378 add.w fp, sp, 0x10                                |     
    0x0003137c ldr.w sb, [pc, 0x198]                             |     
    0x00031380 add.w r8, sp, 0xc                                 |     r8 += var_ch;
    0x00031384 ldr r6, [r3]                                      |     r6 = *(r3);
    0x00031386 add r7, sp, 8                                     |     r7 += var_8h;
    0x00031388 ldr r3, [pc, 0x190]                               |     
    0x0003138a add sl, pc                                        |     sl += pc;
    0x0003138c add sb, pc                                        |     sb = 0x628a8;
    0x0003138e add r3, pc                                        |     r3 = 0x628ae;
    0x00031390 str r3, [sp, 4]                                   |     var_4h = r3;
                                                                 | label_0:
    0x00031392 ldrb r3, [r6]                                     |     r3 = *(r6);
    0x00031394 subs r3, 1                                        |     r3--;
    0x00031396 cmp r3, 0x13                                      |     
                                                                 |     if (r3 > 0x13) {
    0x00031398 bhi.w 0x314fc                                     |         goto label_3;
                                                                 |     }
                                                                 |     /* switch table (20 cases) at 0x313a0 */
    0x0003139c tbb [pc, r3]                                      |     __asm ("tbb case.0x3207a.11");
                                                                 |     do {
    0x000313b4 ldr r0, [sp, 8]                                   |         r0 = var_8h;
                                                                 | label_2:
    0x000313b6 ldr r2, [pc, 0x168]                               |         
    0x000313b8 ldr r3, [pc, 0x154]                               |         r3 = *(0x31510);
    0x000313ba add r2, pc                                        |         r2 = 0x628e0;
    0x000313bc ldr r3, [r2, r3]                                  |         r3 = imp.__environ;
    0x000313be ldr r2, [r3]                                      |         r2 = imp.__environ;
    0x000313c0 ldr r3, [sp, 0x14]                                |         r3 = var_14h;
    0x000313c2 eors r2, r3                                       |         r2 ^= r3;
    0x000313c4 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x000313c8 bne.w 0x314f8                                     |             goto label_4;
                                                                 |         }
    0x000313cc add sp, 0x1c                                      |         
    0x000313ce pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
    0x000313d2 ldr r3, [r6, 4]                                   |         r3 = *((r6 + 4));
    0x000313d4 mov r2, fp                                        |         r2 = fp;
    0x000313d6 mov r1, r8                                        |         r1 = r8;
    0x000313d8 mov r0, r7                                        |         r0 = r7;
    0x000313da bl 0x39168                                        |         zbx_strcpy_alloc ()
                                                                 | label_1:
    0x000313de ldr r3, [r5, 4]                                   |         r3 = *((r5 + 4));
    0x000313e0 adds r4, 1                                        |         r4++;
    0x000313e2 cmp r3, r4                                        |         
    0x000313e4 ble 0x313b4                                       |         
                                                                 |     } while (r3 <= r4);
    0x000313e6 ldr r0, [r5]                                      |     r0 = *(r5);
    0x000313e8 mov r2, fp                                        |     r2 = fp;
    0x000313ea ldr r3, [pc, 0x138]                               |     
    0x000313ec mov r1, r8                                        |     r1 = r8;
    0x000313ee ldr.w r6, [r0, r4, lsl 2]                         |     offset_0 = r4 << 2;
                                                                 |     r6 = *((r0 + offset_0));
    0x000313f2 mov r0, r7                                        |     r0 = r7;
    0x000313f4 add r3, pc                                        |     r3 = 0x6291e;
    0x000313f6 bl 0x39168                                        |     zbx_strcpy_alloc ()
    0x000313fa b 0x31392                                         |     goto label_0;
    0x000313fc mov r3, sl                                        |     r3 = sl;
    0x000313fe mov r2, fp                                        |     r2 = fp;
    0x00031400 mov r1, r8                                        |     r1 = r8;
    0x00031402 mov r0, r7                                        |     r0 = r7;
    0x00031404 bl 0x39168                                        |     zbx_strcpy_alloc ()
    0x00031408 b 0x313de                                         |     goto label_1;
    0x0003140a ldr r3, [pc, 0x11c]                               |     
    0x0003140c mov r2, fp                                        |     r2 = fp;
    0x0003140e mov r1, r8                                        |     r1 = r8;
    0x00031410 mov r0, r7                                        |     r0 = r7;
    0x00031412 add r3, pc                                        |     r3 = 0x62940;
    0x00031414 bl 0x39168                                        |     zbx_strcpy_alloc ()
    0x00031418 b 0x313de                                         |     goto label_1;
    0x0003141a ldr r3, [pc, 0x110]                               |     
    0x0003141c mov r2, fp                                        |     r2 = fp;
    0x0003141e mov r1, r8                                        |     r1 = r8;
    0x00031420 mov r0, r7                                        |     r0 = r7;
    0x00031422 add r3, pc                                        |     r3 = 0x62954;
    0x00031424 bl 0x39168                                        |     zbx_strcpy_alloc ()
    0x00031428 b 0x313de                                         |     goto label_1;
    0x0003142a ldr r3, [pc, 0x104]                               |     
    0x0003142c mov r2, fp                                        |     r2 = fp;
    0x0003142e mov r1, r8                                        |     r1 = r8;
    0x00031430 mov r0, r7                                        |     r0 = r7;
    0x00031432 add r3, pc                                        |     r3 = 0x62968;
    0x00031434 bl 0x39168                                        |     zbx_strcpy_alloc ()
    0x00031438 b 0x313de                                         |     goto label_1;
    0x0003143a ldr r3, [pc, 0xf8]                                |     
    0x0003143c mov r2, fp                                        |     r2 = fp;
    0x0003143e mov r1, r8                                        |     r1 = r8;
    0x00031440 mov r0, r7                                        |     r0 = r7;
    0x00031442 add r3, pc                                        |     r3 = 0x6297c;
    0x00031444 bl 0x39168                                        |     zbx_strcpy_alloc ()
    0x00031448 b 0x313de                                         |     goto label_1;
    0x0003144a ldr r3, [pc, 0xec]                                |     
    0x0003144c mov r2, fp                                        |     r2 = fp;
    0x0003144e mov r1, r8                                        |     r1 = r8;
    0x00031450 mov r0, r7                                        |     r0 = r7;
    0x00031452 add r3, pc                                        |     r3 = 0x62990;
    0x00031454 bl 0x39168                                        |     zbx_strcpy_alloc ()
    0x00031458 b 0x313de                                         |     goto label_1;
    0x0003145a ldr r3, [pc, 0xe0]                                |     
    0x0003145c mov r2, fp                                        |     r2 = fp;
    0x0003145e mov r1, r8                                        |     r1 = r8;
    0x00031460 mov r0, r7                                        |     r0 = r7;
    0x00031462 add r3, pc                                        |     r3 = 0x629a4;
    0x00031464 bl 0x39168                                        |     zbx_strcpy_alloc ()
    0x00031468 b 0x313de                                         |     goto label_1;
    0x0003146a ldr r3, [pc, 0xd4]                                |     
    0x0003146c mov r2, fp                                        |     r2 = fp;
    0x0003146e mov r1, r8                                        |     r1 = r8;
    0x00031470 mov r0, r7                                        |     r0 = r7;
    0x00031472 add r3, pc                                        |     r3 = 0x629b8;
    0x00031474 bl 0x39168                                        |     zbx_strcpy_alloc ()
    0x00031478 b 0x313de                                         |     goto label_1;
    0x0003147a ldr r3, [pc, 0xc8]                                |     
    0x0003147c mov r2, fp                                        |     r2 = fp;
    0x0003147e mov r1, r8                                        |     r1 = r8;
    0x00031480 mov r0, r7                                        |     r0 = r7;
    0x00031482 add r3, pc                                        |     r3 = 0x629cc;
    0x00031484 bl 0x39168                                        |     zbx_strcpy_alloc ()
    0x00031488 b 0x313de                                         |     goto label_1;
    0x0003148a ldr r3, [pc, 0xbc]                                |     
    0x0003148c mov r2, fp                                        |     r2 = fp;
    0x0003148e mov r1, r8                                        |     r1 = r8;
    0x00031490 mov r0, r7                                        |     r0 = r7;
    0x00031492 add r3, pc                                        |     r3 = 0x629e0;
    0x00031494 bl 0x39168                                        |     zbx_strcpy_alloc ()
    0x00031498 b 0x313de                                         |     goto label_1;
    0x0003149a ldr r3, [pc, 0xb0]                                |     
    0x0003149c mov r2, fp                                        |     r2 = fp;
    0x0003149e mov r1, r8                                        |     r1 = r8;
    0x000314a0 mov r0, r7                                        |     r0 = r7;
    0x000314a2 add r3, pc                                        |     r3 = 0x629f4;
    0x000314a4 bl 0x39168                                        |     zbx_strcpy_alloc ()
    0x000314a8 b 0x313de                                         |     goto label_1;
    0x000314aa ldr r3, [pc, 0xa4]                                |     
    0x000314ac mov r2, fp                                        |     r2 = fp;
    0x000314ae mov r1, r8                                        |     r1 = r8;
    0x000314b0 mov r0, r7                                        |     r0 = r7;
    0x000314b2 add r3, pc                                        |     r3 = 0x62a08;
    0x000314b4 bl 0x39168                                        |     zbx_strcpy_alloc ()
    0x000314b8 b 0x313de                                         |     goto label_1;
    0x000314ba ldr r3, [pc, 0x98]                                |     
    0x000314bc mov r2, fp                                        |     r2 = fp;
    0x000314be mov r1, r8                                        |     r1 = r8;
    0x000314c0 mov r0, r7                                        |     r0 = r7;
    0x000314c2 add r3, pc                                        |     r3 = 0x62a1c;
    0x000314c4 bl 0x39168                                        |     zbx_strcpy_alloc ()
    0x000314c8 b 0x313de                                         |     goto label_1;
    0x000314ca ldr r3, [pc, 0x8c]                                |     
    0x000314cc mov r2, fp                                        |     r2 = fp;
    0x000314ce mov r1, r8                                        |     r1 = r8;
    0x000314d0 mov r0, r7                                        |     r0 = r7;
    0x000314d2 add r3, pc                                        |     r3 = 0x62a30;
    0x000314d4 bl 0x39168                                        |     zbx_strcpy_alloc ()
    0x000314d8 b 0x313de                                         |     goto label_1;
    0x000314da ldr r3, [pc, 0x80]                                |     
    0x000314dc mov r2, fp                                        |     r2 = fp;
    0x000314de mov r1, r8                                        |     r1 = r8;
    0x000314e0 mov r0, r7                                        |     r0 = r7;
    0x000314e2 add r3, pc                                        |     r3 = 0x62a44;
    0x000314e4 bl 0x39168                                        |     zbx_strcpy_alloc ()
    0x000314e8 b 0x313de                                         |     goto label_1;
    0x000314ea mov r3, sb                                        |     r3 = sb;
    0x000314ec mov r2, fp                                        |     r2 = fp;
    0x000314ee mov r1, r8                                        |     r1 = r8;
    0x000314f0 mov r0, r7                                        |     r0 = r7;
    0x000314f2 bl 0x39168                                        |     zbx_strcpy_alloc ()
    0x000314f6 b 0x313de                                         |     goto label_1;
                                                                 | label_4:
    0x000314f8 blx 0xbe48                                        |     fcn_0000be48 ();
                                                                 | label_3:
    0x000314fc ldr r3, [sp, 4]                                   |     r3 = var_4h;
    0x000314fe mov r2, fp                                        |     r2 = fp;
    0x00031500 mov r1, r8                                        |     r1 = r8;
    0x00031502 mov r0, r7                                        |     r0 = r7;
    0x00031504 bl 0x39168                                        |     zbx_strcpy_alloc ()
    0x00031508 b 0x313de                                         |     goto label_1;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x3f970 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0003f970 ()                                      | void fcn_0003f970 (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_3ch;
                                                                 |     int16_t var_1020h;
                                                                 |     r0 = arg1;
                                                                 |     do {
                                                                 |         if (r5 != 0) {
    0x0003f84a cbz r5, 0x3f862                                   |             
    0x0003f84c mov r0, r5                                        |             r0 = r5;
    0x0003f84e blx 0xbfd8                                        |             r0 = getenv (r0);
    0x0003f852 cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x0003f854 beq.w 0x3fc7c                                     |                 goto label_13;
                                                                 |             }
    0x0003f858 blx 0xc494                                        |             fcn_0000c494 ();
    0x0003f85c adds r0, 1                                        |             r0++;
                                                                 |             if (r0 == 1) {
    0x0003f85e beq.w 0x3fc7c                                     |                 goto label_13;
                                                                 |             }
                                                                 |         }
    0x0003f862 sub.w r0, r4, 0xc                                 |         r0 = r4 - 0xc;
    0x0003f866 blx 0xc260                                        |         strtok (r0, r1);
    0x0003f86a adds r0, 1                                        |         r0++;
                                                                 |         if (r0 == 1) {
    0x0003f86c beq.w 0x3fc7c                                     |             goto label_13;
                                                                 |         }
    0x0003f870 bl 0x2a3d4                                        |         r0 = zbx_fork ();
    0x0003f874 adds r3, r0, 1                                    |         r3 = r0 + 1;
    0x0003f876 mov r6, r0                                        |         r6 = r0;
                                                                 |         if (r3 == r0) {
    0x0003f878 beq.w 0x3fc6c                                     |             goto label_14;
                                                                 |         }
    0x0003f87c cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x0003f87e bne.w 0x3f9e2                                     |             goto label_15;
                                                                 |         }
    0x0003f882 ldr r0, [r4, -0xc]                                |         r0 = *((r4 - 0xc));
    0x0003f886 blx 0xc47c                                        |         fcn_0000c47c ();
    0x0003f88a mov r1, r6                                        |         r1 = r6;
    0x0003f88c mov r0, r6                                        |         r0 = r6;
    0x0003f88e blx 0xc354                                        |         fcn_0000c354 ();
    0x0003f892 adds r0, 1                                        |         r0++;
    0x0003f894 ldr.w r3, [sb]                                    |         r3 = *(sb);
                                                                 |         if (r0 == 1) {
    0x0003f898 beq.w 0x3fcf0                                     |             goto label_16;
                                                                 |         }
    0x0003f89c cmp r3, 3                                         |         
                                                                 |         if (r3 > 3) {
    0x0003f89e bgt.w 0x3f9ae                                     |             goto label_17;
                                                                 |         }
                                                                 | label_2:
    0x0003f8a2 movs r0, 1                                        |         r0 = 1;
    0x0003f8a4 blx 0xbec4                                        |         r0 = initgroups ();
    0x0003f8a8 mov r7, r0                                        |         r7 = r0;
    0x0003f8aa adds r0, r7, 1                                    |         r0 = r7 + 1;
                                                                 |         if (r0 == r7) {
    0x0003f8ac beq.w 0x3fcc8                                     |             goto label_18;
                                                                 |         }
    0x0003f8b0 movs r0, 2                                        |         r0 = 2;
    0x0003f8b2 blx 0xbec4                                        |         r0 = initgroups ();
    0x0003f8b6 adds r1, r0, 1                                    |         r1 = r0 + 1;
    0x0003f8b8 mov r6, r0                                        |         r6 = r0;
                                                                 |         if (r1 == r0) {
    0x0003f8ba beq.w 0x3fc8a                                     |             goto label_19;
                                                                 |         }
    0x0003f8be movs r2, 1                                        |         r2 = 1;
    0x0003f8c0 movs r1, 2                                        |         r1 = 2;
    0x0003f8c2 mov r0, r7                                        |         r0 = r7;
    0x0003f8c4 blx 0xc29c                                        |         shutdown ();
    0x0003f8c8 adds r0, 1                                        |         r0++;
                                                                 |         if (r0 == 1) {
    0x0003f8ca beq 0x3f988                                       |             goto label_20;
                                                                 |         }
                                                                 | label_1:
    0x0003f8cc movs r2, 1                                        |         r2 = 1;
    0x0003f8ce movs r1, 2                                        |         r1 = 2;
    0x0003f8d0 mov r0, r6                                        |         r0 = r6;
    0x0003f8d2 blx 0xc29c                                        |         shutdown ();
    0x0003f8d6 adds r0, 1                                        |         r0++;
                                                                 |         if (r0 == 1) {
    0x0003f8d8 beq 0x3f962                                       |             goto label_21;
                                                                 |         }
                                                                 | label_0:
    0x0003f8da movs r1, 1                                        |         r1 = 1;
    0x0003f8dc ldr r0, [r4, -0x8]                                |         r0 = *((r4 - 0x8));
    0x0003f8e0 blx 0xbea0                                        |         realloc (r0, r1);
    0x0003f8e4 ldr r0, [r4, -0x8]                                |         r0 = *((r4 - 0x8));
    0x0003f8e8 movs r1, 2                                        |         r1 = 2;
    0x0003f8ea blx 0xbea0                                        |         realloc (r0, r1);
    0x0003f8ee ldr r0, [r4, -0x8]                                |         r0 = *((r4 - 0x8));
    0x0003f8f2 blx 0xc47c                                        |         fcn_0000c47c ();
                                                                 |         if (r5 != 0) {
    0x0003f8f6 cbz r5, 0x3f902                                   |             
    0x0003f8f8 mov r0, r5                                        |             r0 = r5;
    0x0003f8fa blx 0xbf18                                        |             r0 = pcre_exec ();
    0x0003f8fe cmp r0, 0                                         |             
                                                                 |             if (r0 != 0) {
    0x0003f900 bne 0x3f9c0                                       |                 goto label_22;
                                                                 |             }
                                                                 |         }
    0x0003f902 ldr.w r2, [pc, 0x440]                             |         
    0x0003f906 movs r3, 0                                        |         r3 = 0;
    0x0003f908 ldr.w r1, [pc, 0x43c]                             |         
    0x0003f90c ldr.w r0, [pc, 0x43c]                             |         
    0x0003f910 add r2, pc                                        |         r2 = 0x7f65a;
    0x0003f912 str r3, [sp]                                      |         *(sp) = r3;
    0x0003f914 add r1, pc                                        |         r1 = 0x7f660;
    0x0003f916 ldr r3, [sp, 0xc]                                 |         r3 = var_ch;
    0x0003f918 add r0, pc                                        |         r0 = 0x7f668;
    0x0003f91a blx 0xc300                                        |         fcn_0000c300 ();
    0x0003f91e movs r1, 1                                        |         r1 = 1;
    0x0003f920 mov r0, r7                                        |         r0 = r7;
    0x0003f922 blx 0xbea0                                        |         realloc (r0, r1);
    0x0003f926 movs r1, 2                                        |         r1 = 2;
    0x0003f928 mov r0, r6                                        |         r0 = r6;
    0x0003f92a blx 0xbea0                                        |         realloc (r0, r1);
    0x0003f92e mov r0, r7                                        |         r0 = r7;
    0x0003f930 blx 0xc47c                                        |         fcn_0000c47c ();
    0x0003f934 mov r0, r6                                        |         r0 = r6;
    0x0003f936 blx 0xc47c                                        |         fcn_0000c47c ();
    0x0003f93a ldr.w r3, [sb]                                    |         r3 = *(sb);
    0x0003f93e cmp r3, 2                                         |         
                                                                 |         if (r3 > 2) {
    0x0003f940 bgt.w 0x3fb48                                     |             goto label_23;
                                                                 |         }
                                                                 | label_3:
    0x0003f944 movs r0, 1                                        |         r0 = 1;
    0x0003f946 blx 0xc0f0                                        |         fcn_0000c0f0 ();
    0x0003f94a ldr.w r2, [pc, 0x404]                             |         r2 = *(0x0003fd50);
    0x0003f94e movs r0, 4                                        |         r0 = 4;
    0x0003f950 ldr.w r1, [pc, 0x400]                             |         r1 = *(0x0003fd54);
    0x0003f954 ldr r3, [sp, 0xc]                                 |         r3 = var_ch;
    0x0003f956 add r2, pc                                        |         r2 += pc;
    0x0003f958 adds r2, 0xc                                      |         r2 += 0xc;
    0x0003f95a add r1, pc                                        |         r1 += pc;
    0x0003f95c bl 0x271b0                                        |         zbx_zabbix_log ();
    0x0003f960 b 0x3f84a                                         |         
                                                                 |     } while (1);
                                                                 | label_21:
    0x0003f962 ldr.w r3, [sb]                                    |     r3 = *(sb);
    0x0003f966 cmp r3, 2                                         |     
                                                                 |     if (r3 <= 2) {
    0x0003f968 ble 0x3f8da                                       |         goto label_0;
                                                                 |     }
    0x0003f96a blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x0003f96e ldr r0, [r0]                                      |     r0 = *(r0);
    0x0003f970 bl 0x26fdc                                        |     zbx_strerror ();
    0x0003f974 ldr r2, [pc, 0x3e0]                               |     
    0x0003f976 mov r3, r0                                        |     r3 = r0;
    0x0003f978 ldr r1, [pc, 0x3e0]                               |     
    0x0003f97a movs r0, 3                                        |     r0 = 3;
    0x0003f97c add r2, pc                                        |     r2 = 0x7f6d8;
    0x0003f97e adds r2, 0xc                                      |     r2 += 0xc;
    0x0003f980 add r1, pc                                        |     r1 = 0x7f6e0;
    0x0003f982 bl 0x271b0                                        |     zbx_zabbix_log ();
    0x0003f986 b 0x3f8da                                         |     goto label_0;
                                                                 | label_20:
    0x0003f988 ldr.w r3, [sb]                                    |     r3 = *(sb);
    0x0003f98c cmp r3, 2                                         |     
                                                                 |     if (r3 <= 2) {
    0x0003f98e ble 0x3f8cc                                       |         goto label_1;
                                                                 |     }
    0x0003f990 blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x0003f994 ldr r0, [r0]                                      |     r0 = *(r0);
    0x0003f996 bl 0x26fdc                                        |     zbx_strerror ();
    0x0003f99a ldr r2, [pc, 0x3c4]                               |     
    0x0003f99c mov r3, r0                                        |     r3 = r0;
    0x0003f99e ldr r1, [pc, 0x3c4]                               |     
    0x0003f9a0 movs r0, 3                                        |     r0 = 3;
    0x0003f9a2 add r2, pc                                        |     r2 = 0x7f708;
    0x0003f9a4 adds r2, 0xc                                      |     r2 += 0xc;
    0x0003f9a6 add r1, pc                                        |     r1 = 0x7f710;
    0x0003f9a8 bl 0x271b0                                        |     zbx_zabbix_log ();
    0x0003f9ac b 0x3f8cc                                         |     goto label_1;
                                                                 | label_17:
    0x0003f9ae ldr r2, [pc, 0x3b8]                               |     
    0x0003f9b0 movs r0, 4                                        |     r0 = 4;
    0x0003f9b2 ldr r1, [pc, 0x3b8]                               |     
    0x0003f9b4 add r2, pc                                        |     r2 = 0x7f722;
    0x0003f9b6 adds r2, 0xc                                      |     r2 += 0xc;
    0x0003f9b8 add r1, pc                                        |     r1 = 0x7f72a;
    0x0003f9ba bl 0x271b0                                        |     zbx_zabbix_log ();
    0x0003f9be b 0x3f8a2                                         |     goto label_2;
                                                                 | label_22:
    0x0003f9c0 ldr r3, [pc, 0x3ac]                               |     r3 = *(0x3fd70);
    0x0003f9c2 ldr.w r3, [r8, r3]                                |     r3 = *((r8 + r3));
    0x0003f9c6 ldr r4, [r3]                                      |     r4 = *(0x3fd70);
    0x0003f9c8 blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x0003f9cc ldr r0, [r0]                                      |     r0 = *(r0);
    0x0003f9ce bl 0x26fdc                                        |     zbx_strerror ();
    0x0003f9d2 ldr r2, [pc, 0x3a0]                               |     
    0x0003f9d4 mov r3, r0                                        |     r3 = r0;
    0x0003f9d6 movs r1, 1                                        |     r1 = 1;
    0x0003f9d8 mov r0, r4                                        |     r0 = r4;
    0x0003f9da add r2, pc                                        |     r2 = 0x7f754;
    0x0003f9dc blx 0xc20c                                        |     setegid ();
    0x0003f9e0 b 0x3f944                                         |     goto label_3;
                                                                 | label_15:
    0x0003f9e2 ldr r0, [r4, -0x8]                                |     r0 = *((r4 - 0x8));
    0x0003f9e6 blx 0xc47c                                        |     fcn_0000c47c ();
    0x0003f9ea ldr.w r3, [sb]                                    |     r3 = *(sb);
    0x0003f9ee cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x0003f9f0 bgt.w 0x3fb94                                     |         goto label_24;
                                                                 |     }
                                                                 | label_7:
    0x0003f9f4 ldr r8, [r4, -0xc]                                |     r8 = *((r4 - 0xc));
    0x0003f9f8 cmp.w r8, -1                                      |     
                                                                 |     if (r8 == -1) {
    0x0003f9fc beq.w 0x3fc7c                                     |         goto label_13;
                                                                 |     }
    0x0003fa00 add r5, sp, 0x3c                                  |     r5 += var_3ch;
    0x0003fa02 mov.w fp, 0                                       |     
    0x0003fa06 sub.w sl, r4, 0x18                                |     sl = r4 - 0x18;
    0x0003fa0a b 0x3fa2e                                         |     
                                                                 |     while (r0 > 0) {
    0x0003fa0c ldr r3, [r4, -0x18]                               |         r3 = *((r4 - 0x18));
    0x0003fa10 add r3, r0                                        |         r3 += r0;
    0x0003fa12 cmp.w r3, 0x80000                                 |         
                                                                 |         if (r3 >= case.0x3207a.11) {
    0x0003fa16 bhs 0x3fb00                                       |             goto label_25;
                                                                 |         }
    0x0003fa18 add r0, r4                                        |         r0 += r4;
    0x0003fa1a mov r3, r5                                        |         r3 = r5;
    0x0003fa1c strb fp, [r0, -0x4]                               |         *((r0 - 0x4)) = fp;
    0x0003fa20 mov r2, sl                                        |         r2 = sl;
    0x0003fa22 sub.w r1, r4, 0x1c                                |         r1 = r4 - 0x1c;
    0x0003fa26 sub.w r0, r4, 0x14                                |         r0 = r4 - 0x14;
    0x0003fa2a bl 0x39168                                        |         zbx_strcpy_alloc ()
    0x0003fa2e movw r2, 0xfff                                    |         r2 = (r2 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0003fa32 mov r1, r5                                        |         r1 = r5;
    0x0003fa34 mov r0, r8                                        |         r0 = r8;
    0x0003fa36 blx 0xbcac                                        |         r0 = fcn_0000bcac ();
    0x0003fa3a cmp r0, 0                                         |         
    0x0003fa3c bgt 0x3fa0c                                       |         
                                                                 |     }
    0x0003fa3e str r0, [sp, 0x1c]                                |     var_1ch = r0;
    0x0003fa40 mov r0, r8                                        |     r0 = r8;
    0x0003fa42 blx 0xc47c                                        |     fcn_0000c47c ();
    0x0003fa46 ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x0003fa48 adds r2, r3, 1                                    |     r2 = r3 + 1;
                                                                 |     if (r2 != r3) {
    0x0003fa4a bne 0x3fb0a                                       |         goto label_26;
                                                                 |     }
                                                                 | label_5:
    0x0003fa4c blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x0003fa50 mov r8, r0                                        |     r8 = r0;
    0x0003fa52 ldr r0, [r0]                                      |     r0 = *(r0);
    0x0003fa54 rsbs r5, r6, 0                                    |     r5 = r6 - ;
    0x0003fa56 cmp r0, 4                                         |     
                                                                 |     if (r0 != 4) {
    0x0003fa58 bne.w 0x3fb62                                     |         goto label_27;
                                                                 |     }
    0x0003fa5c mov r0, r5                                        |     r0 = r5;
    0x0003fa5e movs r1, 0xf                                      |     r1 = 0xf;
    0x0003fa60 blx 0xc0c8                                        |     exit (r0);
    0x0003fa64 adds r0, 1                                        |     r0++;
                                                                 |     if (r0 == 1) {
    0x0003fa66 bne 0x3fa72                                       |         
    0x0003fa68 ldr.w r3, [sb]                                    |         r3 = *(sb);
    0x0003fa6c cmp r3, 1                                         |         
                                                                 |         if (r3 > 1) {
    0x0003fa6e bgt.w 0x3fbde                                     |             goto label_28;
                                                                 |         }
                                                                 |     }
                                                                 | label_8:
    0x0003fa72 movs r1, 0                                        |     r1 = 0;
    0x0003fa74 mov r0, r6                                        |     r0 = r6;
    0x0003fa76 bl 0x3f5c4                                        |     r0 = fcn_0003f5c4 (r0, r1);
    0x0003fa7a bl 0x37e10                                        |     zbx_alarm_off ();
    0x0003fa7e ldr r1, [pc, 0x2f8]                               |     
    0x0003fa80 mvn r5, 3                                         |     r5 = ~3;
    0x0003fa84 ldr r2, [sp, 0x14]                                |     r2 = var_14h;
    0x0003fa86 ldr r0, [sp, 0x10]                                |     r0 = var_10h;
    0x0003fa88 add r1, pc                                        |     r1 = 0x7f806;
    0x0003fa8a bl 0x394f0                                        |     zbx_strlcpy ();
                                                                 | label_6:
    0x0003fa8e ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x0003fa90 ldrb r3, [r3]                                     |     r3 = *(r3);
                                                                 |     if (r3 == 0) {
    0x0003fa92 cbz r3, 0x3faea                                   |         goto label_29;
                                                                 |     }
    0x0003fa94 ldr.w r3, [sb]                                    |     r3 = *(sb);
    0x0003fa98 cmp r3, 2                                         |     
                                                                 |     if (r3 <= 2) {
    0x0003fa9a ble 0x3faea                                       |         goto label_29;
                                                                 |     }
                                                                 | label_10:
    0x0003fa9c ldr r1, [pc, 0x2dc]                               |     
    0x0003fa9e movs r0, 3                                        |     r0 = 3;
    0x0003faa0 ldrd r2, r3, [sp, 0xc]                            |     __asm ("ldrd r2, r3, [var_ch]");
    0x0003faa4 add r1, pc                                        |     r1 = 0x7f824;
    0x0003faa6 bl 0x271b0                                        |     zbx_zabbix_log ();
    0x0003faaa subs r3, r5, 0                                    |     r3 = r5 - 0;
    0x0003faac it ne                                             |     
                                                                 |     if (r3 == r5) {
    0x0003faae movne r3, 1                                       |         r3 = 1;
                                                                 |     }
                                                                 | label_9:
    0x0003fab0 cmp r7, 0                                         |     
    0x0003fab2 it eq                                             |     
                                                                 |     if (r7 != 0) {
    0x0003fab4 orreq r3, r3, 1                                   |         r3 |= 1;
                                                                 |     }
                                                                 |     if (r3 != 0) {
    0x0003fab8 cbnz r3, 0x3faea                                  |         goto label_29;
                                                                 |     }
    0x0003faba mov r5, r3                                        |     r5 = r3;
                                                                 | label_4:
    0x0003fabc ldr r3, [r4, -0x14]                               |     r3 = *((r4 - 0x14));
    0x0003fac0 str r3, [r7]                                      |     *(r7) = r3;
                                                                 |     do {
    0x0003fac2 ldr r2, [pc, 0x2bc]                               |         
    0x0003fac4 add.w r1, sp, 0x1020                              |         r1 += var_1020h;
    0x0003fac8 ldr r3, [pc, 0x268]                               |         r3 = *(0x3fd34);
    0x0003faca adds r1, 0x1c                                     |         r1 += 0x1c;
    0x0003facc add r2, pc                                        |         r2 = 0x7f852;
    0x0003face ldr r3, [r2, r3]                                  |         r3 = *(0x7f852);
    0x0003fad0 ldr r2, [r3]                                      |         r2 = *(0x7f852);
    0x0003fad2 ldr r3, [r1]                                      |         r3 = *(r1);
    0x0003fad4 eors r2, r3                                       |         r2 ^= r3;
    0x0003fad6 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0003fada bne.w 0x3fd14                                     |             goto label_30;
                                                                 |         }
    0x0003fade mov r0, r5                                        |         r0 = r5;
    0x0003fae0 add.w sp, sp, 0x1040                              |         
    0x0003fae4 add sp, 4                                         |         
    0x0003fae6 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_29:
    0x0003faea ldr r0, [r4, -0x14]                               |         r0 = *((r4 - 0x14));
                                                                 |         if (r0 != 0) {
    0x0003faee cbz r0, 0x3fafa                                   |             
    0x0003faf0 blx 0xbd14                                        |             gai_strerror ();
    0x0003faf4 movs r3, 0                                        |             r3 = 0;
    0x0003faf6 str r3, [r4, -0x14]                               |             *((r4 - 0x14)) = r3;
                                                                 |         }
    0x0003fafa cmp r7, 0                                         |         
    0x0003fafc beq 0x3fac2                                       |         
                                                                 |     } while (r7 == 0);
    0x0003fafe b 0x3fabc                                         |     goto label_4;
                                                                 | label_25:
    0x0003fb00 str r0, [sp, 0x1c]                                |     var_1ch = r0;
    0x0003fb02 mov r0, r8                                        |     r0 = r8;
    0x0003fb04 blx 0xc47c                                        |     fcn_0000c47c ();
    0x0003fb08 ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
                                                                 | label_26:
    0x0003fb0a sub.w r1, r4, 0x10                                |     r1 = r4 - 0x10;
    0x0003fb0e mov r0, r6                                        |     r0 = r6;
    0x0003fb10 str r3, [sp, 0x1c]                                |     var_1ch = r3;
    0x0003fb12 bl 0x3f5c4                                        |     fcn_0003f5c4 (r0, r1);
    0x0003fb16 adds r0, 1                                        |     r0++;
    0x0003fb18 ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
                                                                 |     if (r0 == 1) {
    0x0003fb1a beq 0x3fa4c                                       |         goto label_5;
                                                                 |     }
    0x0003fb1c ldr r2, [r4, -0x18]                               |     r2 = *((r4 - 0x18));
    0x0003fb20 add r2, r3                                        |     r2 += r3;
    0x0003fb22 cmp.w r2, 0x80000                                 |     
                                                                 |     if (r2 > case.0x3207a.11) {
    0x0003fb26 blo 0x3fbaa                                       |         
    0x0003fb28 ldr.w r3, [sb]                                    |         r3 = *(sb);
    0x0003fb2c cmp r3, 1                                         |         
                                                                 |         if (r3 <= 1) {
    0x0003fb2e ble 0x3fc2e                                       |             goto label_31;
                                                                 |         }
    0x0003fb30 ldr r1, [pc, 0x250]                               |         
    0x0003fb32 mov.w r2, 0x200                                   |         r2 = case.0x3207a.11;
    0x0003fb36 movs r0, 2                                        |         r0 = 2;
    0x0003fb38 mov.w r5, -1                                      |         r5 = -1;
    0x0003fb3c add r1, pc                                        |         r1 = 0x7f8c4;
    0x0003fb3e bl 0x271b0                                        |         zbx_zabbix_log ();
    0x0003fb42 bl 0x37e10                                        |         zbx_alarm_off ();
    0x0003fb46 b 0x3fa8e                                         |         goto label_6;
                                                                 | label_23:
    0x0003fb48 blx 0xc15c                                        |         r0 = fcn_0000c15c ();
    0x0003fb4c ldr r0, [r0]                                      |         r0 = *(r0);
    0x0003fb4e bl 0x26fdc                                        |         zbx_strerror ();
    0x0003fb52 ldr r1, [pc, 0x234]                               |         
    0x0003fb54 mov r3, r0                                        |         r3 = r0;
    0x0003fb56 ldr r2, [sp, 0xc]                                 |         r2 = var_ch;
    0x0003fb58 movs r0, 3                                        |         r0 = 3;
    0x0003fb5a add r1, pc                                        |         r1 = 0x7f8e8;
    0x0003fb5c bl 0x271b0                                        |         zbx_zabbix_log ();
    0x0003fb60 b 0x3f944                                         |         goto label_3;
                                                                 | label_27:
    0x0003fb62 bl 0x26fdc                                        |         zbx_strerror ();
    0x0003fb66 ldr r2, [pc, 0x224]                               |         
    0x0003fb68 mov r3, r0                                        |         r3 = r0;
    0x0003fb6a ldr r1, [sp, 0x14]                                |         r1 = var_14h;
    0x0003fb6c ldr r0, [sp, 0x10]                                |         r0 = var_10h;
    0x0003fb6e add r2, pc                                        |         r2 = 0x7f900;
    0x0003fb70 bl 0x38ea0                                        |         zbx_snprintf ();
    0x0003fb74 mov r0, r5                                        |         r0 = r5;
    0x0003fb76 movs r1, 0xf                                      |         r1 = 0xf;
    0x0003fb78 blx 0xc0c8                                        |         r0 = exit (r0);
    0x0003fb7c adds r3, r0, 1                                    |         r3 = r0 + 1;
    0x0003fb7e mov r5, r0                                        |         r5 = r0;
                                                                 |         if (r3 == r0) {
    0x0003fb80 beq 0x3fc56                                       |             goto label_32;
                                                                 |         }
    0x0003fb82 movs r1, 0                                        |         r1 = 0;
    0x0003fb84 mov r0, r6                                        |         r0 = r6;
    0x0003fb86 bl 0x3f5c4                                        |         fcn_0003f5c4 (r0, r1);
    0x0003fb8a mov.w r5, -1                                      |         r5 = -1;
    0x0003fb8e bl 0x37e10                                        |         zbx_alarm_off ();
    0x0003fb92 b 0x3fa8e                                         |         goto label_6;
                                                                 | label_24:
    0x0003fb94 ldr r2, [pc, 0x1f8]                               |         
    0x0003fb96 movs r0, 4                                        |         r0 = 4;
    0x0003fb98 ldr r1, [pc, 0x1f8]                               |         
    0x0003fb9a ldr r3, [r4, -0xc]                                |         r3 = *((r4 - 0xc));
    0x0003fb9e add r2, pc                                        |         r2 = 0x7f932;
    0x0003fba0 adds r2, 0xc                                      |         r2 += 0xc;
    0x0003fba2 add r1, pc                                        |         r1 = 0x7f93a;
    0x0003fba4 bl 0x271b0                                        |         zbx_zabbix_log ();
    0x0003fba8 b 0x3f9f4                                         |         goto label_7;
                                                                 |     }
    0x0003fbaa ldr r3, [r4, -0x10]                               |     r3 = *((r4 - 0x10));
    0x0003fbae ands r5, r3, 0x7f                                 |     r5 = r3 & 0x7f;
                                                                 |     if (r5 != r3) {
    0x0003fbb2 bne 0x3fbf6                                       |         goto label_33;
                                                                 |     }
    0x0003fbb4 ldr r2, [sp, 0x18]                                |     r2 = var_18h;
    0x0003fbb6 cmp r2, 1                                         |     
                                                                 |     if (r2 != 1) {
    0x0003fbb8 bne 0x3fc38                                       |         goto label_34;
                                                                 |     }
    0x0003fbba ubfx r3, r3, 8, 8                                 |     r3 = (r3 >> 8) & ((1 << 8) - 1);
    0x0003fbbe cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0003fbc0 beq 0x3fc38                                       |         goto label_34;
                                                                 |     }
    0x0003fbc2 ldr r1, [r4, -0x14]                               |     r1 = *((r4 - 0x14));
    0x0003fbc6 ldrb r2, [r1]                                     |     r2 = *(r1);
    0x0003fbc8 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0003fbca beq 0x3fcb2                                       |         goto label_35;
                                                                 |     }
                                                                 |     do {
                                                                 | label_11:
    0x0003fbcc ldrd r0, r2, [sp, 0x10]                           |         __asm ("ldrd r0, r2, [var_10h]");
    0x0003fbd0 mov.w r5, -1                                      |         r5 = -1;
    0x0003fbd4 bl 0x394f0                                        |         zbx_strlcpy ();
    0x0003fbd8 bl 0x37e10                                        |         zbx_alarm_off ();
    0x0003fbdc b 0x3fa8e                                         |         goto label_6;
                                                                 | label_28:
    0x0003fbde ldr.w r0, [r8]                                    |         r0 = *(r8);
    0x0003fbe2 bl 0x26fdc                                        |         zbx_strerror ();
    0x0003fbe6 ldr r1, [pc, 0x1b0]                               |         
    0x0003fbe8 mov r3, r0                                        |         r3 = r0;
    0x0003fbea ldr r2, [sp, 0xc]                                 |         r2 = var_ch;
    0x0003fbec movs r0, 2                                        |         r0 = 2;
    0x0003fbee add r1, pc                                        |         r1 = 0x7f98c;
    0x0003fbf0 bl 0x271b0                                        |         zbx_zabbix_log ();
    0x0003fbf4 b 0x3fa72                                         |         goto label_8;
                                                                 | label_33:
    0x0003fbf6 ldr r1, [r4, -0x14]                               |         r1 = *((r4 - 0x14));
    0x0003fbfa ldrb r3, [r1]                                     |         r3 = *(r1);
    0x0003fbfc cmp r3, 0                                         |         
    0x0003fbfe bne 0x3fbcc                                       |         
                                                                 |     } while (r3 != 0);
    0x0003fc00 adds r3, r5, 1                                    |     r3 = r5 + 1;
    0x0003fc02 sbfx r3, r3, 1, 7                                 |     __asm ("sbfx r3, r3, 1, 7");
    0x0003fc06 cmp r3, 0                                         |     
                                                                 |     if (r3 > 0) {
    0x0003fc08 ble 0x3fc22                                       |         
    0x0003fc0a ldr r2, [pc, 0x190]                               |         
    0x0003fc0c mov r3, r5                                        |         r3 = r5;
    0x0003fc0e ldr r1, [sp, 0x14]                                |         r1 = var_14h;
    0x0003fc10 mov.w r5, -1                                      |         r5 = -1;
    0x0003fc14 ldr r0, [sp, 0x10]                                |         r0 = var_10h;
    0x0003fc16 add r2, pc                                        |         r2 = 0x7f9b8;
    0x0003fc18 bl 0x38ea0                                        |         zbx_snprintf ();
    0x0003fc1c bl 0x37e10                                        |         zbx_alarm_off ();
    0x0003fc20 b 0x3fa8e                                         |         goto label_6;
                                                                 |     }
    0x0003fc22 ldr r1, [pc, 0x17c]                               |     
    0x0003fc24 ldr r2, [sp, 0x14]                                |     r2 = var_14h;
    0x0003fc26 ldr r0, [sp, 0x10]                                |     r0 = var_10h;
    0x0003fc28 add r1, pc                                        |     r1 = 0x7f9ce;
    0x0003fc2a bl 0x394f0                                        |     zbx_strlcpy ();
                                                                 | label_31:
    0x0003fc2e mov.w r5, -1                                      |     r5 = -1;
    0x0003fc32 bl 0x37e10                                        |     zbx_alarm_off ();
    0x0003fc36 b 0x3fa8e                                         |     goto label_6;
                                                                 | label_34:
    0x0003fc38 bl 0x37e10                                        |     zbx_alarm_off ();
    0x0003fc3c ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x0003fc3e ldrb r3, [r3]                                     |     r3 = *(r3);
    0x0003fc40 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0003fc42 beq.w 0x3fab0                                     |         goto label_9;
                                                                 |     }
    0x0003fc46 ldr.w r3, [sb]                                    |     r3 = *(sb);
    0x0003fc4a cmp r3, 2                                         |     
    0x0003fc4c it le                                             |     
                                                                 |     if (r3 <= 2) {
    0x0003fc4e movle r3, 0                                       |         r3 = 0;
                                                                 |         goto label_36;
                                                                 |     }
                                                                 |     if (r3 <= 2) {
                                                                 | label_36:
    0x0003fc50 ble.w 0x3fab0                                     |         goto label_9;
                                                                 |     }
    0x0003fc54 b 0x3fa9c                                         |     goto label_10;
                                                                 | label_32:
    0x0003fc56 ldr.w r3, [sb]                                    |     r3 = *(sb);
    0x0003fc5a cmp r3, 1                                         |     
                                                                 |     if (r3 > 1) {
    0x0003fc5c bgt 0x3fd18                                       |         goto label_37;
                                                                 |     }
                                                                 | label_12:
    0x0003fc5e movs r1, 0                                        |     r1 = 0;
    0x0003fc60 mov r0, r6                                        |     r0 = r6;
    0x0003fc62 bl 0x3f5c4                                        |     r0 = fcn_0003f5c4 (r0, r1);
    0x0003fc66 bl 0x37e10                                        |     zbx_alarm_off ();
    0x0003fc6a b 0x3fa8e                                         |     goto label_6;
                                                                 | label_14:
    0x0003fc6c ldr r0, [r4, -0xc]                                |     r0 = *((r4 - 0xc));
    0x0003fc70 blx 0xc47c                                        |     fcn_0000c47c ();
    0x0003fc74 ldr r0, [r4, -0x8]                                |     r0 = *((r4 - 0x8));
    0x0003fc78 blx 0xc47c                                        |     fcn_0000c47c ();
                                                                 | label_13:
    0x0003fc7c blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x0003fc80 ldr r0, [r0]                                      |     r0 = *(r0);
    0x0003fc82 bl 0x26fdc                                        |     r0 = zbx_strerror ();
    0x0003fc86 mov r1, r0                                        |     r1 = r0;
    0x0003fc88 b 0x3fbcc                                         |     goto label_11;
                                                                 | label_19:
    0x0003fc8a ldr.w r3, [sb]                                    |     r3 = *(sb);
    0x0003fc8e cmp r3, 1                                         |     
                                                                 |     if (r3 <= 1) {
    0x0003fc90 ble.w 0x3f944                                     |         goto label_3;
                                                                 |     }
    0x0003fc94 blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x0003fc98 ldr r0, [r0]                                      |     r0 = *(r0);
    0x0003fc9a bl 0x26fdc                                        |     zbx_strerror ();
    0x0003fc9e ldr r2, [pc, 0x104]                               |     
    0x0003fca0 mov r3, r0                                        |     r3 = r0;
    0x0003fca2 ldr r1, [pc, 0x104]                               |     
    0x0003fca4 movs r0, 2                                        |     r0 = 2;
    0x0003fca6 add r2, pc                                        |     r2 = 0x7fa50;
    0x0003fca8 add r1, pc                                        |     r1 = 0x7fa56;
    0x0003fcaa adds r2, 0xc                                      |     r2 += 0xc;
    0x0003fcac bl 0x271b0                                        |     zbx_zabbix_log ();
    0x0003fcb0 b 0x3f944                                         |     goto label_3;
                                                                 | label_35:
    0x0003fcb2 ldr r2, [pc, 0xf8]                                |     
    0x0003fcb4 mov.w r5, -1                                      |     r5 = -1;
    0x0003fcb8 ldr r1, [sp, 0x14]                                |     r1 = var_14h;
    0x0003fcba ldr r0, [sp, 0x10]                                |     r0 = var_10h;
    0x0003fcbc add r2, pc                                        |     r2 = 0x7fa6e;
    0x0003fcbe bl 0x38ea0                                        |     zbx_snprintf ();
    0x0003fcc2 bl 0x37e10                                        |     zbx_alarm_off ();
    0x0003fcc6 b 0x3fa8e                                         |     goto label_6;
                                                                 | label_18:
    0x0003fcc8 ldr.w r3, [sb]                                    |     r3 = *(sb);
    0x0003fccc cmp r3, 1                                         |     
                                                                 |     if (r3 <= 1) {
    0x0003fcce ble.w 0x3f944                                     |         goto label_3;
                                                                 |     }
    0x0003fcd2 blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x0003fcd6 ldr r0, [r0]                                      |     r0 = *(r0);
    0x0003fcd8 bl 0x26fdc                                        |     zbx_strerror ();
    0x0003fcdc ldr r2, [pc, 0xd0]                                |     
    0x0003fcde mov r3, r0                                        |     r3 = r0;
    0x0003fce0 ldr r1, [pc, 0xd0]                                |     
    0x0003fce2 movs r0, 2                                        |     r0 = 2;
    0x0003fce4 add r2, pc                                        |     r2 = 0x7fa98;
    0x0003fce6 add r1, pc                                        |     r1 = 0x7fa9e;
    0x0003fce8 adds r2, 0xc                                      |     r2 += 0xc;
    0x0003fcea bl 0x271b0                                        |     zbx_zabbix_log ();
    0x0003fcee b 0x3f944                                         |     goto label_3;
                                                                 | label_16:
    0x0003fcf0 cmp r3, 1                                         |     
                                                                 |     if (r3 <= 1) {
    0x0003fcf2 ble.w 0x3f944                                     |         goto label_3;
                                                                 |     }
    0x0003fcf6 blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x0003fcfa ldr r0, [r0]                                      |     r0 = *(r0);
    0x0003fcfc bl 0x26fdc                                        |     zbx_strerror ();
    0x0003fd00 ldr r2, [pc, 0xb4]                                |     
    0x0003fd02 mov r3, r0                                        |     r3 = r0;
    0x0003fd04 ldr r1, [pc, 0xb4]                                |     
    0x0003fd06 movs r0, 2                                        |     r0 = 2;
    0x0003fd08 add r2, pc                                        |     r2 = 0x7fac4;
    0x0003fd0a add r1, pc                                        |     r1 = 0x7faca;
    0x0003fd0c adds r2, 0xc                                      |     r2 += 0xc;
    0x0003fd0e bl 0x271b0                                        |     zbx_zabbix_log ();
    0x0003fd12 b 0x3f944                                         |     goto label_3;
                                                                 | label_30:
    0x0003fd14 blx 0xbe48                                        |     fcn_0000be48 ();
                                                                 | label_37:
    0x0003fd18 ldr.w r0, [r8]                                    |     r0 = *(r8);
    0x0003fd1c bl 0x26fdc                                        |     zbx_strerror ();
    0x0003fd20 ldr r1, [pc, 0x9c]                                |     
    0x0003fd22 mov r3, r0                                        |     r3 = r0;
    0x0003fd24 ldr r2, [sp, 0xc]                                 |     r2 = var_ch;
    0x0003fd26 movs r0, 2                                        |     r0 = 2;
    0x0003fd28 add r1, pc                                        |     r1 = 0x7faec;
    0x0003fd2a bl 0x271b0                                        |     zbx_zabbix_log ();
    0x0003fd2e b 0x3fc5e                                         |     goto label_12;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x4074c */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0004074c ()                                      | void fcn_0004074c (int16_t arg_0h, 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_44h, int16_t arg_48h, int16_t arg_4ch, int16_t arg_854h, int16_t arg_880h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_18h_2;
                                                                 |     int16_t var_24h;
                                                                 |     int32_t var_854h;
                                                                 |     int16_t var_85ch;
                                                                 |     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;
    0x0004074c push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00040750 subw sp, sp, 0x85c                                |     __asm ("subw sp, sp, case.0x3207a.11");
    0x00040754 strd r2, r3, [sp, 0x14]                           |     __asm ("strd r2, r3, [sp, 0x14]");
    0x00040758 add.w fp, sp, 0x54                                |     
    0x0004075c ldr r2, [pc, 0x30c]                               |     
    0x0004075e ldr.w r4, [sp, 0x880]                             |     r4 = *(arg_880h);
    0x00040762 ldr r3, [pc, 0x30c]                               |     r3 = *(0x40a72);
    0x00040764 add r2, pc                                        |     r2 = 0x811d4;
    0x00040766 str r0, [sp, 0xc]                                 |     var_ch = r0;
    0x00040768 str r4, [sp, 0x1c]                                |     var_1ch = r4;
    0x0004076a mov r4, r1                                        |     r4 = r1;
    0x0004076c ldr r3, [r2, r3]                                  |     
    0x0004076e ldr r3, [r3]                                      |     r3 = *(0x811d4);
    0x00040770 str.w r3, [sp, 0x854]                             |     __asm ("str.w r3, [arg_854h]");
    0x00040774 mov.w r3, 0                                       |     r3 = 0;
    0x00040778 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x0004077a beq.w 0x40956                                     |         goto label_8;
                                                                 |     }
    0x0004077e ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x00040780 add.w r0, fp, r1                                  |     r0 = fp + r1;
    0x00040784 mov r2, fp                                        |     r2 = fp;
    0x00040786 subs r3, 4                                        |     r3 -= 4;
    0x00040788 mov r1, r3                                        |     r1 = r3;
    0x0004078a str r3, [sp, 0x24]                                |     *(arg_24h) = r3;
    0x0004078c b 0x40798                                         |     
                                                                 |     while (r3 < 0x7f) {
    0x0004078e strb r3, [r2], 1                                  |         *(r2) = r3;
                                                                 |         r2++;
    0x00040792 cmp r2, r0                                        |         
                                                                 |         if (r2 == r0) {
    0x00040794 beq.w 0x40956                                     |             goto label_8;
                                                                 |         }
    0x00040798 ldr r3, [r1, 4]!                                  |         r3 = *((r1 += 4));
    0x0004079c cmp r3, 0x7f                                      |         
    0x0004079e bls 0x4078e                                       |         
                                                                 |     }
    0x000407a0 ldr r3, [pc, 0x2d0]                               |     
    0x000407a2 mov.w sb, 0                                       |     sb = 0;
    0x000407a6 ldrd r1, r2, [sp, 0x18]                           |     __asm ("ldrd r1, r2, [var_18h]");
    0x000407aa mov sl, sb                                        |     sl = sb;
    0x000407ac ldr r0, [sp, 0x14]                                |     r0 = var_14h;
    0x000407ae add r3, pc                                        |     r3 = 0x81226;
    0x000407b0 bl 0x39168                                        |     zbx_strcpy_alloc ()
    0x000407b4 ldr r2, [sp, 0x24]                                |     r2 = *(arg_24h);
    0x000407b6 b 0x407ba                                         |     
                                                                 |     while (r4 != r8) {
    0x000407b8 mov sl, r8                                        |         sl = r8;
    0x000407ba ldr r3, [r2, 4]!                                  |         r3 = *((r2 += 4));
    0x000407be cmp r3, 0x7f                                      |         
                                                                 |         if (r3 <= 0x7f) {
    0x000407c0 bhi 0x407d4                                       |             
    0x000407c2 rsb.w r1, sb, 0x800                               |             r1 = case.0x3207a.11 - sb;
    0x000407c6 cmp r1, 1                                         |             
                                                                 |             if (r1 < 1) {
    0x000407c8 bls.w 0x40988                                     |                 goto label_5;
                                                                 |             }
    0x000407cc strb.w r3, [fp, sb]                               |             *((fp + sb)) = r3;
    0x000407d0 add.w sb, sb, 1                                   |             sb++;
                                                                 |         }
    0x000407d4 add.w r8, sl, 1                                   |         r8 = sl + 1;
    0x000407d8 cmp r4, r8                                        |         
    0x000407da bne 0x407b8                                       |         
                                                                 |     }
    0x000407dc cmp.w sb, 0                                       |     
                                                                 |     if (sb == 0) {
    0x000407e0 beq.w 0x4098e                                     |         goto label_9;
                                                                 |     }
    0x000407e4 cmp r8, sb                                        |     
    0x000407e6 mov.w r3, 0x2d                                    |     r3 = 0x2d;
    0x000407ea add.w r7, sb, 1                                   |     r7 = sb + 1;
    0x000407ee strb.w r3, [fp, sb]                               |     *((fp + sb)) = r3;
                                                                 |     if (r8 < sb) {
    0x000407f2 bls.w 0x40a4c                                     |         goto label_10;
                                                                 |     }
    0x000407f6 str.w sb, [sp, 0x30]                              |     __asm ("str.w sb, [arg_30h]");
                                                                 | label_3:
    0x000407fa movw r3, 0x41d5                                   |     r3 = (r3 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x000407fe str.w r8, [sp, 0x4c]                              |     __asm ("str.w r8, [arg_4ch]");
    0x00040802 movt r3, 0xd41d                                   |     r3 = (r3 & 0xFFFF) | 0xNaN0000;
    0x00040806 str.w sl, [sp, 0x20]                              |     __asm ("str.w sl, [var_20h]");
    0x0004080a str r3, [sp, 0x48]                                |     *(arg_48h) = r3;
    0x0004080c movs r4, 0                                        |     r4 = 0;
    0x0004080e ldr r3, [pc, 0x268]                               |     
    0x00040810 movs r5, 0x80                                     |     r5 = 0x80;
    0x00040812 str.w sb, [sp, 0x44]                              |     __asm ("str.w sb, [arg_44h]");
    0x00040816 str.w fp, [sp, 0x34]                              |     __asm ("str.w fp, [arg_34h]");
    0x0004081a add r3, pc                                        |     r3 = 0x81298;
    0x0004081c str r3, [sp, 0x2c]                                |     *(arg_2ch) = r3;
    0x0004081e ldr r3, [pc, 0x25c]                               |     
    0x00040820 add r3, pc                                        |     r3 = 0x812a2;
    0x00040822 str r3, [sp, 0x38]                                |     *(arg_38h) = r3;
    0x00040824 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x00040826 add.w r3, r3, r8, lsl 2                           |     r3 += (r8 << 2);
    0x0004082a mov r8, r7                                        |     r8 = r7;
    0x0004082c str r3, [sp, 0x3c]                                |     *(arg_3ch) = r3;
    0x0004082e movs r3, 0x48                                     |     r3 = 0x48;
    0x00040830 mov sl, r3                                        |     sl = r3;
                                                                 | label_4:
    0x00040832 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x00040834 mov.w fp, -1                                      |     
    0x00040838 ldr r1, [sp, 0x3c]                                |     r1 = *(arg_3ch);
                                                                 |     do {
    0x0004083a ldr r2, [r3], 4                                   |         r2 = *(r3);
                                                                 |         r3 += 4;
    0x0004083e cmp r2, r5                                        |         
                                                                 |         if (r2 > r5) {
    0x00040840 blo 0x40848                                       |             
    0x00040842 cmp fp, r2                                        |             
    0x00040844 it hs                                             |             
                                                                 |             if (fp >= r2) {
    0x00040846 movhs fp, r2                                      |                 goto label_11;
                                                                 |             }
                                                                 |         }
                                                                 | label_11:
    0x00040848 cmp r1, r3                                        |         
    0x0004084a bne 0x4083a                                       |         
                                                                 |     } while (r1 != r3);
    0x0004084c ldr r3, [sp, 0x30]                                |     r3 = *(arg_30h);
    0x0004084e sub.w r5, fp, r5                                  |     r5 = fp - r5;
    0x00040852 mvns r0, r4                                       |     r0 = ~r4;
    0x00040854 adds r6, r3, 1                                    |     r6 = r3 + 1;
    0x00040856 mov r1, r6                                        |     r1 = r6;
    0x00040858 bl 0x40cf8                                        |     r0 = fcn_00040cf8 (r0, r1, r2);
    0x0004085c cmp r5, r0                                        |     
                                                                 |     if (r5 > r0) {
    0x0004085e bhi.w 0x40988                                     |         goto label_5;
                                                                 |     }
    0x00040862 mla r3, r6, r5, r4                                |     __asm ("mla r3, r6, r5, r4");
    0x00040866 str.w fp, [sp, 0x10]                              |     __asm ("str.w fp, [var_10h]");
    0x0004086a mov.w sb, 0                                       |     sb = 0;
    0x0004086e str r3, [sp, 8]                                   |     var_8h = r3;
    0x00040870 ldr r3, [pc, 0x20c]                               |     
    0x00040872 add r3, pc                                        |     r3 = 0x812f6;
    0x00040874 str r3, [sp, 0x28]                                |     *(arg_28h) = r3;
    0x00040876 ldr r3, [sp, 0x24]                                |     r3 = *(arg_24h);
    0x00040878 str r3, [sp, 4]                                   |     var_4h = r3;
    0x0004087a b 0x40894                                         |     
                                                                 |     while (r3 <= r2) {
    0x0004087c ldr r3, [sp, 8]                                   |         r3 = var_8h;
    0x0004087e adds r3, 1                                        |         r3++;
    0x00040880 str r3, [sp, 8]                                   |         var_8h = r3;
                                                                 |         if (r3 == 1) {
    0x00040882 beq.w 0x40988                                     |             goto label_5;
                                                                 |         }
                                                                 | label_0:
    0x00040886 ldr r2, [sp, 0x20]                                |         r2 = var_20h;
    0x00040888 add.w r3, sb, 1                                   |         r3 = sb + 1;
    0x0004088c cmp sb, r2                                        |         
                                                                 |         if (sb == r2) {
    0x0004088e beq.w 0x40a2e                                     |             goto label_12;
                                                                 |         }
    0x00040892 mov sb, r3                                        |         sb = r3;
    0x00040894 ldr r2, [sp, 4]                                   |         r2 = var_4h;
    0x00040896 ldr r3, [r2, 4]!                                  |         r3 = *((r2 += 4));
    0x0004089a str r2, [sp, 4]                                   |         var_4h = r2;
    0x0004089c ldr r2, [sp, 0x10]                                |         r2 = var_10h;
    0x0004089e cmp r3, r2                                        |         
    0x000408a0 blo 0x4087c                                       |         
                                                                 |     }
                                                                 |     if (r3 != r2) {
    0x000408a2 bne 0x40886                                       |         goto label_0;
                                                                 |     }
    0x000408a4 cmp.w r8, 0x800                                   |     
                                                                 |     if (r8 >= 0x800) {
    0x000408a8 bhs 0x40988                                       |         goto label_5;
                                                                 |     }
    0x000408aa ldr r3, [sp, 0x34]                                |     r3 = *(arg_34h);
    0x000408ac add.w r6, r8, 1                                   |     r6 = r8 + 1;
    0x000408b0 ldr r0, [sp, 8]                                   |     r0 = var_8h;
    0x000408b2 movs r5, 0x24                                     |     r5 = 0x24;
    0x000408b4 ldr.w fp, [sp, 0x38]                              |     fp = *(arg_38h);
    0x000408b8 add r8, r3                                        |     r8 += r3;
    0x000408ba str.w sb, [sp, 0x40]                              |     __asm ("str.w sb, [arg_40h]");
    0x000408be b 0x40910                                         |     
                                                                 |     while (sl <= r5) {
    0x000408c0 add.w r3, sl, 0x1a                                |         r3 = sl + 0x1a;
    0x000408c4 cmp r3, r5                                        |         
    0x000408c6 it hi                                             |         
                                                                 |         if (r3 <= r5) {
    0x000408c8 subhi sb, r5, sl                                  |             sb = r5 - sl;
                                                                 |         }
                                                                 |         if (r3 > r5) {
    0x000408cc bhi 0x40918                                       |             goto label_13;
                                                                 |         }
    0x000408ce cmp r0, 0x19                                      |         
                                                                 |         if (r0 < 0x19) {
    0x000408d0 bls.w 0x40a5a                                     |             goto label_14;
                                                                 |         }
    0x000408d4 movw r1, 0xcccd                                   |         r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x000408d8 sub.w r4, r0, 0x1a                                |         r4 = r0 - 0x1a;
    0x000408dc movt r1, 0xcccc                                   |         r1 = (r1 & 0xFFFF) | 0xNaN0000;
    0x000408e0 movs r7, 0xa                                      |         r7 = 0xa;
    0x000408e2 umull r3, r1, r1, r4                              |         r3:r1 = r1 * r4;
    0x000408e6 lsrs r1, r1, 3                                    |         r1 >>= 3;
    0x000408e8 add.w r1, r1, r1, lsl 2                           |         r1 += (r1 << 2);
    0x000408ec sub.w r1, r4, r1, lsl 1                           |         r1 = r4 - (r1 << 1);
    0x000408f0 adds r1, 0x1a                                     |         r1 += 0x1a;
                                                                 | label_2:
    0x000408f2 adds r1, 0x16                                     |         r1 += 0x16;
    0x000408f4 uxtb r1, r1                                       |         r1 = (int8_t) r1;
                                                                 | label_1:
    0x000408f6 strb r1, [r8], 1                                  |         *(r8) = r1;
                                                                 |         r8++;
    0x000408fa mov r0, r4                                        |         r0 = r4;
    0x000408fc mov r1, r7                                        |         r1 = r7;
    0x000408fe adds r5, 0x24                                     |         r5 += 0x24;
    0x00040900 bl 0x40cf8                                        |         fcn_00040cf8 (r0, r1, r2);
    0x00040904 cmp.w r6, 0x800                                   |         
    0x00040908 add.w r3, r6, 1                                   |         r3 = r6 + 1;
                                                                 |         if (r6 >= 0x800) {
    0x0004090c bhs 0x40988                                       |             goto label_5;
                                                                 |         }
    0x0004090e mov r6, r3                                        |         r6 = r3;
    0x00040910 cmp sl, r5                                        |         
    0x00040912 blo 0x408c0                                       |         
                                                                 |     }
    0x00040914 mov.w sb, 1                                       |     sb = 1;
                                                                 | label_13:
    0x00040918 cmp sb, r0                                        |     
                                                                 |     if (sb > r0) {
    0x0004091a bhi 0x40996                                       |         goto label_15;
                                                                 |     }
    0x0004091c sub.w r4, r0, sb                                  |     r4 = r0 - sb;
    0x00040920 rsb.w r7, sb, 0x24                                |     r7 = 0x24 - sb;
    0x00040924 mov r1, r7                                        |     r1 = r7;
    0x00040926 mov r0, r4                                        |     r0 = r4;
    0x00040928 bl 0x40f54                                        |     fcn_00040f54 (r0);
    0x0004092c add r1, sb                                        |     r1 += sb;
    0x0004092e cmp r1, 0x19                                      |     
    0x00040930 itt ls                                            |     
                                                                 |     if (r1 > 0x19) {
    0x00040932 addls r1, 0x61                                    |         r1 += 0x61;
                                                                 |     }
                                                                 |     if (r1 > 0x19) {
    0x00040934 uxtbls r1, r1                                     |         __asm ("uxtbls r1, r1");
                                                                 |         goto label_16;
                                                                 |     }
                                                                 |     if (r1 < 0x19) {
                                                                 | label_16:
    0x00040936 bls 0x408f6                                       |         goto label_1;
                                                                 |     }
    0x00040938 sub.w r3, r1, 0x1a                                |     r3 = r1 - 0x1a;
    0x0004093c cmp r3, 9                                         |     
                                                                 |     if (r3 < 9) {
    0x0004093e bls 0x408f2                                       |         goto label_2;
                                                                 |     }
    0x00040940 ldr r0, [pc, 0x140]                               |     
    0x00040942 mov r2, fp                                        |     r2 = fp;
    0x00040944 ldr r1, [sp, 0x28]                                |     r1 = *(arg_28h);
    0x00040946 ldr r3, [sp, 0x2c]                                |     r3 = *(arg_2ch);
    0x00040948 add r0, pc                                        |     r0 = 0x813d0;
    0x0004094a bl 0x38c64                                        |     zbx_error ();
    0x0004094e bl 0x2b778                                        |     zbx_backtrace ();
    0x00040952 movs r1, 0                                        |     r1 = 0;
    0x00040954 b 0x408f6                                         |     goto label_1;
                                                                 | label_8:
    0x00040956 movs r3, 0                                        |     r3 = 0;
    0x00040958 strb.w r3, [fp, r4]                               |     *((fp + r4)) = r3;
                                                                 | label_6:
    0x0004095c ldr r0, [sp, 0x14]                                |     r0 = var_14h;
    0x0004095e mov r3, fp                                        |     r3 = fp;
    0x00040960 ldrd r1, r2, [sp, 0x18]                           |     __asm ("ldrd r1, r2, [var_18h]");
    0x00040964 bl 0x39168                                        |     zbx_strcpy_alloc ()
    0x00040968 movs r0, 0                                        |     r0 = 0;
                                                                 |     do {
    0x0004096a ldr r2, [pc, 0x11c]                               |         
    0x0004096c ldr r3, [pc, 0x100]                               |         r3 = *(0x40a70);
    0x0004096e add r2, pc                                        |         r2 = 0x813fc;
    0x00040970 ldr r3, [r2, r3]                                  |         r3 = *(0x813fc);
    0x00040972 ldr r2, [r3]                                      |         r2 = *(0x813fc);
    0x00040974 ldr.w r3, [sp, 0x854]                             |         r3 = *(arg_854h);
    0x00040978 eors r2, r3                                       |         r2 ^= r3;
    0x0004097a mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0004097e bne 0x40a66                                       |             goto label_17;
                                                                 |         }
    0x00040980 addw sp, sp, 0x85c                                |         __asm ("addw sp, var_85ch");
    0x00040984 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_5:
    0x00040988 mov.w r0, -1                                      |         r0 = -1;
    0x0004098c b 0x4096a                                         |         
                                                                 |     } while (1);
                                                                 | label_9:
    0x0004098e mov r7, sb                                        |     r7 = sb;
    0x00040990 str.w sb, [sp, 0x30]                              |     __asm ("str.w sb, [arg_30h]");
    0x00040994 b 0x407fa                                         |     goto label_3;
                                                                 | label_15:
    0x00040996 cmp r0, 0x19                                      |     
    0x00040998 ldr.w sb, [sp, 0x40]                              |     sb = *(arg_40h);
                                                                 |     if (r0 < 0x19) {
    0x0004099c bls 0x40a5e                                       |         goto label_18;
                                                                 |     }
    0x0004099e sub.w r3, r0, 0x1a                                |     r3 = r0 - 0x1a;
    0x000409a2 cmp r3, 9                                         |     
    0x000409a4 itt ls                                            |     
                                                                 |     if (r3 > 9) {
    0x000409a6 addls r3, r0, 0x16                                |         r3 = r0 + 0x16;
                                                                 |     }
                                                                 |     if (r3 <= 9) {
    0x000409aa uxtb r3, r3                                       |         r3 = (int8_t) r3;
                                                                 |     }
                                                                 |     if (r3 >= 9) {
    0x000409ac bls 0x409c8                                       |         
    0x000409ae ldr r3, [pc, 0xdc]                                |         
    0x000409b0 ldr r2, [pc, 0xdc]                                |         
    0x000409b2 ldr r1, [pc, 0xe0]                                |         
    0x000409b4 ldr r0, [pc, 0xe0]                                |         
    0x000409b6 add r3, pc                                        |         r3 = 0x81448;
    0x000409b8 add r2, pc                                        |         r2 = 0x8144c;
    0x000409ba add r1, pc                                        |         r1 = 0x81454;
    0x000409bc add r0, pc                                        |         r0 = 0x81458;
    0x000409be bl 0x38c64                                        |         zbx_error ();
    0x000409c2 bl 0x2b778                                        |         zbx_backtrace ();
    0x000409c6 movs r3, 0                                        |         r3 = 0;
                                                                 |     }
                                                                 | label_7:
    0x000409c8 ldr r4, [sp, 0x30]                                |     r4 = *(arg_30h);
    0x000409ca mov.w sl, 0                                       |     sl = 0;
    0x000409ce strb.w r3, [r8]                                   |     *(r8) = r3;
    0x000409d2 ldr r3, [sp, 0x44]                                |     r3 = *(arg_44h);
    0x000409d4 adds r5, r4, 1                                    |     r5 = r4 + 1;
    0x000409d6 ldr r0, [sp, 8]                                   |     r0 = var_8h;
    0x000409d8 cmp r3, r4                                        |     
    0x000409da ite eq                                            |     
                                                                 |     if (r3 != r4) {
    0x000409dc moveq r1, 0x2bc                                   |         r1 = case.0x3207a.11;
                                                                 |     }
                                                                 |     if (r3 != r4) {
    0x000409e0 movs r1, 2                                        |         r1 = 2;
                                                                 |     }
    0x000409e2 bl 0x40cf8                                        |     fcn_00040cf8 (r0, r1, r2);
    0x000409e6 mov r1, r5                                        |     r1 = r5;
    0x000409e8 mov r4, r0                                        |     r4 = r0;
    0x000409ea bl 0x40cf8                                        |     r0 = fcn_00040cf8 (r0, r1, r2);
    0x000409ee adds r1, r4, r0                                   |     r1 = r4 + r0;
    0x000409f0 cmp.w r1, 0x1c8                                   |     
                                                                 |     if (r1 <= 0x1c8) {
    0x000409f4 blo 0x40a16                                       |         goto label_19;
                                                                 |     }
    0x000409f6 ldr r4, [sp, 0x48]                                |     r4 = *(arg_48h);
    0x000409f8 movw r0, 0x3e57                                   |     r0 = (r0 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
                                                                 |     do {
    0x000409fc umull r2, r3, r4, r1                              |         r2:r3 = r4 * r1;
    0x00040a00 mov r2, r1                                        |         r2 = r1;
    0x00040a02 cmp r2, r0                                        |         
    0x00040a04 add.w sl, sl, 0x24                                |         sl += 0x24;
    0x00040a08 sub.w r1, r1, r3                                  |         r1 -= r3;
    0x00040a0c add.w r3, r3, r1, lsr 1                           |         r3 += (r1 >> 1);
    0x00040a10 lsr.w r1, r3, 5                                   |         r1 = r3 >> 5;
    0x00040a14 bhi 0x409fc                                       |         
                                                                 |     } while (r2 > r0);
                                                                 | label_19:
    0x00040a16 add.w r0, r1, r1, lsl 3                           |     r0 = r1 + (r1 << 3);
    0x00040a1a adds r1, 0x26                                     |     r1 += 0x26;
    0x00040a1c str r5, [sp, 0x30]                                |     *(arg_30h) = r5;
    0x00040a1e mov r8, r6                                        |     r8 = r6;
    0x00040a20 lsls r0, r0, 2                                    |     r0 <<= 2;
    0x00040a22 bl 0x40cf8                                        |     fcn_00040cf8 (r0, r1, r2);
    0x00040a26 movs r3, 0                                        |     r3 = 0;
    0x00040a28 add sl, r0                                        |     sl += r0;
    0x00040a2a str r3, [sp, 8]                                   |     var_8h = r3;
    0x00040a2c b 0x40886                                         |     goto label_0;
                                                                 | label_12:
    0x00040a2e ldr r3, [sp, 0x4c]                                |     r3 = *(arg_4ch);
    0x00040a30 ldr r2, [sp, 0x30]                                |     r2 = *(arg_30h);
    0x00040a32 ldr.w fp, [sp, 0x10]                              |     fp = var_10h;
    0x00040a36 ldr r4, [sp, 8]                                   |     r4 = var_8h;
    0x00040a38 cmp r3, r2                                        |     
    0x00040a3a add.w r5, fp, 1                                   |     r5 += arg_1h;
    0x00040a3e add.w r4, r4, 1                                   |     r4++;
                                                                 |     if (r3 > r2) {
    0x00040a42 bhi.w 0x40832                                     |         goto label_4;
                                                                 |     }
    0x00040a46 ldr.w fp, [sp, 0x34]                              |     fp = *(arg_34h);
    0x00040a4a mov r7, r8                                        |     r7 = r8;
                                                                 | label_10:
    0x00040a4c cmp.w r7, 0x800                                   |     
                                                                 |     if (r7 >= 0x800) {
    0x00040a50 bhs 0x40988                                       |         goto label_5;
                                                                 |     }
    0x00040a52 movs r3, 0                                        |     r3 = 0;
    0x00040a54 strb.w r3, [fp, r7]                               |     *((fp + r7)) = r3;
    0x00040a58 b 0x4095c                                         |     goto label_6;
                                                                 | label_14:
    0x00040a5a ldr.w sb, [sp, 0x40]                              |     sb = *(arg_40h);
                                                                 | label_18:
    0x00040a5e add.w r3, r0, 0x61                                |     r3 = r0 + 0x61;
    0x00040a62 uxtb r3, r3                                       |     r3 = (int8_t) r3;
    0x00040a64 b 0x409c8                                         |     goto label_7;
                                                                 | label_17:
    0x00040a66 blx 0xbe48                                        |     fcn_0000be48 ();
    0x00040a6a nop                                               |     
    0x00040a6c stm r4!, {r3, r7}                                 |     *(r4!) = r3;
                                                                 |     *((r4! + 4)) = r7;
    0x00040a6e movs r1, r0                                       |     r1 = r0;
    0x00040a70 lsls r4, r2, 0xc                                  |     r4 = r2 << 0xc;
    0x00040a72 movs r0, r0                                       |     
                                                                 |     if (r2 != 0) {
    0x00040a74 cbnz r2, 0x40af6                                  |         void (*0x40af6)() ();
                                                                 |     }
    0x00040a76 movs r0, r0                                       |     
    0x00040a78 asrs r6, r5, 0x1e                                 |     r6 = r5 >> 0x1e;
    0x00040a7a movs r0, r0                                       |     
                                                                 |     if (r0 != 0) {
    0x00040a7c cbnz r0, 0x40ae4                                  |         void (*0x40ae4)() ();
                                                                 |     }
    0x00040a7e movs r0, r0                                       |     
                                                                 |     if (r2 != 0) {
    0x00040a80 cbnz r2, 0x40ace                                  |         void (*0x40ace)() ();
                                                                 |     }
    0x00040a82 movs r0, r0                                       |     
    0x00040a84 adds r0, r7, r2                                   |     r0 = r7 + r2;
    0x00040a86 movs r0, r0                                       |     
    0x00040a88 stm r2!, {r1, r2, r3, r4, r5, r6}                 |     *(r2!) = r1;
                                                                 |     *((r2! + 4)) = r2;
                                                                 |     *((r2! + 8)) = r3;
                                                                 |     *((r2! + 12)) = r4;
                                                                 |     *((r2! + 16)) = r5;
                                                                 |     *((r2! + 20)) = r6;
    0x00040a8a movs r1, r0                                       |     r1 = r0;
    0x00040a8c asrs r2, r2, 0x18                                 |     r2 >>= 0x18;
    0x00040a8e movs r0, r0                                       |     
                                                                 |     if (r0 != 0) {
    0x00040a90 cbnz r0, 0x40ad2                                  |         void (*0x40ad2)() ();
                                                                 |     }
    0x00040a92 movs r0, r0                                       |     
                                                                 |     if (r2 != 0) {
    0x00040a94 cbnz r2, 0x40ad0                                  |         void (*0x40ad0)() ();
                                                                 |     }
    0x00040a96 movs r0, r0                                       |     
    0x00040a98 adds r4, r0, r1                                   |     r4 = r0 + r1;
    0x00040a9a movs r0, r0                                       |     
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x239bc */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.VFS_FILE_CONTENTS ()                             | void VFS_FILE_CONTENTS (int16_t arg_290h, int16_t arg_3c0h, int16_t arg_10000h, int16_t arg1, int16_t arg2) {
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h_2;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_88h;
                                                                 |     int16_t var_8ch;
                                                                 |     int16_t var_ach;
                                                                 |     int16_t var_b0h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x000239bc ldr r2, [pc, 0x35c]                               |     
    0x000239be ldr r3, [pc, 0x360]                               |     r3 = *(0x23d22);
    0x000239c0 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x000239c4 mov r7, r0                                        |     r7 = r0;
    0x000239c6 vpush {d8, d9}                                    |     __asm ("vpush {d8, d9}");
    0x000239ca add r2, pc                                        |     r2 = 0x476ea;
    0x000239cc sub.w sp, sp, 0x10000                             |     
    0x000239d0 movs r6, 0                                        |     r6 = 0;
    0x000239d2 ldr r3, [r2, r3]                                  |     
    0x000239d4 sub sp, 0xb4                                      |     
    0x000239d6 add.w r0, sp, 0x10000                             |     r0 += arg_10000h;
    0x000239d8 adds r0, 0x80                                     |     r0 += 0x80;
    0x000239da add r4, sp, 0xb0                                  |     r4 += var_b0h;
    0x000239dc adds r0, 0xac                                     |     r0 += 0xac;
    0x000239de mov r5, r1                                        |     r5 = r1;
    0x000239e0 ldr r3, [r3]                                      |     r3 = *(0x476ea);
    0x000239e2 str r3, [r0]                                      |     *(r0) = r3;
    0x000239e4 mov.w r3, 0                                       |     r3 = 0;
    0x000239e8 strd r6, r6, [r4, -0x9c]                          |     __asm ("strd r6, r6, [r4, -0x9c]");
    0x000239ec str r6, [r4, -0x94]                               |     *((r4 - 0x94)) = r6;
    0x000239f0 bl 0x34f20                                        |     zbx_time ();
    0x000239f4 ldr r3, [r7, 4]                                   |     r3 = *((r7 + 4));
    0x000239f6 ldr.w r8, [pc, 0x32c]                             |     
    0x000239fa cmp r3, 2                                         |     
    0x000239fc add r8, pc                                        |     r8 = 0x47726;
                                                                 |     if (r3 > 2) {
    0x000239fe bgt.w 0x23b66                                     |         goto label_9;
                                                                 |     }
    0x00023a02 cmp r3, 0                                         |     
    0x00023a04 vmov.f64 d9, d0                                   |     __asm ("vmov.f64 d9, d0");
    0x00023a08 itt gt                                            |     
                                                                 |     if (r3 <= 0) {
    0x00023a0a ldrgt r2, [r7, 8]                                 |         r2 = *((r7 + 8));
                                                                 |     }
                                                                 |     if (r3 <= 0) {
    0x00023a0c ldrgt r6, [r2]                                    |         r6 = *(r2);
                                                                 |     }
    0x00023a0e cmp r3, 2                                         |     
                                                                 |     if (r3 == 2) {
    0x00023a10 beq.w 0x23b50                                     |         goto label_10;
                                                                 |     }
                                                                 | label_1:
    0x00023a14 movs r3, 0                                        |     r3 = 0;
    0x00023a16 strb r3, [r4, -0x24]                              |     *((r4 - 0x24)) = r3;
                                                                 |     if (r6 != 0) {
                                                                 | label_2:
    0x00023a1a cbz r6, 0x23a20                                   |         
    0x00023a1c ldrb r3, [r6]                                     |         r3 = *(r6);
                                                                 |         if (r3 != 0) {
    0x00023a1e cbnz r3, 0x23a6a                                  |             goto label_11;
                                                                 |         }
                                                                 |     }
    0x00023a20 ldr r0, [r5, 0x28]                                |     r0 = *((r5 + 0x28));
    0x00023a22 movs r6, 1                                        |     r6 = 1;
    0x00023a24 ldr r3, [pc, 0x300]                               |     
    0x00023a26 movs r2, 0                                        |     r2 = 0;
    0x00023a28 movw r1, 0x139                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00023a2c orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x00023a30 str r0, [r5, 0x28]                                |     *((r5 + 0x28)) = r0;
    0x00023a32 add r3, pc                                        |     r3 = 0x4775e;
    0x00023a34 ldr r0, [pc, 0x2f4]                               |     
    0x00023a36 add r0, pc                                        |     r0 = 0x47766;
    0x00023a38 bl 0x35d28                                        |     zbx_strdup2 ();
    0x00023a3c str r0, [r5, 0x20]                                |     *((r5 + 0x20)) = r0;
                                                                 | label_3:
    0x00023a3e ldr r2, [pc, 0x2f0]                               |     
    0x00023a40 add.w r1, sp, 0x10000                             |     r1 += arg_10000h;
    0x00023a44 ldr r3, [pc, 0x2d8]                               |     r3 = *(0x23d20);
    0x00023a46 adds r1, 0xac                                     |     r1 += 0xac;
    0x00023a48 add r2, pc                                        |     r2 = 0x4777e;
    0x00023a4a ldr r3, [r2, r3]                                  |     r3 = *(0x4777e);
    0x00023a4c ldr r2, [r3]                                      |     r2 = *(0x4777e);
    0x00023a4e ldr r3, [r1]                                      |     r3 = *(r1);
    0x00023a50 eors r2, r3                                       |     r2 ^= r3;
    0x00023a52 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x00023a56 bne.w 0x23d16                                     |         goto label_12;
                                                                 |     }
    0x00023a5a mov r0, r6                                        |     r0 = r6;
    0x00023a5c add.w sp, sp, 0x10000                             |     
    0x00023a60 add sp, 0xb4                                      |     
    0x00023a62 vpop {d8, d9}                                     |     __asm ("vpop {d8, d9}");
    0x00023a66 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_11:
    0x00023a6a movs r1, 0                                        |     r1 = 0;
    0x00023a6c mov r0, r6                                        |     r0 = r6;
    0x00023a6e blx 0xbfe4                                        |     r0 = puts (r0);
    0x00023a72 adds r3, r0, 1                                    |     r3 = r0 + 1;
    0x00023a74 mov r7, r0                                        |     r7 = r0;
                                                                 |     if (r3 == r0) {
    0x00023a76 beq.w 0x23bac                                     |         goto label_13;
                                                                 |     }
    0x00023a7a ldr r3, [pc, 0x2b8]                               |     r3 = *(0x23d36);
    0x00023a7c ldr.w fp, [r8, r3]                                |     fp = *((r8 + r3));
    0x00023a80 vldr s15, [fp]                                    |     __asm ("vldr s15, [fp]");
    0x00023a84 vcvt.f64.s32 d8, s15                              |     __asm ("vcvt.f64.s32 d8, s15");
    0x00023a88 bl 0x34f20                                        |     zbx_time ();
    0x00023a8c vsub.f64 d0, d0, d9                               |     __asm ("vsub.f64 d0, d0, d9");
    0x00023a90 vcmpe.f64 d8, d0                                  |     __asm ("vcmpe.f64 d8, d0");
    0x00023a94 vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |     if (r3 < r0) {
    0x00023a98 bmi 0x23b86                                       |         goto label_14;
                                                                 |     }
    0x00023a9a sub.w r1, r4, 0x90                                |     r1 = r4 - 0x90;
    0x00023a9e mov r0, r7                                        |     r0 = r7;
    0x00023aa0 blx 0xc40c                                        |     r0 = fcn_0000c40c ();
    0x00023aa4 mov r6, r0                                        |     r6 = r0;
    0x00023aa6 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00023aa8 bne.w 0x23bf0                                     |         goto label_15;
                                                                 |     }
    0x00023aac ldrd r2, r3, [r4, -0x60]                          |     __asm ("ldrd r2, r3, [r4, -0x60]");
    0x00023ab0 cmp.w r2, 0x10001                                 |     
    0x00023ab4 sbcs r3, r3, 0                                    |     __asm ("sbcs r3, r3, 0");
                                                                 |     if (r2 >= 0x10001) {
    0x00023ab8 bge.w 0x23bd0                                     |         goto label_16;
                                                                 |     }
    0x00023abc vldr s15, [fp]                                    |     __asm ("vldr s15, [fp]");
    0x00023ac0 vcvt.f64.s32 d8, s15                              |     __asm ("vcvt.f64.s32 d8, s15");
    0x00023ac4 bl 0x34f20                                        |     zbx_time ();
    0x00023ac8 vsub.f64 d0, d0, d9                               |     __asm ("vsub.f64 d0, d0, d9");
    0x00023acc vcmpe.f64 d8, d0                                  |     __asm ("vcmpe.f64 d8, d0");
    0x00023ad0 vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |     if (r2 < 0x10001) {
    0x00023ad4 bmi.w 0x23cb4                                     |         goto label_17;
                                                                 |     }
    0x00023ad8 sub.w r3, r4, 0x94                                |     r3 = r4 - 0x94;
    0x00023adc mov r8, r6                                        |     r8 = r6;
    0x00023ade add.w sl, sp, 0x8c                                |     sl += var_8ch;
    0x00023ae2 add.w sb, sp, 0xac                                |     sb += var_ach;
    0x00023ae6 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00023ae8 sub.w r3, r4, 0x98                                |     r3 = r4 - 0x98;
    0x00023aec strd r3, r6, [sp, 8]                              |     __asm ("strd r3, r6, [sp, 8]");
                                                                 |     do {
                                                                 | label_0:
    0x00023af0 mov r3, sl                                        |         r3 = sl;
    0x00023af2 mov.w r2, 0x10000                                 |         r2 = case.0x3207a.11;
    0x00023af6 mov r1, sb                                        |         r1 = sb;
    0x00023af8 mov r0, r7                                        |         r0 = r7;
    0x00023afa bl 0x34a50                                        |         r0 = zbx_read ();
    0x00023afe subs r6, r0, 0                                    |         r6 = r0 - 0;
                                                                 |         if (r6 <= r0) {
    0x00023b00 ble.w 0x23c14                                     |             goto label_18;
                                                                 |         }
    0x00023b04 vldr s15, [fp]                                    |         __asm ("vldr s15, [fp]");
    0x00023b08 vcvt.f64.s32 d8, s15                              |         __asm ("vcvt.f64.s32 d8, s15");
    0x00023b0c bl 0x34f20                                        |         zbx_time ();
    0x00023b10 vsub.f64 d0, d0, d9                               |         __asm ("vsub.f64 d0, d0, d9");
    0x00023b14 vcmpe.f64 d8, d0                                  |         __asm ("vcmpe.f64 d8, d0");
    0x00023b18 vmrs apsr_nzcv, fpscr                             |         __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |         if (r6 < r0) {
    0x00023b1c bmi.w 0x23c5a                                     |             goto label_19;
                                                                 |         }
    0x00023b20 add r8, r6                                        |         r8 += r6;
    0x00023b22 cmp.w r8, 0x10000                                 |         
                                                                 |         if (r8 > 0x10000) {
    0x00023b26 bgt.w 0x23c8c                                     |             goto label_20;
                                                                 |         }
    0x00023b2a mov r1, r6                                        |         r1 = r6;
    0x00023b2c mov r2, sl                                        |         r2 = sl;
    0x00023b2e mov r0, sb                                        |         r0 = sb;
    0x00023b30 bl 0x3a550                                        |         r0 = convert_to_utf8 ();
    0x00023b34 mov r6, r0                                        |         r6 = r0;
    0x00023b36 mov r3, r0                                        |         r3 = r0;
    0x00023b38 ldr r2, [sp, 4]                                   |         r2 = var_4h;
    0x00023b3a sub.w r0, r4, 0x9c                                |         r0 = r4 - 0x9c;
    0x00023b3e ldr r1, [sp, 8]                                   |         r1 = var_8h_2;
    0x00023b40 bl 0x39168                                        |         zbx_strcpy_alloc ()
    0x00023b44 cmp r6, 0                                         |         
    0x00023b46 beq 0x23af0                                       |         
                                                                 |     } while (r6 == 0);
    0x00023b48 mov r0, r6                                        |     r0 = r6;
    0x00023b4a blx 0xbd14                                        |     gai_strerror ();
    0x00023b4e b 0x23af0                                         |     goto label_0;
                                                                 | label_10:
    0x00023b50 ldr r3, [r7, 8]                                   |     r3 = *((r7 + 8));
    0x00023b52 ldr r1, [r3, 4]                                   |     r1 = *((r3 + 4));
    0x00023b54 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x00023b56 beq.w 0x23a14                                     |         goto label_1;
                                                                 |     }
    0x00023b5a movs r2, 0x20                                     |     r2 = 0x20;
    0x00023b5c sub.w r0, r4, 0x24                                |     r0 = r4 - 0x24;
    0x00023b60 bl 0x394f0                                        |     zbx_strlcpy ();
    0x00023b64 b 0x23a1a                                         |     goto label_2;
                                                                 | label_9:
    0x00023b66 ldr r0, [r5, 0x28]                                |     r0 = *((r5 + 0x28));
    0x00023b68 mov r2, r6                                        |     r2 = r6;
    0x00023b6a ldr r3, [pc, 0x1cc]                               |     
    0x00023b6c movw r1, 0x12b                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00023b70 movs r6, 1                                        |     r6 = 1;
    0x00023b72 orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x00023b76 str r0, [r5, 0x28]                                |     *((r5 + 0x28)) = r0;
    0x00023b78 add r3, pc                                        |     r3 = 0x478b6;
    0x00023b7a ldr r0, [pc, 0x1c0]                               |     
    0x00023b7c add r0, pc                                        |     r0 = 0x478be;
    0x00023b7e bl 0x35d28                                        |     zbx_strdup2 ();
    0x00023b82 str r0, [r5, 0x20]                                |     *((r5 + 0x20)) = r0;
    0x00023b84 b 0x23a3e                                         |     goto label_3;
                                                                 | label_14:
    0x00023b86 ldr r1, [r5, 0x28]                                |     r1 = *((r5 + 0x28));
    0x00023b88 movs r6, 1                                        |     r6 = 1;
    0x00023b8a ldr r3, [pc, 0x1b4]                               |     
    0x00023b8c movs r2, 0                                        |     r2 = 0;
    0x00023b8e ldr r0, [pc, 0x1b4]                               |     
    0x00023b90 orr r1, r1, 0x20                                  |     r1 |= 0x20;
    0x00023b94 str r1, [r5, 0x28]                                |     *((r5 + 0x28)) = r1;
    0x00023b96 add r3, pc                                        |     r3 = 0x478dc;
    0x00023b98 add r0, pc                                        |     r0 = 0x478e2;
    0x00023b9a movw r1, 0x145                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00023b9e bl 0x35d28                                        |     zbx_strdup2 ();
    0x00023ba2 str r0, [r5, 0x20]                                |     *((r5 + 0x20)) = r0;
                                                                 |     do {
                                                                 | label_4:
    0x00023ba4 mov r0, r7                                        |         r0 = r7;
    0x00023ba6 blx 0xc47c                                        |         fcn_0000c47c ();
    0x00023baa b 0x23a3e                                         |         goto label_3;
                                                                 | label_13:
    0x00023bac ldr r3, [r5, 0x28]                                |         r3 = *((r5 + 0x28));
    0x00023bae movs r6, 1                                        |         r6 = 1;
    0x00023bb0 orr r3, r3, 0x20                                  |         r3 |= 0x20;
    0x00023bb4 str r3, [r5, 0x28]                                |         *((r5 + 0x28)) = r3;
    0x00023bb6 blx 0xc15c                                        |         r0 = fcn_0000c15c ();
    0x00023bba ldr r0, [r0]                                      |         r0 = *(r0);
    0x00023bbc bl 0x26fdc                                        |         zbx_strerror ();
    0x00023bc0 ldr r1, [pc, 0x184]                               |         
    0x00023bc2 mov r2, r0                                        |         r2 = r0;
    0x00023bc4 movs r0, 0                                        |         r0 = 0;
    0x00023bc6 add r1, pc                                        |         r1 = 0x47912;
    0x00023bc8 bl 0x396b0                                        |         zbx_dsprintf ();
    0x00023bcc str r0, [r5, 0x20]                                |         *((r5 + 0x20)) = r0;
    0x00023bce b 0x23a3e                                         |         goto label_3;
                                                                 | label_16:
    0x00023bd0 ldr r1, [r5, 0x28]                                |         r1 = *((r5 + 0x28));
    0x00023bd2 mov r2, r0                                        |         r2 = r0;
    0x00023bd4 ldr r3, [pc, 0x174]                               |         
    0x00023bd6 movs r6, 1                                        |         r6 = 1;
    0x00023bd8 ldr r0, [pc, 0x174]                               |         
    0x00023bda orr r1, r1, 0x20                                  |         r1 |= 0x20;
    0x00023bde str r1, [r5, 0x28]                                |         *((r5 + 0x28)) = r1;
    0x00023be0 add r3, pc                                        |         r3 = 0x47930;
    0x00023be2 add r0, pc                                        |         r0 = 0x47936;
    0x00023be4 movw r1, 0x151                                    |         r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00023be8 bl 0x35d28                                        |         zbx_strdup2 ();
    0x00023bec str r0, [r5, 0x20]                                |         *((r5 + 0x20)) = r0;
    0x00023bee b 0x23ba4                                         |         
                                                                 |     } while (1);
                                                                 | label_15:
    0x00023bf0 ldr r3, [r5, 0x28]                                |     r3 = *((r5 + 0x28));
    0x00023bf2 movs r6, 1                                        |     r6 = 1;
    0x00023bf4 orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x00023bf8 str r3, [r5, 0x28]                                |     *((r5 + 0x28)) = r3;
    0x00023bfa blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x00023bfe ldr r0, [r0]                                      |     r0 = *(r0);
    0x00023c00 bl 0x26fdc                                        |     zbx_strerror ();
    0x00023c04 ldr r1, [pc, 0x14c]                               |     
    0x00023c06 mov r2, r0                                        |     r2 = r0;
    0x00023c08 movs r0, 0                                        |     r0 = 0;
    0x00023c0a add r1, pc                                        |     r1 = 0x47962;
    0x00023c0c bl 0x396b0                                        |     zbx_dsprintf ();
    0x00023c10 str r0, [r5, 0x20]                                |     *((r5 + 0x20)) = r0;
    0x00023c12 b 0x23ba4                                         |     goto label_4;
                                                                 | label_18:
    0x00023c14 mov r1, r6                                        |     r1 = r6;
    0x00023c16 ldr r6, [sp, 0xc]                                 |     r6 = var_ch;
    0x00023c18 adds r1, 1                                        |     r1++;
                                                                 |     if (r1 == 1) {
    0x00023c1a beq 0x23cf0                                       |         goto label_21;
                                                                 |     }
    0x00023c1c ldr r3, [r4, -0x94]                               |     r3 = *((r4 - 0x94));
    0x00023c20 ldr r0, [r4, -0x9c]                               |     r0 = *((r4 - 0x9c));
    0x00023c24 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00023c26 bne 0x23cd4                                       |         goto label_22;
                                                                 |     }
                                                                 | label_5:
    0x00023c28 ldr r0, [r4, -0x9c]                               |     r0 = *((r4 - 0x9c));
                                                                 |     if (r0 != 0) {
    0x00023c2c cbz r0, 0x23c38                                   |         
    0x00023c2e blx 0xbd14                                        |         gai_strerror ();
    0x00023c32 movs r3, 0                                        |         r3 = 0;
    0x00023c34 str r3, [r4, -0x9c]                               |         *((r4 - 0x9c)) = r3;
                                                                 |     }
    0x00023c38 ldr r3, [pc, 0x11c]                               |     
    0x00023c3a movs r2, 0                                        |     r2 = 0;
    0x00023c3c ldr r0, [pc, 0x11c]                               |     
    0x00023c3e movw r1, 0x17f                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00023c42 add r3, pc                                        |     r3 = 0x4799e;
    0x00023c44 add r0, pc                                        |     r0 = "GET %s%s HTTP/1.1\r\nHost: %s%s%s\r\nConnection: close\r\n\r\n";
    0x00023c46 bl 0x35d28                                        |     zbx_strdup2 ();
    0x00023c4a str r0, [r4, -0x9c]                               |     *((r4 - 0x9c)) = r0;
                                                                 | label_6:
    0x00023c4e ldr r3, [r5, 0x28]                                |     r3 = *((r5 + 0x28));
    0x00023c50 str r0, [r5, 0x1c]                                |     *((r5 + 0x1c)) = r0;
    0x00023c52 orr r3, r3, 8                                     |     r3 |= 8;
    0x00023c56 str r3, [r5, 0x28]                                |     *((r5 + 0x28)) = r3;
    0x00023c58 b 0x23ba4                                         |     goto label_4;
                                                                 | label_19:
    0x00023c5a ldr r2, [r5, 0x28]                                |     r2 = *((r5 + 0x28));
    0x00023c5c movw r1, 0x161                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00023c60 ldr r3, [pc, 0xfc]                                |     
    0x00023c62 ldr r0, [pc, 0x100]                               |     
    0x00023c64 orr r2, r2, 0x20                                  |     r2 |= 0x20;
    0x00023c68 add r3, pc                                        |     r3 = 0x479cc;
    0x00023c6a str r2, [r5, 0x28]                                |     *((r5 + 0x28)) = r2;
    0x00023c6c add r0, pc                                        |     r0 = 0x479d6;
    0x00023c6e movs r2, 0                                        |     r2 = 0;
    0x00023c70 bl 0x35d28                                        |     zbx_strdup2 ();
    0x00023c74 ldr r3, [r4, -0x9c]                               |     r3 = *((r4 - 0x9c));
    0x00023c78 str r0, [r5, 0x20]                                |     *((r5 + 0x20)) = r0;
                                                                 |     if (r3 == 0) {
    0x00023c7a cbz r3, 0x23cb0                                   |         goto label_8;
                                                                 |     }
                                                                 |     do {
                                                                 | label_7:
    0x00023c7c mov r0, r3                                        |         r0 = r3;
    0x00023c7e movs r6, 1                                        |         r6 = 1;
    0x00023c80 blx 0xbd14                                        |         gai_strerror ();
    0x00023c84 movs r3, 0                                        |         r3 = 0;
    0x00023c86 str r3, [r4, -0x9c]                               |         *((r4 - 0x9c)) = r3;
    0x00023c8a b 0x23ba4                                         |         goto label_4;
                                                                 | label_20:
    0x00023c8c ldr r2, [r5, 0x28]                                |         r2 = *((r5 + 0x28));
    0x00023c8e mov.w r1, 0x168                                   |         r1 = case.0x3207a.11;
    0x00023c92 ldr r3, [pc, 0xd4]                                |         
    0x00023c94 ldr r0, [pc, 0xd4]                                |         
    0x00023c96 orr r2, r2, 0x20                                  |         r2 |= 0x20;
    0x00023c9a add r3, pc                                        |         r3 = 0x47a08;
    0x00023c9c str r2, [r5, 0x28]                                |         *((r5 + 0x28)) = r2;
    0x00023c9e add r0, pc                                        |         r0 = 0x47a0e;
    0x00023ca0 movs r2, 0                                        |         r2 = 0;
    0x00023ca2 bl 0x35d28                                        |         zbx_strdup2 ();
    0x00023ca6 ldr r3, [r4, -0x9c]                               |         r3 = *((r4 - 0x9c));
    0x00023caa str r0, [r5, 0x20]                                |         *((r5 + 0x20)) = r0;
    0x00023cac cmp r3, 0                                         |         
    0x00023cae bne 0x23c7c                                       |         
                                                                 |     } while (r3 != 0);
                                                                 | label_8:
    0x00023cb0 movs r6, 1                                        |     r6 = 1;
    0x00023cb2 b 0x23ba4                                         |     goto label_4;
                                                                 | label_17:
    0x00023cb4 ldr r1, [r5, 0x28]                                |     r1 = *((r5 + 0x28));
    0x00023cb6 mov r2, r6                                        |     r2 = r6;
    0x00023cb8 ldr r3, [pc, 0xb4]                                |     
    0x00023cba movs r6, 1                                        |     r6 = 1;
    0x00023cbc ldr r0, [pc, 0xb4]                                |     
    0x00023cbe orr r1, r1, 0x20                                  |     r1 |= 0x20;
    0x00023cc2 str r1, [r5, 0x28]                                |     *((r5 + 0x28)) = r1;
    0x00023cc4 add r3, pc                                        |     r3 = 0x47a38;
    0x00023cc6 add r0, pc                                        |     r0 = 0x47a3e;
    0x00023cc8 movw r1, 0x157                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00023ccc bl 0x35d28                                        |     zbx_strdup2 ();
    0x00023cd0 str r0, [r5, 0x20]                                |     *((r5 + 0x20)) = r0;
    0x00023cd2 b 0x23ba4                                         |     goto label_4;
                                                                 | label_22:
    0x00023cd4 ldr r1, [pc, 0xa0]                                |     
    0x00023cd6 add r1, pc                                        |     r1 = 0x47a52;
    0x00023cd8 bl 0x3936c                                        |     zbx_rtrim ();
    0x00023cdc ldr r3, [r4, -0x94]                               |     r3 = *((r4 - 0x94));
    0x00023ce0 subs r3, r3, r0                                   |     r3 -= r0;
    0x00023ce2 str r3, [r4, -0x94]                               |     *((r4 - 0x94)) = r3;
    0x00023ce6 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00023ce8 beq 0x23c28                                       |         goto label_5;
                                                                 |     }
    0x00023cea ldr r0, [r4, -0x9c]                               |     r0 = *((r4 - 0x9c));
    0x00023cee b 0x23c4e                                         |     goto label_6;
                                                                 | label_21:
    0x00023cf0 ldr r2, [r5, 0x28]                                |     r2 = *((r5 + 0x28));
    0x00023cf2 mov.w r1, 0x174                                   |     r1 = case.0x3207a.11;
    0x00023cf6 ldr r3, [pc, 0x84]                                |     
    0x00023cf8 ldr r0, [pc, 0x84]                                |     
    0x00023cfa orr r2, r2, 0x20                                  |     r2 |= 0x20;
    0x00023cfe add r3, pc                                        |     r3 = "%04d-%02d-%02d,%02d:%02d:%02d.%03ld,%1c%02d:%02d";
    0x00023d00 str r2, [r5, 0x28]                                |     *((r5 + 0x28)) = r2;
    0x00023d02 add r0, pc                                        |     r0 = 0x47a86;
    0x00023d04 movs r2, 0                                        |     r2 = 0;
    0x00023d06 bl 0x35d28                                        |     zbx_strdup2 ();
    0x00023d0a ldr r3, [r4, -0x9c]                               |     r3 = *((r4 - 0x9c));
    0x00023d0e str r0, [r5, 0x20]                                |     *((r5 + 0x20)) = r0;
    0x00023d10 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00023d12 bne 0x23c7c                                       |         goto label_7;
                                                                 |     }
    0x00023d14 b 0x23cb0                                         |     goto label_8;
                                                                 | label_12:
    0x00023d16 blx 0xbe48                                        |     fcn_0000be48 ();
    0x00023d1a nop                                               |     
    0x00023d1c str r2, [sp, 0x88]                                |     var_88h = r2;
    0x00023d1e movs r3, r0                                       |     r3 = r0;
    0x00023d20 lsls r4, r2, 0xc                                  |     r4 = r2 << 0xc;
    0x00023d22 movs r0, r0                                       |     
    0x00023d24 str r1, [sp, 0x3c0]                               |     *(arg_3c0h) = r1;
    0x00023d26 movs r3, r0                                       |     r3 = r0;
    0x00023d28 lsrs r2, r6, 0x1e                                 |     r2 = r6 >> 0x1e;
    0x00023d2a movs r2, r0                                       |     r2 = r0;
    0x00023d2c subs r0, 0xe6                                     |     r0 -= 0xe6;
    0x00023d2e movs r2, r0                                       |     r2 = r0;
    0x00023d30 str r1, [sp, 0x290]                               |     *(arg_290h) = r1;
    0x00023d32 movs r3, r0                                       |     r3 = r0;
    0x00023d34 lsls r0, r4, 0xf                                  |     r0 = r4 << 0xf;
    0x00023d36 movs r0, r0                                       |     
    0x00023d38 lsrs r4, r2, 0x19                                 |     r4 = r2 >> 0x19;
    0x00023d3a movs r2, r0                                       |     r2 = r0;
    0x00023d3c adds r7, 0xa0                                     |     r7 += 0xa0;
    0x00023d3e movs r2, r0                                       |     r2 = r0;
    0x00023d40 adds r7, 0xda                                     |     r7 += 0xda;
    0x00023d42 movs r2, r0                                       |     r2 = r0;
    0x00023d44 adds r7, 0x84                                     |     r7 += 0x84;
    0x00023d46 movs r2, r0                                       |     r2 = r0;
    0x00023d48 adds r7, 0x92                                     |     r7 += 0x92;
    0x00023d4a movs r2, r0                                       |     r2 = r0;
    0x00023d4c adds r7, 0xb0                                     |     r7 += 0xb0;
    0x00023d4e movs r2, r0                                       |     r2 = r0;
    0x00023d50 adds r7, 0x3a                                     |     r7 += 0x3a;
    0x00023d52 movs r2, r0                                       |     r2 = r0;
    0x00023d54 adds r7, 0x1a                                     |     r7 += 0x1a;
    0x00023d56 movs r2, r0                                       |     r2 = r0;
    0x00023d58 subs r6, r7, 7                                    |     r6 = r7 - 7;
    0x00023d5a movs r2, r0                                       |     r2 = r0;
    0x00023d5c adds r6, 0xd8                                     |     r6 += 0xd8;
    0x00023d5e movs r2, r0                                       |     r2 = r0;
    0x00023d60 adds r7, 8                                        |     r7 += 8;
    0x00023d62 movs r2, r0                                       |     r2 = r0;
    0x00023d64 adds r6, 0xb0                                     |     r6 += 0xb0;
    0x00023d66 movs r2, r0                                       |     r2 = r0;
    0x00023d68 adds r6, 0xf6                                     |     r6 += 0xf6;
    0x00023d6a movs r2, r0                                       |     r2 = r0;
    0x00023d6c adds r6, 0x7e                                     |     r6 += 0x7e;
    0x00023d6e movs r2, r0                                       |     r2 = r0;
    0x00023d70 adds r6, 0xac                                     |     r6 += 0xac;
    0x00023d72 movs r2, r0                                       |     r2 = r0;
    0x00023d74 adds r6, 0x56                                     |     r6 += 0x56;
    0x00023d76 movs r2, r0                                       |     r2 = r0;
    0x00023d78 ldrb r6, [r7, 9]                                  |     r6 = *((r7 + 9));
    0x00023d7a movs r2, r0                                       |     r2 = r0;
    0x00023d7c movs r4, 0xe2                                     |     r4 = 0xe2;
    0x00023d7e movs r2, r0                                       |     r2 = r0;
    0x00023d80 adds r6, 0x1a                                     |     r6 += 0x1a;
    0x00023d82 movs r2, r0                                       |     r2 = r0;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x170cc */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.add_user_parameter ()                            | void add_user_parameter (int16_t arg_24h, int16_t arg_2ch, int16_t arg_34h, int16_t arg_38h, int16_t arg_3ch, int16_t arg_65h, int16_t arg_7ch, int16_t arg_28h, int16_t arg_30h, int16_t arg_87ch, uint32_t arg1, uint32_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_18h_2;
                                                                 |     int16_t var_34h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_4ch;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x000170cc svcmi 0xf0e92d                                    |     __asm ("svcmi case.0x3207a.11");
    0x000170d0 mov r5, r2                                        |     r5 = r2;
    0x000170d2 ldr r2, [pc, 0xd0]                                |     
    0x000170d4 mov fp, r3                                        |     
    0x000170d6 sub sp, 0x3c                                      |     
    0x000170d8 movs r4, 0                                        |     r4 = 0;
    0x000170da ldr r3, [pc, 0xcc]                                |     r3 = *(0x171aa);
    0x000170dc add.w r8, sp, 0x10                                |     r8 += var_ch;
    0x000170e0 add r2, pc                                        |     r2 = 0x2e28a;
    0x000170e2 vmov.i32 d16, 0                                   |     __asm ("vmov.i32 d16, 0");
    0x000170e6 ldr.w sl, [pc, 0xc4]                              |     sl = *(0x000171ac);
    0x000170ea mov r6, r1                                        |     r6 = r1;
    0x000170ec ldr r3, [r2, r3]                                  |     
    0x000170ee mov r1, r8                                        |     r1 = r8;
    0x000170f0 mov r7, r0                                        |     r7 = r0;
    0x000170f2 add sl, pc                                        |     sl += pc;
    0x000170f4 ldr r3, [r3]                                      |     r3 = *(0x2e28a);
    0x000170f6 str r3, [sp, 0x34]                                |     var_34h = r3;
    0x000170f8 mov.w r3, 0                                       |     r3 = 0;
    0x000170fc vstr d16, [sp, 0x20]                              |     __asm ("vstr d16, [sp, 0x20]");
    0x00017100 strd r4, r4, [sp, 0x10]                           |     __asm ("strd r4, r4, [sp, 0x10]");
    0x00017104 str r4, [sp, 0x18]                                |     var_18h_2 = r4;
    0x00017106 strd r4, r4, [sp, 0x28]                           |     __asm ("strd r4, r4, [sp, 0x28]");
    0x0001710a bl 0x16fa4                                        |     r0 = parse_item_key ();
                                                                 |     if (r0 == 0) {
    0x0001710e cbz r0, 0x17154                                   |         goto label_34;
                                                                 |     }
    0x00017110 ldr.w sb, [sp, 0x10]                              |     sb = var_ch;
    0x00017114 mov r4, r0                                        |     r4 = r0;
                                                                 | label_0:
    0x00017116 ldr r1, [pc, 0x98]                                |     
    0x00017118 mov r2, fp                                        |     r2 = fp;
    0x0001711a mov r0, r5                                        |     r0 = r5;
    0x0001711c add r1, pc                                        |     r1 = 0x2e2d2;
    0x0001711e bl 0x394f0                                        |     zbx_strlcpy ();
                                                                 |     do {
    0x00017122 cmp.w sb, 0                                       |         
                                                                 |         if (sb != 0) {
    0x00017126 beq 0x17132                                       |             
    0x00017128 mov r0, sb                                        |             r0 = sb;
    0x0001712a blx 0xbd14                                        |             gai_strerror ();
    0x0001712e movs r3, 0                                        |             r3 = 0;
    0x00017130 str r3, [sp, 0x10]                                |             var_ch = r3;
                                                                 |         }
    0x00017132 mov r0, r8                                        |         r0 = r8;
    0x00017134 bl 0x1642c                                        |         fcn_0001642c (r0);
    0x00017138 ldr r2, [pc, 0x78]                                |         
    0x0001713a ldr r3, [pc, 0x6c]                                |         r3 = *(0x171aa);
    0x0001713c add r2, pc                                        |         r2 = 0x2e2f4;
    0x0001713e ldr r3, [r2, r3]                                  |         r3 = *(0x2e2f4);
    0x00017140 ldr r2, [r3]                                      |         r2 = *(0x2e2f4);
    0x00017142 ldr r3, [sp, 0x34]                                |         r3 = var_34h;
    0x00017144 eors r2, r3                                       |         r2 ^= r3;
    0x00017146 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0001714a bne 0x1719e                                       |             goto label_35;
                                                                 |         }
    0x0001714c mov r0, r4                                        |         r0 = r4;
    0x0001714e add sp, 0x3c                                      |         
    0x00017150 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_34:
    0x00017154 ldrd sb, r3, [sp, 0x10]                           |         __asm ("ldrd sb, r3, [var_ch]");
    0x00017158 cmp r3, 1                                         |         
                                                                 |         if (r3 == 1) {
    0x0001715a beq 0x17186                                       |             goto label_36;
                                                                 |         }
                                                                 |         if (r3 != 0) {
    0x0001715c cbnz r3, 0x17180                                  |             goto label_37;
                                                                 |         }
    0x0001715e movs r3, 4                                        |         r3 = 4;
                                                                 | label_1:
    0x00017160 ldr r1, [pc, 0x54]                                |         r1 = *(0x171b8);
    0x00017162 mov r2, r5                                        |         r2 = r5;
    0x00017164 strd sb, r3, [sp]                                 |         __asm ("strd sb, r3, [sp]");
    0x00017168 mov r3, fp                                        |         r3 = fp;
    0x0001716a ldr r0, [pc, 0x50]                                |         
    0x0001716c ldr.w r1, [sl, r1]                                |         r1 = *((sl + r1));
    0x00017170 add r0, pc                                        |         r0 = 0x2e332;
    0x00017172 strd r1, r6, [sp, 8]                              |         __asm ("strd r1, r6, [sp, 8]");
    0x00017176 mov r1, sp                                        |         r1 = sp;
    0x00017178 bl 0x16358                                        |         r0 = fcn_00016358 (r0, r1, r2, r3);
    0x0001717c mov r4, r0                                        |         r4 = r0;
    0x0001717e b 0x17122                                         |         
                                                                 |     } while (1);
                                                                 |     do {
                                                                 | label_37:
    0x00017180 mov.w r4, -1                                      |         r4 = -1;
    0x00017184 b 0x17116                                         |         goto label_0;
                                                                 | label_36:
    0x00017186 mov r0, sb                                        |         r0 = sb;
    0x00017188 blx 0xc114                                        |         r0 = fcn_0000c114 ();
    0x0001718c adds r1, r7, r0                                   |         r1 = r7 + r0;
    0x0001718e ldr r0, [pc, 0x30]                                |         
    0x00017190 add r0, pc                                        |         r0 = 0x2e356;
    0x00017192 blx 0xbc58                                        |         r0 = fcn_0000bc58 ();
    0x00017196 cmp r0, 0                                         |         
    0x00017198 bne 0x17180                                       |         
                                                                 |     } while (r0 != 0);
    0x0001719a movs r3, 5                                        |     r3 = 5;
    0x0001719c b 0x17160                                         |     goto label_1;
                                                                 | label_35:
    0x0001719e blx 0xbe48                                        |     fcn_0000be48 ();
    0x000171a2 nop                                               |     
    0x000171a4 ldrh r4, [r1, r4]                                 |     r4 = *((r1 + r4));
    0x000171a6 movs r4, r0                                       |     r4 = r0;
    0x000171a8 lsls r4, r2, 0xc                                  |     r4 = r2 << 0xc;
    0x000171aa movs r0, r0                                       |     
                                                                 |     do {
    0x000171ac ldrh r2, [r7, r3]                                 |         r2 = *((r7 + r3));
    0x000171ae movs r4, r0                                       |         r4 = r0;
                                                                 |         if (r4 > r0) {
    0x000171b0 bgt 0x1728c                                       |             goto label_38;
                                                                 |         }
    0x000171b2 movs r2, r0                                       |         r2 = r0;
    0x000171b4 ldrh r0, [r6, r2]                                 |         r0 = *((r6 + r2));
    0x000171b6 movs r4, r0                                       |         r4 = r0;
    0x000171b8 lsls r0, r1, 0xf                                  |         r0 = r1 << 0xf;
    0x000171ba movs r0, r0                                       |         
    0x000171bc str r0, [r2, 0x74]                                |         *((r2 + 0x74)) = r0;
    0x000171be movs r4, r0                                       |         r4 = r0;
    0x000171c0 blt 0x171ac                                       |         
                                                                 |     } while (r4 < r0);
    0x000171c2 movs r2, r0                                       |     r2 = r0;
                                                                 | label_38:
    0x0001728c cdp2 p8, 8, c2, c11, c0, 0                        |     __asm ("cdp2 p8, 8, c2, c11, c0, 0");
                                                                 |     if (r2 != r0) {
    0x00017290 bne.w 0x1762c                                     |         goto label_9;
                                                                 |     }
    0x00017294 lsls r6, r7, 0x1f                                 |     r6 = r7 << 0x1f;
                                                                 |     if (r6 >= r7) {
    0x00017296 bpl 0x17366                                       |         goto label_39;
                                                                 |     }
    0x00017298 ldr.w r3, [pc, 0x444]                             |     
    0x0001729c add r3, pc                                        |     r3 = 0x2e980;
    0x0001729e ldr r4, [r3, 4]                                   |     r4 = *(0x2e984);
    0x000172a0 ldr r0, [r4]                                      |     r0 = *(0x2e984);
    0x000172a2 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000172a4 beq 0x1738e                                       |         goto label_40;
                                                                 |     }
    0x000172a6 ldr.w r8, [r5]                                    |     r8 = *(r5);
    0x000172aa b 0x172b4                                         |     
                                                                 |     while (r0 != 0) {
    0x000172ac ldr r0, [r4, 0x10]!                               |         r0 = *((r4 += 0x10));
    0x000172b0 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x000172b2 beq 0x1738e                                       |             goto label_40;
                                                                 |         }
    0x000172b4 mov r1, r8                                        |         r1 = r8;
    0x000172b6 mov r6, r4                                        |         r6 = r4;
    0x000172b8 blx 0xbc58                                        |         r0 = fcn_0000bc58 ();
    0x000172bc cmp r0, 0                                         |         
    0x000172be bne 0x172ac                                       |         
                                                                 |     }
                                                                 | label_4:
    0x000172c0 ldr r3, [r6]                                      |     r3 = *(r6);
    0x000172c2 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x000172c4 beq.w 0x17588                                     |         goto label_41;
                                                                 |     }
    0x000172c8 lsls r4, r7, 0x1e                                 |     r4 = r7 << 0x1e;
    0x000172ca ldr r3, [r6, 4]                                   |     r3 = *((r6 + 4));
                                                                 |     if (r4 < r7) {
    0x000172cc bpl 0x172d6                                       |         
    0x000172ce ands r2, r3, 2                                    |         r2 = r3 & 2;
                                                                 |         if (r2 == r3) {
    0x000172d2 beq.w 0x175d0                                     |             goto label_42;
                                                                 |         }
                                                                 |     }
    0x000172d6 ands r2, r3, 1                                    |     r2 = r3 & 1;
                                                                 |     if (r2 == r3) {
    0x000172da beq 0x173ba                                       |         goto label_43;
                                                                 |     }
    0x000172dc lsls r2, r3, 0x1d                                 |     r2 = r3 << 0x1d;
                                                                 |     if (r2 >= r3) {
    0x000172de bpl.w 0x173e4                                     |         goto label_8;
                                                                 |     }
    0x000172e2 movs r3, 0                                        |     r3 = 0;
    0x000172e4 ldr r2, [r6, 0xc]                                 |     r2 = *((r6 + 0xc));
    0x000172e6 str r3, [sp, 0x28]                                |     *((sp + 0x28)) = r3;
    0x000172e8 add r7, sp, 0x28                                  |     r7 = sp + 0x28;
    0x000172ea str r3, [sp, 0x2c]                                |     *(arg_2ch) = r3;
    0x000172ec add.w sb, sp, 0x2c                                |     sb += arg_2ch;
    0x000172f0 str r3, [sp, 0x30]                                |     *((sp + 0x30)) = r3;
    0x000172f2 add.w r8, sp, 0x30                                |     r8 = sp + 0x30;
    0x000172f6 ldr r3, [pc, 0x3ec]                               |     
    0x000172f8 mov sl, r2                                        |     sl = r2;
    0x000172fa str r2, [sp, 0x14]                                |     var_14h = r2;
    0x000172fc str r6, [sp, 0x24]                                |     *(arg_24h) = r6;
    0x000172fe add r3, pc                                        |     r3 = 0x2e9e8;
    0x00017300 str r3, [sp, 0x20]                                |     *((sp + 0x20)) = r3;
    0x00017302 add r3, sp, 0x64                                  |     r3 += var_8h;
    0x00017304 str r3, [sp, 8]                                   |     *((sp + 8)) = r3;
    0x00017306 b 0x17328                                         |     
                                                                 |     while (r3 == 0) {
    0x00017308 ldrb r3, [r4]                                     |         r3 = *(r4);
    0x0001730a cmp r3, 0x30                                      |         
                                                                 |         if (r3 == 0x30) {
    0x0001730c beq 0x17358                                       |             goto label_44;
                                                                 |         }
                                                                 | label_2:
    0x0001730e sub.w r2, r3, 0x31                                |         r2 = r3 - 0x31;
    0x00017312 cmp r2, 8                                         |         
                                                                 |         if (r2 > 8) {
    0x00017314 bhi.w 0x17428                                     |             goto label_45;
                                                                 |         }
    0x00017318 ldr r2, [r5, 4]                                   |         r2 = *((r5 + 4));
    0x0001731a sub.w r1, r3, 0x30                                |         r1 = r3 - 0x30;
    0x0001731e cmp r1, r2                                        |         
                                                                 |         if (r1 <= r2) {
    0x00017320 ble.w 0x17446                                     |             goto label_46;
                                                                 |         }
                                                                 | label_3:
    0x00017324 add.w sl, r4, 1                                   |         sl = r4 + 1;
    0x00017328 movs r1, 0x24                                     |         r1 = 0x24;
    0x0001732a mov r0, sl                                        |         r0 = sl;
    0x0001732c blx 0xc138                                        |         r0 = fcn_0000c138 ();
    0x00017330 mov r4, r0                                        |         r4 = r0;
    0x00017332 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00017334 beq.w 0x175b2                                     |             goto label_47;
                                                                 |         }
    0x00017338 sub.w r3, r4, sl                                  |         r3 = r4 - sl;
    0x0001733c mov r2, r8                                        |         r2 = r8;
    0x0001733e str r3, [sp]                                      |         *(sp) = r3;
    0x00017340 mov r1, sb                                        |         r1 = sb;
    0x00017342 mov r3, sl                                        |         r3 = sl;
    0x00017344 mov r0, r7                                        |         r0 = r7;
    0x00017346 bl 0x3905c                                        |         zbx_strncpy_alloc ();
    0x0001734a ldrb r3, [r4, 1]                                  |         r3 = *((r4 + 1));
    0x0001734c cmp r3, 0                                         |         
    0x0001734e beq 0x17308                                       |         
                                                                 |     }
    0x00017350 cmp r3, 0x30                                      |     
    0x00017352 add.w r4, r4, 1                                   |     r4++;
                                                                 |     if (r3 != 0x30) {
    0x00017356 bne 0x1730e                                       |         goto label_2;
                                                                 |     }
                                                                 | label_44:
    0x00017358 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0001735a mov r2, r8                                        |     r2 = r8;
    0x0001735c mov r1, sb                                        |     r1 = sb;
    0x0001735e mov r0, r7                                        |     r0 = r7;
    0x00017360 bl 0x39168                                        |     zbx_strcpy_alloc ()
    0x00017364 b 0x17324                                         |     goto label_3;
                                                                 | label_39:
    0x00017366 mov r0, r5                                        |     r0 = r5;
    0x00017368 bl 0x16c4c                                        |     r0 = check_request_access_rules ();
    0x0001736c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001736e bne.w 0x17650                                     |         goto label_48;
                                                                 |     }
    0x00017372 ldr r3, [pc, 0x374]                               |     
    0x00017374 ldr r2, [sp, 0x10]                                |     r2 = *((sp + 0x10));
    0x00017376 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00017378 ldr r3, [r3]                                      |     r3 = *(0x176ea);
    0x0001737a cmp r3, 1                                         |     
                                                                 |     if (r3 != 1) {
    0x0001737c beq 0x1738e                                       |         
    0x0001737e ldr r1, [pc, 0x36c]                               |         
    0x00017380 ldr r0, [r5]                                      |         r0 = *(r5);
    0x00017382 add r1, pc                                        |         r1 = 0x2ea74;
    0x00017384 blx 0xbc58                                        |         r0 = fcn_0000bc58 ();
    0x00017388 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0001738a beq.w 0x175f2                                     |             goto label_49;
                                                                 |         }
                                                                 |     }
                                                                 | label_40:
    0x0001738e ldr r3, [pc, 0x360]                               |     
    0x00017390 add r3, pc                                        |     r3 = 0x2ea86;
    0x00017392 ldr r4, [r3]                                      |     r4 = *(0x2ea86);
    0x00017394 ldr r0, [r4]                                      |     r0 = *(0x2ea86);
    0x00017396 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00017398 beq.w 0x17588                                     |         goto label_41;
                                                                 |     }
    0x0001739c ldr.w r8, [r5]                                    |     r8 = *(r5);
    0x000173a0 b 0x173ac                                         |     
                                                                 |     while (r0 != 0) {
    0x000173a2 ldr r0, [r4, 0x10]!                               |         r0 = *((r4 += 0x10));
    0x000173a6 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x000173a8 beq.w 0x17588                                     |             goto label_41;
                                                                 |         }
    0x000173ac mov r1, r8                                        |         r1 = r8;
    0x000173ae mov r6, r4                                        |         r6 = r4;
    0x000173b0 blx 0xbc58                                        |         r0 = fcn_0000bc58 ();
    0x000173b4 cmp r0, 0                                         |         
    0x000173b6 bne 0x173a2                                       |         
                                                                 |     }
    0x000173b8 b 0x172c0                                         |     goto label_4;
                                                                 | label_43:
    0x000173ba ldr r4, [r5, 4]                                   |     r4 = *((r5 + 4));
    0x000173bc cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x000173be bne.w 0x17680                                     |         goto label_50;
                                                                 |     }
    0x000173c2 lsls r3, r3, 0x1d                                 |     r3 <<= 0x1d;
                                                                 |     if (r3 < r3) {
    0x000173c4 bpl 0x173e4                                       |         
    0x000173c6 mov r0, r5                                        |         r0 = r5;
    0x000173c8 bl 0x1642c                                        |         fcn_0001642c (r0);
    0x000173cc ldr r0, [pc, 0x324]                               |         
    0x000173ce movw r1, 0x492                                    |         r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x000173d2 ldr r3, [r6, 0xc]                                 |         r3 = *((r6 + 0xc));
    0x000173d4 mov r2, r4                                        |         r2 = r4;
    0x000173d6 add r0, pc                                        |         r0 = 0x2eace;
    0x000173d8 bl 0x35d28                                        |         r0 = zbx_strdup2 ();
    0x000173dc mov r1, r0                                        |         r1 = r0;
    0x000173de mov r0, r5                                        |         r0 = r5;
    0x000173e0 bl 0x16474                                        |         fcn_00016474 (r0, r1);
                                                                 |     }
                                                                 | label_8:
    0x000173e4 ldr r3, [r6, 8]                                   |     r3 = *((r6 + 8));
    0x000173e6 mov r0, r5                                        |     r0 = r5;
    0x000173e8 ldr r1, [sp, 0xc]                                 |     r1 = *((sp + 0xc));
    0x000173ea blx r3                                            |     r0 = uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
    0x000173ec mov r4, r0                                        |     r4 = r0;
    0x000173ee cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000173f0 bne.w 0x17616                                     |         goto label_51;
                                                                 |     }
                                                                 | label_6:
    0x000173f4 ldr r0, [r5]                                      |     r0 = *(r5);
                                                                 |     if (r0 != 0) {
    0x000173f6 cbz r0, 0x17400                                   |         
    0x000173f8 blx 0xbd14                                        |         gai_strerror ();
    0x000173fc movs r3, 0                                        |         r3 = 0;
    0x000173fe str r3, [r5]                                      |         *(r5) = r3;
                                                                 |     }
    0x00017400 mov r0, r5                                        |     r0 = r5;
    0x00017402 bl 0x1642c                                        |     fcn_0001642c (r0);
    0x00017406 ldr r2, [pc, 0x2f0]                               |     
    0x00017408 ldr r3, [pc, 0x2d0]                               |     r3 = *(0x176dc);
    0x0001740a add r2, pc                                        |     r2 = 0x2eb08;
    0x0001740c ldr r3, [r2, r3]                                  |     r3 = *(0x2eb08);
    0x0001740e ldr r2, [r3]                                      |     r2 = *(0x2eb08);
    0x00017410 ldr.w r3, [sp, 0x87c]                             |     r3 = *(arg_87ch);
    0x00017414 eors r2, r3                                       |     r2 ^= r3;
    0x00017416 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x0001741a bne.w 0x176d0                                     |         goto label_52;
                                                                 |     }
    0x0001741e mov r0, r4                                        |     r0 = r4;
    0x00017420 addw sp, sp, 0x884                                |     __asm ("addw sp, sp, case.0x3207a.11");
    0x00017424 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_45:
    0x00017428 cmp r3, 0x24                                      |     
                                                                 |     if (r3 != 0x24) {
    0x0001742a beq 0x1743a                                       |         
    0x0001742c movs r3, 0x24                                     |         r3 = 0x24;
    0x0001742e mov r2, r8                                        |         r2 = r8;
    0x00017430 mov r1, sb                                        |         r1 = sb;
    0x00017432 mov r0, r7                                        |         r0 = r7;
    0x00017434 bl 0x39190                                        |         zbx_chrcpy_alloc ();
    0x00017438 ldrb r3, [r4]                                     |         r3 = *(r4);
                                                                 |     }
    0x0001743a mov r2, r8                                        |     r2 = r8;
    0x0001743c mov r1, sb                                        |     r1 = sb;
    0x0001743e mov r0, r7                                        |     r0 = r7;
    0x00017440 bl 0x39190                                        |     zbx_chrcpy_alloc ();
    0x00017444 b 0x17324                                         |     goto label_3;
                                                                 | label_46:
    0x00017446 ldr r2, [r5, 8]                                   |     r2 = *((r5 + 8));
    0x00017448 add.w r3, r3, 0x40000000                          |     r3 += case.0x3207a.11;
    0x0001744c subs r3, 0x31                                     |     r3 -= 0x31;
    0x0001744e ldr.w ip, [sp, 0x20]                              |     ip = *((sp + 0x20));
    0x00017450 stm r0!, {r5}                                     |     *(r0!) = r5;
    0x00017452 add.w sl, sp, 0x38                                |     sl += arg_38h;
    0x00017456 ldr r6, [sp, 8]                                   |     r6 = *((sp + 8));
    0x00017458 ldr.w fp, [r2, r3, lsl 2]                         |     offset_0 = r3 << 2;
                                                                 |     fp = *((r2 + offset_0));
    0x0001745c add r2, sp, 0x34                                  |     r2 += arg_34h;
    0x0001745e str r2, [sp, 0x1c]                                |     *((sp + 0x1c)) = r2;
    0x00017460 movs r2, 0x80                                     |     r2 = 0x80;
    0x00017462 movs r3, 0                                        |     r3 = 0;
    0x00017464 str.w r2, [sl]                                    |     __asm ("str.w r2, [sl]");
    0x00017468 add r2, sp, 0x3c                                  |     r2 += arg_3ch;
    0x0001746a str r3, [sp, 0x34]                                |     *(arg_34h) = r3;
    0x0001746c str r2, [sp, 0x18]                                |     *((sp + 0x18)) = r2;
    0x0001746e str r3, [sp, 0x3c]                                |     *(arg_3ch) = r3;
    0x00017470 ldm.w ip!, {r0, r1, r2, r3}                       |     r0 = *(ip!);
                                                                 |     r1 = *((ip! + 4));
                                                                 |     r2 = *((ip! + 8));
                                                                 |     r3 = *((ip! + 12));
    0x00017474 ldr.w lr, [pc, 0x284]                             |     lr = *(0x176fc);
    0x00017478 stm r6!, {r0, r1, r2, r3}                         |     *(r6!) = r0;
                                                                 |     *((r6! + 4)) = r1;
                                                                 |     *((r6! + 8)) = r2;
                                                                 |     *((r6! + 12)) = r3;
    0x0001747a ldm.w ip, {r0, r1}                                |     r0 = *(ip);
                                                                 |     r1 = *((ip + 4));
    0x0001747e ldr r3, [sp, 0x10]                                |     r3 = *((sp + 0x10));
    0x00017480 stm.w r6, {r0, r1}                                |     *(r6) = r0;
                                                                 |     *((r6 + 4)) = r1;
    0x00017484 ldr.w r3, [r3, lr]                                |     r3 = *((r3 + lr));
    0x00017488 ldr r3, [r3]                                      |     r3 = *(r3);
    0x0001748a cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0001748c bne 0x1757a                                       |         goto label_53;
                                                                 |     }
    0x0001748e ldr r6, [sp, 8]                                   |     r6 = *((sp + 8));
    0x00017490 movs r1, 0x5c                                     |     r1 = 0x5c;
                                                                 | label_7:
    0x00017492 mov r0, fp                                        |     r0 = fp;
    0x00017494 blx 0xc138                                        |     r0 = fcn_0000c138 ();
    0x00017498 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001749a beq 0x17572                                       |         goto label_54;
                                                                 |     }
    0x0001749c ldr r0, [pc, 0x260]                               |     
    0x0001749e movs r3, 0x80                                     |     r3 = 0x80;
    0x000174a0 ldr.w fp, [sp, 0x1c]                              |     fp = *((sp + 0x1c));
    0x000174a4 movs r2, 0                                        |     r2 = 0;
    0x000174a6 movw r1, 0x3e2                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x000174aa ldr.w sb, [pc, 0x258]                             |     
    0x000174ae add r0, pc                                        |     r0 = 0x2ebb2;
    0x000174b0 add.w r6, sp, 0x65                                |     r6 += arg_65h;
    0x000174b4 bl 0x35c28                                        |     zbx_malloc2 ();
    0x000174b8 str.w r0, [fp]                                    |     __asm ("str.w r0, [fp]");
    0x000174bc add sb, pc                                        |     sb = 0x2ebc6;
    0x000174be blx 0xc0d4                                        |     feof (r0);
    0x000174c2 ldr r2, [pc, 0x244]                               |     
    0x000174c4 mov r8, r0                                        |     r8 = r0;
    0x000174c6 str r7, [sp, 0x10]                                |     *((sp + 0x10)) = r7;
    0x000174c8 movs r4, 0x27                                     |     r4 = 0x27;
    0x000174ca ldr r7, [sp, 0x18]                                |     r7 = *((sp + 0x18));
    0x000174cc movs r3, 0x5c                                     |     r3 = 0x5c;
    0x000174ce add r2, pc                                        |     r2 = 0x2ebdc;
    0x000174d0 str r5, [sp, 0x14]                                |     var_14h = r5;
    0x000174d2 mov r5, r2                                        |     r5 = r2;
    0x000174d4 mov r2, sb                                        |     r2 = sb;
    0x000174d6 mov sb, sl                                        |     sb = sl;
    0x000174d8 mov sl, r2                                        |     sl = r2;
                                                                 |     do {
    0x000174da ldr.w r2, [r8]                                    |         r2 = *(r8);
    0x000174de sxth.w ip, r3                                     |         __asm ("sxth.w ip, r3");
    0x000174e2 ldrh.w r2, [r2, ip, lsl 1]                        |         offset_1 = ip << 1;
                                                                 |         r2 = *((r2 + offset_1));
    0x000174e6 lsls r0, r2, 0x11                                 |         r0 = r2 << 0x11;
                                                                 |         if (r0 >= r2) {
    0x000174e8 bpl 0x17510                                       |             goto label_55;
                                                                 |         }
    0x000174ea mov r2, r7                                        |         r2 = r7;
    0x000174ec mov r1, sb                                        |         r1 = sb;
    0x000174ee mov r0, fp                                        |         r0 = fp;
    0x000174f0 bl 0x39190                                        |         zbx_chrcpy_alloc ();
                                                                 |         if (r4 == 0) {
    0x000174f4 cbz r4, 0x17522                                   |             goto label_56;
                                                                 |         }
                                                                 | label_5:
    0x000174f6 ldr r3, [sp, 8]                                   |         r3 = *((sp + 8));
    0x000174f8 cmp r3, r6                                        |         
                                                                 |         if (r3 != r6) {
    0x000174fa beq 0x17508                                       |             
    0x000174fc mov r3, sl                                        |             r3 = sl;
    0x000174fe mov r2, r7                                        |             r2 = r7;
    0x00017500 mov r1, sb                                        |             r1 = sb;
    0x00017502 mov r0, fp                                        |             r0 = fp;
    0x00017504 bl 0x39168                                        |             zbx_strcpy_alloc ()
                                                                 |         }
    0x00017508 mov r3, r4                                        |         r3 = r4;
    0x0001750a ldrb r4, [r6, 1]!                                 |         r4 = *((r6 += 1));
    0x0001750e b 0x174da                                         |         
                                                                 |     } while (1);
                                                                 | label_55:
    0x00017510 str r3, [sp]                                      |     *(sp) = r3;
    0x00017512 mov r2, r7                                        |     r2 = r7;
    0x00017514 mov r3, r5                                        |     r3 = r5;
    0x00017516 mov r1, sb                                        |     r1 = sb;
    0x00017518 mov r0, fp                                        |     r0 = fp;
    0x0001751a bl 0x38f1c                                        |     zbx_snprintf_alloc ();
    0x0001751e cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x00017520 bne 0x174f6                                       |         goto label_5;
                                                                 |     }
                                                                 | label_56:
    0x00017522 ldr r2, [pc, 0x1e8]                               |     
    0x00017524 add r4, sp, 0x7c                                  |     r4 += arg_7ch;
    0x00017526 ldr.w r3, [fp]                                    |     r3 = *(fp);
    0x0001752a mov.w r1, 0x800                                   |     r1 = case.0x3207a.11;
    0x0001752e mov r0, r4                                        |     r0 = r4;
    0x00017530 ldrd r7, r5, [sp, 0x10]                           |     __asm ("ldrd r7, r5, [sp, 0x10]");
    0x00017534 add r2, pc                                        |     r2 = 0x2ec46;
    0x00017536 bl 0x38ea0                                        |     zbx_snprintf ();
    0x0001753a ldr.w r0, [fp]                                    |     r0 = *(fp);
                                                                 |     if (r0 != 0) {
    0x0001753e cbz r0, 0x17544                                   |         
    0x00017540 blx 0xbd14                                        |         gai_strerror ();
                                                                 |     }
    0x00017544 ldr r0, [r7]                                      |     r0 = *(r7);
                                                                 |     if (r0 != 0) {
    0x00017546 cbz r0, 0x17550                                   |         
    0x00017548 blx 0xbd14                                        |         gai_strerror ();
    0x0001754c movs r3, 0                                        |         r3 = 0;
    0x0001754e str r3, [r7]                                      |         *(r7) = r3;
                                                                 |     }
    0x00017550 ldr r6, [sp, 0xc]                                 |     r6 = *((sp + 0xc));
    0x00017552 mov r3, r4                                        |     r3 = r4;
    0x00017554 ldr r0, [pc, 0x1b8]                               |     
    0x00017556 movs r2, 0                                        |     r2 = 0;
    0x00017558 mvn r4, 1                                         |     r4 = ~1;
    0x0001755c ldr r1, [r6, 0x28]                                |     r1 = *((r6 + 0x28));
    0x0001755e add r0, pc                                        |     r0 = 0x2ec72;
    0x00017560 orr r1, r1, 0x20                                  |     r1 |= 0x20;
    0x00017564 str r1, [r6, 0x28]                                |     *((r6 + 0x28)) = r1;
    0x00017566 mov.w r1, 0x488                                   |     r1 = case.0x3207a.11;
    0x0001756a bl 0x35d28                                        |     zbx_strdup2 ();
    0x0001756e str r0, [r6, 0x20]                                |     *((r6 + 0x20)) = r0;
    0x00017570 b 0x173f4                                         |     goto label_6;
                                                                 | label_54:
    0x00017572 ldrb r1, [r6, 1]!                                 |     r1 = *((r6 += 1));
    0x00017576 cmp r1, 0                                         |     
                                                                 |     if (r1 != 0) {
    0x00017578 bne 0x17492                                       |         goto label_7;
                                                                 |     }
                                                                 | label_53:
    0x0001757a mov r3, fp                                        |     r3 = fp;
    0x0001757c mov r2, r8                                        |     r2 = r8;
    0x0001757e mov r1, sb                                        |     r1 = sb;
    0x00017580 mov r0, r7                                        |     r0 = r7;
    0x00017582 bl 0x39168                                        |     zbx_strcpy_alloc ()
    0x00017586 b 0x17324                                         |     goto label_3;
                                                                 | label_41:
    0x00017588 ldr r6, [sp, 0xc]                                 |     r6 = *((sp + 0xc));
    0x0001758a movs r2, 0                                        |     r2 = 0;
    0x0001758c ldr r3, [pc, 0x184]                               |     
    0x0001758e mvn r4, 1                                         |     r4 = ~1;
    0x00017592 ldr r0, [pc, 0x184]                               |     
    0x00017594 ldr r1, [r6, 0x28]                                |     r1 = *((r6 + 0x28));
    0x00017596 add r3, pc                                        |     r3 = 0x2ecae;
    0x00017598 add r0, pc                                        |     r0 = 0x2ecb6;
    0x0001759a orr r1, r1, 0x20                                  |     r1 |= 0x20;
    0x0001759e str r1, [r6, 0x28]                                |     *((r6 + 0x28)) = r1;
    0x000175a0 movw r1, 0x46e                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x000175a4 bl 0x35d28                                        |     zbx_strdup2 ();
    0x000175a8 str r0, [r6, 0x20]                                |     *((r6 + 0x20)) = r0;
    0x000175aa b 0x173f4                                         |     goto label_6;
                                                                 | label_47:
    0x000175b2 mov r1, sb                                        |     r1 = sb;
    0x000175b4 mov r3, sl                                        |     r3 = sl;
    0x000175b6 mov r2, r8                                        |     r2 = r8;
    0x000175b8 mov r0, r7                                        |     r0 = r7;
    0x000175ba ldr r6, [sp, 0x24]                                |     r6 = *(arg_24h);
    0x000175bc bl 0x39168                                        |     zbx_strcpy_alloc ()
    0x000175c0 mov r0, r5                                        |     r0 = r5;
    0x000175c2 bl 0x1642c                                        |     fcn_0001642c (r0);
    0x000175c6 ldr r1, [r7]                                      |     r1 = *(r7);
    0x000175c8 mov r0, r5                                        |     r0 = r5;
    0x000175ca bl 0x16474                                        |     fcn_00016474 (r0, r1);
    0x000175ce b 0x173e4                                         |     goto label_8;
                                                                 | label_42:
    0x000175d0 ldr r6, [sp, 0xc]                                 |     r6 = *((sp + 0xc));
    0x000175d2 mvn r4, 1                                         |     r4 = ~1;
    0x000175d6 ldr r3, [pc, 0x144]                               |     
    0x000175d8 ldr r0, [pc, 0x144]                               |     
    0x000175da ldr r1, [r6, 0x28]                                |     r1 = *((r6 + 0x28));
    0x000175dc add r3, pc                                        |     r3 = 0x2ecfe;
    0x000175de add r0, pc                                        |     r0 = 0x2ed02;
    0x000175e0 orr r1, r1, 0x20                                  |     r1 |= 0x20;
    0x000175e4 str r1, [r6, 0x28]                                |     *((r6 + 0x28)) = r1;
    0x000175e6 movw r1, 0x475                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x000175ea bl 0x35d28                                        |     zbx_strdup2 ();
    0x000175ee str r0, [r6, 0x20]                                |     *((r6 + 0x20)) = r0;
    0x000175f0 b 0x173f4                                         |     goto label_6;
                                                                 | label_49:
    0x000175f2 ldr r6, [sp, 0xc]                                 |     r6 = *((sp + 0xc));
    0x000175f4 mov r2, r0                                        |     r2 = r0;
    0x000175f6 ldr r3, [pc, 0x12c]                               |     
    0x000175f8 mvn r4, 1                                         |     r4 = ~1;
    0x000175fc ldr r0, [pc, 0x128]                               |     
    0x000175fe ldr r1, [r6, 0x28]                                |     r1 = *((r6 + 0x28));
    0x00017600 add r3, pc                                        |     r3 = 0x2ed2a;
    0x00017602 add r0, pc                                        |     r0 = 0x2ed2e;
    0x00017604 orr r1, r1, 0x20                                  |     r1 |= 0x20;
    0x00017608 str r1, [r6, 0x28]                                |     *((r6 + 0x28)) = r1;
    0x0001760a movw r1, 0x455                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0001760e bl 0x35d28                                        |     zbx_strdup2 ();
    0x00017612 str r0, [r6, 0x20]                                |     *((r6 + 0x20)) = r0;
    0x00017614 b 0x173f4                                         |     goto label_6;
                                                                 | label_51:
    0x00017616 ldr r3, [r6, 4]                                   |     r3 = *((r6 + 4));
    0x00017618 lsls r1, r3, 0x1e                                 |     r1 = r3 << 0x1e;
                                                                 |     if (r1 < r3) {
    0x0001761a bpl 0x17626                                       |         
    0x0001761c ldr r3, [sp, 0xc]                                 |         r3 = *((sp + 0xc));
    0x0001761e ldr r1, [r3, 0x28]                                |         r1 = *((r3 + 0x28));
    0x00017620 ands r2, r1, 0x20                                 |         r2 = r1 & 0x20;
                                                                 |         if (r2 == r1) {
    0x00017624 beq 0x176a2                                       |             goto label_57;
                                                                 |         }
                                                                 |     }
    0x00017626 mvn r4, 1                                         |     r4 = ~1;
    0x0001762a b 0x173f4                                         |     goto label_6;
                                                                 | label_9:
    0x0001762c ldr r6, [sp, 0xc]                                 |     r6 = *((sp + 0xc));
    0x0001762e movs r2, 0                                        |     r2 = 0;
    0x00017630 ldr r3, [pc, 0xf8]                                |     
    0x00017632 mvn r4, 1                                         |     r4 = ~1;
    0x00017636 ldr r0, [pc, 0xf8]                                |     
    0x00017638 ldr r1, [r6, 0x28]                                |     r1 = *((r6 + 0x28));
    0x0001763a add r3, pc                                        |     r3 = 0x2ed6a;
    0x0001763c add r0, pc                                        |     r0 = 0x2ed72;
    0x0001763e orr r1, r1, 0x20                                  |     r1 |= 0x20;
    0x00017642 str r1, [r6, 0x28]                                |     *((r6 + 0x28)) = r1;
    0x00017644 movw r1, 0x446                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00017648 bl 0x35d28                                        |     zbx_strdup2 ();
    0x0001764c str r0, [r6, 0x20]                                |     *((r6 + 0x20)) = r0;
    0x0001764e b 0x173f4                                         |     goto label_6;
                                                                 | label_48:
    0x00017650 ldr r3, [pc, 0xe0]                                |     
    0x00017652 ldr r2, [sp, 0x10]                                |     r2 = *((sp + 0x10));
    0x00017654 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00017656 ldr r3, [r3]                                      |     r3 = *(0x17734);
    0x00017658 cmp r3, 3                                         |     
    0x0001765a bgt 0x176c2                                       |     
                                                                 |     while (1) {
    0x0001765c ldr r6, [sp, 0xc]                                 |         r6 = *((sp + 0xc));
    0x0001765e movs r2, 0                                        |         r2 = 0;
    0x00017660 ldr r3, [pc, 0xd4]                                |         
    0x00017662 mvn r4, 1                                         |         r4 = ~1;
    0x00017666 ldr r0, [pc, 0xd4]                                |         r0 = *(0x1773e);
    0x00017668 ldr r1, [r6, 0x28]                                |         r1 = *((r6 + 0x28));
    0x0001766a add r3, pc                                        |         r3 = 0x2eda6;
                                                                 | label_13:
    0x0001766c add r0, pc                                        |         r0 += pc;
    0x0001766e orr r1, r1, 0x20                                  |         r1 |= 0x20;
    0x00017672 str r1, [r6, 0x28]                                |         *((r6 + 0x28)) = r1;
    0x00017674 movw r1, 0x44d                                    |         r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00017678 bl 0x35d28                                        |         zbx_strdup2 ();
    0x0001767c str r0, [r6, 0x20]                                |         *((r6 + 0x20)) = r0;
    0x0001767e b 0x173f4                                         |         goto label_6;
                                                                 | label_50:
    0x00017680 ldr r6, [sp, 0xc]                                 |         r6 = *((sp + 0xc));
    0x00017682 mvn r4, 1                                         |         r4 = ~1;
    0x00017686 ldr r3, [pc, 0xb8]                                |         
    0x00017688 ldr r0, [pc, 0xb8]                                |         
    0x0001768a ldr r1, [r6, 0x28]                                |         r1 = *((r6 + 0x28));
    0x0001768c add r3, pc                                        |         r3 = 0x2edd2;
    0x0001768e add r0, pc                                        |         r0 = 0x2edd6;
    0x00017690 orr r1, r1, 0x20                                  |         r1 |= 0x20;
    0x00017694 str r1, [r6, 0x28]                                |         *((r6 + 0x28)) = r1;
    0x00017696 movw r1, 0x47c                                    |         r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0001769a bl 0x35d28                                        |         zbx_strdup2 ();
    0x0001769e str r0, [r6, 0x20]                                |         *((r6 + 0x20)) = r0;
    0x000176a0 b 0x173f4                                         |         goto label_6;
                                                                 | label_57:
    0x000176a2 ldr r6, [sp, 0xc]                                 |         r6 = *((sp + 0xc));
    0x000176a4 orr r1, r1, 0x20                                  |         r1 |= 0x20;
    0x000176a8 ldr r3, [pc, 0x9c]                                |         
    0x000176aa mvn r4, 1                                         |         r4 = ~1;
    0x000176ae ldr r0, [pc, 0x9c]                                |         r0 = *(0x1774e);
    0x000176b0 str r1, [r6, 0x28]                                |         *((r6 + 0x28)) = r1;
    0x000176b2 movw r1, 0x49c                                    |         r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x000176b6 add r3, pc                                        |         r3 = 0x2ee02;
                                                                 | label_12:
    0x000176b8 add r0, pc                                        |         r0 += pc;
    0x000176ba bl 0x35d28                                        |         zbx_strdup2 ();
    0x000176be str r0, [r6, 0x20]                                |         *((r6 + 0x20)) = r0;
    0x000176c0 b 0x173f4                                         |         goto label_6;
    0x000176c2 ldr r1, [pc, 0x8c]                                |         r1 = *(0x17752);
    0x000176c4 mov r2, r4                                        |         r2 = r4;
    0x000176c6 movs r0, 4                                        |         r0 = 4;
                                                                 | label_11:
    0x000176c8 add r1, pc                                        |         r1 += pc;
    0x000176ca bl 0x271b0                                        |         zbx_zabbix_log ();
    0x000176ce b 0x1765c                                         |         
                                                                 |     }
                                                                 | label_52:
    0x000176d0 blx 0xbe48                                        |     fcn_0000be48 ();
    0x000176d4 ldr r4, [r2, r6]                                  |     r4 = *((r2 + r6));
    0x000176d6 movs r4, r0                                       |     r4 = r0;
                                                                 | label_10:
    0x000176d8 ldr r6, [r1, r6]                                  |     r6 = *((r1 + r6));
    0x000176da movs r4, r0                                       |     r4 = r0;
    0x000176dc lsls r4, r2, 0xc                                  |     r4 = r2 << 0xc;
    0x000176de movs r0, r0                                       |     
    0x000176e0 str r4, [r4, 0x60]                                |     *((r4 + 0x60)) = r4;
    0x000176e2 movs r4, r0                                       |     r4 = r0;
                                                                 |     if (r4 < r0) {
    0x000176e4 blt 0x17794                                       |         goto label_58;
                                                                 |     }
    0x000176e6 movs r2, r0                                       |     r2 = r0;
    0x000176e8 lsls r4, r3, 0xf                                  |     r4 = r3 << 0xf;
    0x000176ea movs r0, r0                                       |     
                                                                 |     if (r0 > r0) {
    0x000176ec bhi 0x1762c                                       |         goto label_9;
                                                                 |     }
    0x000176ee movs r2, r0                                       |     r2 = r0;
    0x000176f0 str r0, [r6, 0x50]                                |     *((r6 + 0x50)) = r0;
    0x000176f2 movs r4, r0                                       |     r4 = r0;
                                                                 |     if (r4 <= r0) {
                                                                 | label_14:
    0x000176f4 bhi 0x176fc                                       |         
    0x000176f6 movs r2, r0                                       |         r2 = r0;
    0x000176f8 ldrsb r2, [r4, r7]                                |         r2 = *((r4 + r7));
    0x000176fa movs r4, r0                                       |         r4 = r0;
                                                                 |     }
    0x000176fc lsls r4, r6, 0xd                                  |     r4 = r6 << 0xd;
    0x000176fe movs r0, r0                                       |     
    0x00017700 bvc 0x17758                                       |     __asm ("bvc case.0x3207a.11");
    0x00017702 movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 < r0) {
    0x00017704 bls 0x177a8                                       |         goto label_59;
                                                                 |     }
    0x00017706 movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 < r0) {
    0x00017708 bls 0x17790                                       |         goto label_60;
                                                                 |     }
    0x0001770a movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 > r0) {
    0x0001770c bhi 0x176d8                                       |         goto label_10;
                                                                 |     }
    0x0001770e movs r2, r0                                       |     r2 = r0;
    0x00017710 bvs 0x17808                                       |     __asm ("bvs case.0x3207a.11");
    0x00017712 movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 > r0) {
    0x00017714 bhi 0x1774c                                       |         goto label_61;
                                                                 |     }
    0x00017716 movs r2, r0                                       |     r2 = r0;
                                                                 |     do {
    0x00017718 bvs 0x1779c                                       |         __asm ("bvs case.0x3207a.11");
    0x0001771a movs r2, r0                                       |         r2 = r0;
    0x0001771c bvc 0x176c8                                       |         __asm ("bvc case.0x3207a.11");
                                                                 |         goto label_11;
    0x0001771e movs r2, r0                                       |         r2 = r0;
    0x00017720 bpl 0x17718                                       |         
                                                                 |     } while (r2 >= r0);
    0x00017722 movs r2, r0                                       |     r2 = r0;
    0x00017724 bvc 0x176b8                                       |     __asm ("bvc case.0x3207a.11");
                                                                 |     goto label_12;
    0x00017726 movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 >= r0) {
    0x00017728 bpl 0x176d8                                       |         goto label_10;
                                                                 |     }
    0x0001772a movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 <= r0) {
    0x0001772c blo 0x177dc                                       |         goto label_62;
                                                                 |     }
    0x0001772e movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 >= r0) {
    0x00017730 bpl 0x1766c                                       |         goto label_13;
                                                                 |     }
    0x00017732 movs r2, r0                                       |     r2 = r0;
    0x00017734 lsls r0, r6, 0xe                                  |     r0 = r6 << 0xe;
    0x00017736 movs r0, r0                                       |     
    0x00017738 bvc 0x177c8                                       |     __asm ("bvc case.0x3207a.11");
    0x0001773a movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 >= r0) {
    0x0001773c bpl 0x17818                                       |         goto label_21;
                                                                 |     }
    0x0001773e movs r2, r0                                       |     r2 = r0;
    0x00017740 bvc 0x17804                                       |     __asm ("bvc case.0x3207a.11");
    0x00017742 movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 >= r0) {
    0x00017744 bpl 0x177dc                                       |         goto label_62;
                                                                 |     }
    0x00017746 movs r2, r0                                       |     r2 = r0;
    0x00017748 invalid                                           |     
                                                                 |     if (r2 < r0) {
                                                                 | label_61:
    0x0001774c bpl 0x17790                                       |         
    0x0001774e movs r2, r0                                       |         r2 = r0;
    0x00017750 bvs 0x176f4                                       |         __asm ("bvs case.0x3207a.11");
                                                                 |         goto label_14;
    0x00017752 movs r2, r0                                       |         r2 = r0;
    0x00017758 mov r3, r0                                        |         r3 = r0;
    0x0001775a push {r4, r5, lr}                                 |         
    0x0001775c sub sp, 0x54                                      |         
    0x0001775e ldr r5, [pc, 0x108]                               |         
    0x00017760 mov r4, r0                                        |         r4 = r0;
    0x00017762 add ip, pc                                        |         
    0x00017764 movs r2, 0x2d                                     |         r2 = 0x2d;
    0x00017766 ldr r1, [pc, 0x104]                               |         
    0x00017768 movs r0, 1                                        |         r0 = 1;
    0x0001776a ldr.w r5, [ip, r5]                                |         r5 = *((ip + r5));
    0x0001776e add r1, pc                                        |         r1 = 0x2efe0;
    0x00017770 ldr r5, [r5]                                      |         r5 = *(0x1786a);
    0x00017772 str r5, [sp, 0x4c]                                |         var_4ch = r5;
    0x00017774 mov.w r5, 0                                       |         r5 = 0;
    0x00017778 mov r5, sp                                        |         r5 = sp;
    0x0001777a blx 0xc1d0                                        |         fileno (r0);
    0x0001777e movs r1, 0                                        |         r1 = 0;
    0x00017780 movs r2, 0x30                                     |         r2 = 0x30;
    0x00017782 mov r0, r5                                        |         r0 = r5;
    0x00017784 blx 0xc1ac                                        |         statvfs64 ();
    0x00017788 mov r0, r4                                        |         r0 = r4;
    0x0001778a ldr r4, [pc, 0xe4]                                |         r4 = *(0x17872);
    0x0001778c mov r2, r5                                        |         r2 = r5;
    0x0001778e movs r1, 4                                        |         r1 = 4;
                                                                 |     }
                                                                 | label_60:
    0x00017790 bl 0x17240                                        |     process ();
                                                                 | label_58:
    0x00017794 add r4, pc                                        |     r4 += pc;
    0x00017796 ldr r3, [sp, 0x28]                                |     r3 = *(arg_28h);
                                                                 |     if (r0 != 0) {
    0x00017798 cbnz r0, 0x177dc                                  |         goto label_62;
                                                                 |     }
    0x0001779a lsls r1, r3, 0x1f                                 |     r1 = r3 << 0x1f;
                                                                 |     if (r1 < r3) {
    0x0001779c bmi 0x17808                                       |         goto label_63;
                                                                 |     }
    0x0001779e lsls r2, r3, 0x1e                                 |     r2 = r3 << 0x1e;
                                                                 |     if (r2 < r3) {
    0x000177a0 bmi 0x1781c                                       |         goto label_64;
                                                                 |     }
                                                                 | label_16:
    0x000177a2 lsls r0, r3, 0x1d                                 |     r0 = r3 << 0x1d;
                                                                 |     if (r0 < r3) {
    0x000177a4 bmi 0x1783a                                       |         goto label_65;
                                                                 |     }
                                                                 | label_17:
    0x000177a6 lsls r1, r3, 0x1c                                 |     r1 = r3 << 0x1c;
                                                                 |     if (r1 < r3) {
                                                                 | label_59:
    0x000177a8 bmi 0x1784c                                       |         goto label_66;
                                                                 |     }
                                                                 | label_18:
    0x000177aa lsls r2, r3, 0x1a                                 |     r2 = r3 << 0x1a;
                                                                 |     if (r2 < r3) {
    0x000177ac bmi 0x177fa                                       |         goto label_19;
                                                                 |     }
                                                                 |     do {
                                                                 | label_15:
    0x000177ae mov r0, r5                                        |         r0 = r5;
    0x000177b0 bl 0x16ee0                                        |         free_result ();
    0x000177b4 movs r0, 0xa                                      |         r0 = 0xa;
    0x000177b6 invalid                                           |         
                                                                 | label_22:
    0x000177b8 vstr d4, [r0, -0xb8]                              |         __asm ("vstr d4, [r0, -0xb8]");
    0x000177bc ldr r3, [r4, r3]                                  |         r3 = *((r4 + r3));
    0x000177be ldr r0, [r3]                                      |         r0 = *(r3);
    0x000177c0 blx 0xbcd0                                        |         fcn_0000bcd0 ();
    0x000177c4 ldr r2, [pc, 0xb0]                                |         r2 = *(0x17878);
    0x000177c6 ldr r3, [pc, 0xa0]                                |         r3 = *(0x1786a);
    0x000177c8 add r2, pc                                        |         r2 += pc;
    0x000177ca ldr r3, [r2, r3]                                  |         r3 = *((r2 + r3));
    0x000177cc ldr r2, [r3]                                      |         r2 = *(r3);
    0x000177ce ldr r3, [sp, 0x4c]                                |         r3 = *((sp + 0x4c));
    0x000177d0 eors r2, r3                                       |         r2 ^= r3;
    0x000177d2 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x000177d6 bne 0x17860                                       |             goto label_67;
                                                                 |         }
    0x000177d8 add sp, 0x54                                      |         
    0x000177da pop {r4, r5, pc}                                  |         
                                                                 | label_62:
    0x000177dc lsls r3, r3, 0x1a                                 |         r3 <<= 0x1a;
                                                                 |         if (r3 >= r3) {
    0x000177de bpl 0x177ee                                       |             goto label_68;
                                                                 |         }
    0x000177e0 ldr r1, [pc, 0x98]                                |         
    0x000177e2 movs r0, 1                                        |         r0 = 1;
    0x000177e4 ldr r2, [sp, 0x20]                                |         r2 = var_20h;
    0x000177e6 add r1, pc                                        |         r1 = 0x2f066;
    0x000177e8 blx 0xc1d0                                        |         fileno (r0);
    0x000177ec b 0x177ae                                         |         
                                                                 |     } while (1);
                                                                 | label_68:
    0x000177ee ldr r1, [pc, 0x90]                                |     
    0x000177f0 movs r0, 1                                        |     r0 = 1;
    0x000177f2 add r1, pc                                        |     r1 = 0x2f078;
                                                                 | label_20:
    0x000177f4 blx 0xc1d0                                        |     fileno (r0);
    0x000177f8 b 0x177ae                                         |     goto label_15;
                                                                 | label_19:
    0x000177fa ldr r1, [pc, 0x88]                                |     
    0x000177fc movs r0, 1                                        |     r0 = 1;
    0x000177fe ldr r2, [sp, 0x20]                                |     r2 = var_20h;
    0x00017800 add r1, pc                                        |     r1 = 0x2f08a;
    0x00017802 invalid                                           |     
    0x00017804 stcl p7, c14, [r6], 0x348                         |     __asm ("stcl p7, c14, [r6], case.0x3207a.11");
                                                                 | label_63:
    0x00017808 ldr r1, [pc, 0x7c]                                |     
    0x0001780a movs r0, 1                                        |     r0 = 1;
    0x0001780c ldrd r2, r3, [sp, 8]                              |     __asm ("ldrd r2, r3, [sp, 8]");
    0x00017810 add r1, pc                                        |     r1 = 0x2f09c;
    0x00017812 blx 0xc1d0                                        |     fileno (r0);
    0x00017816 ldr r3, [sp, 0x28]                                |     r3 = *(arg_28h);
                                                                 | label_21:
    0x00017818 lsls r2, r3, 0x1e                                 |     r2 = r3 << 0x1e;
                                                                 |     if (r2 >= r3) {
    0x0001781a bpl 0x177a2                                       |         goto label_16;
                                                                 |     }
                                                                 | label_64:
    0x0001781c vldr d0, [sp, 0x10]                               |     __asm ("vldr d0, [sp, 0x10]");
    0x00017820 movs r1, 0x19                                     |     r1 = 0x19;
    0x00017822 add r0, sp, 0x30                                  |     r0 += arg_30h;
    0x00017824 bl 0x3cf64                                        |     zbx_print_double ();
    0x00017828 ldr r1, [pc, 0x60]                                |     
    0x0001782a mov r2, r0                                        |     r2 = r0;
    0x0001782c movs r0, 1                                        |     r0 = 1;
    0x0001782e add r1, pc                                        |     r1 = 0x2f0be;
    0x00017830 blx 0xc1d0                                        |     fileno (r0);
    0x00017834 ldr r3, [sp, 0x28]                                |     r3 = *(arg_28h);
    0x00017836 lsls r0, r3, 0x1d                                 |     r0 = r3 << 0x1d;
                                                                 |     if (r0 >= r3) {
    0x00017838 bpl 0x177a6                                       |         goto label_17;
                                                                 |     }
                                                                 | label_65:
    0x0001783a ldr r1, [pc, 0x54]                                |     
    0x0001783c movs r0, 1                                        |     r0 = 1;
    0x0001783e ldr r2, [sp, 0x18]                                |     r2 = var_18h;
    0x00017840 add r1, pc                                        |     r1 = 0x2f0d6;
    0x00017842 blx 0xc1d0                                        |     fileno (r0);
    0x00017844 vstmia r6, {d25, d26, d27, d28, d29}              |     __asm ("vstmia r6, {d25, d26, d27, d28, d29}");
    0x00017848 lsls r1, r3, 0x1c                                 |     r1 = r3 << 0x1c;
                                                                 |     if (r1 >= r3) {
    0x0001784a bpl 0x177aa                                       |         goto label_18;
                                                                 |     }
                                                                 | label_66:
    0x0001784c ldr r1, [pc, 0x44]                                |     
    0x0001784e movs r0, 1                                        |     r0 = 1;
    0x00017850 ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x00017852 add r1, pc                                        |     r1 = 0x2f0ea;
    0x00017854 blx 0xc1d0                                        |     fileno (r0);
    0x00017858 ldr r3, [sp, 0x28]                                |     r3 = *(arg_28h);
    0x0001785a lsls r2, r3, 0x1a                                 |     r2 = r3 << 0x1a;
                                                                 |     if (r2 >= r3) {
    0x0001785c bpl 0x177ae                                       |         goto label_15;
                                                                 |     }
    0x0001785e b 0x177fa                                         |     goto label_19;
                                                                 | label_67:
    0x00017860 blx 0xbe48                                        |     fcn_0000be48 ();
    0x00017864 strb r2, [r1, r2]                                 |     *((r1 + r2)) = r2;
    0x00017866 movs r4, r0                                       |     r4 = r0;
    0x00017868 lsls r4, r2, 0xc                                  |     r4 = r2 << 0xc;
    0x0001786a movs r0, r0                                       |     
    0x0001786c bvs 0x1786c                                       |     __asm ("bvs case.0x3207a.11");
    0x0001786e movs r2, r0                                       |     r2 = r0;
    0x00017870 strb r0, [r3, r1]                                 |     *((r3 + r1)) = r0;
    0x00017872 movs r4, r0                                       |     r4 = r0;
    0x00017874 lsls r4, r1, 0xe                                  |     r4 = r1 << 0xe;
    0x00017876 movs r0, r0                                       |     
    0x00017878 strb r4, [r4, r0]                                 |     *((r4 + r0)) = r4;
    0x0001787a movs r4, r0                                       |     r4 = r0;
    0x0001787c bvs 0x177f4                                       |     __asm ("bvs case.0x3207a.11");
                                                                 |     goto label_20;
    0x0001787e movs r2, r0                                       |     r2 = r0;
    0x00017880 bvs 0x17818                                       |     __asm ("bvs case.0x3207a.11");
                                                                 |     goto label_21;
    0x00017882 movs r2, r0                                       |     r2 = r0;
    0x00017884 bvs 0x177b8                                       |     __asm ("bvs case.0x3207a.11");
                                                                 |     goto label_22;
    0x00017886 movs r2, r0                                       |     r2 = r0;
    0x00017888 bvs 0x17954                                       |     __asm ("bvs case.0x3207a.11");
    0x0001788a movs r2, r0                                       |     r2 = r0;
    0x0001788c bvs 0x17934                                       |     __asm ("bvs case.0x3207a.11");
    0x0001788e movs r2, r0                                       |     r2 = r0;
    0x00017890 bvs 0x17924                                       |     __asm ("bvs case.0x3207a.11");
    0x00017892 movs r2, r0                                       |     r2 = r0;
    0x00017894 bvs 0x17914                                       |     __asm ("bvs case.0x3207a.11");
    0x00017896 movs r2, r0                                       |     r2 = r0;
                                                                 |     do {
                                                                 | label_23:
    0x000178cc ldr r3, [r6]                                      |         r3 = *(r6);
    0x000178ce adds r4, 0x10                                     |         r4 += 0x10;
    0x000178d0 ldr r5, [r3, r4]                                  |         r5 = *((r3 + r4));
    0x000178d2 cmp r5, 0                                         |         
                                                                 |         if (r5 == 0) {
    0x000178d4 beq 0x17950                                       |             goto label_69;
                                                                 |         }
                                                                 | label_24:
    0x000178d6 mov r1, r7                                        |         r1 = r7;
    0x000178d8 mov r0, r5                                        |         r0 = r5;
    0x000178da blx 0xbc58                                        |         r0 = fcn_0000bc58 ();
    0x000178de cmp r0, 0                                         |         
    0x000178e0 beq 0x178cc                                       |         
                                                                 |     } while (r0 == 0);
    0x000178e2 movs r0, 0                                        |     r0 = 0;
    0x000178e4 add.w fp, sp, 8                                   |     
    0x000178e8 add.w sl, sp, 4                                   |     sl += var_4h;
    0x000178ec mov r8, sp                                        |     r8 = sp;
    0x000178ee mov r3, r5                                        |     r3 = r5;
    0x000178f0 mov r2, fp                                        |     r2 = fp;
    0x000178f2 str r0, [sp, 8]                                   |     var_8h = r0;
    0x000178f4 mov r1, sl                                        |     r1 = sl;
    0x000178f6 mov r0, r8                                        |     r0 = r8;
    0x000178f8 bl 0x39168                                        |     zbx_strcpy_alloc ()
    0x000178fc ldr.w r2, [sb]                                    |     r2 = *(sb);
    0x00017900 add r2, r4                                        |     r2 += r4;
    0x00017902 ldr r3, [r2, 4]                                   |     r3 = *((r2 + 4));
    0x00017904 lsls r3, r3, 0x1d                                 |     r3 <<= 0x1d;
                                                                 |     if (r3 >= r3) {
    0x00017906 bmi 0x17936                                       |         
    0x00017908 ldr r3, [r2, 0xc]                                 |         r3 = *((r2 + 0xc));
                                                                 |         if (r3 == 0) {
    0x0001790a cbz r3, 0x17936                                   |             goto label_70;
                                                                 |         }
    0x0001790c movs r3, 0x5b                                     |         r3 = 0x5b;
    0x0001790e mov r2, fp                                        |         r2 = fp;
    0x00017910 mov r1, sl                                        |         r1 = sl;
    0x00017912 mov r0, r8                                        |         r0 = r8;
    0x00017914 bl 0x39190                                        |         zbx_chrcpy_alloc ();
    0x00017918 ldr.w r3, [sb]                                    |         r3 = *(sb);
    0x0001791c mov r2, fp                                        |         r2 = fp;
    0x0001791e mov r1, sl                                        |         r1 = sl;
    0x00017920 mov r0, r8                                        |         r0 = r8;
    0x00017922 add r3, r4                                        |         r3 += r4;
    0x00017924 ldr r3, [r3, 0xc]                                 |         r3 = *((r3 + 0xc));
    0x00017926 bl 0x39168                                        |         zbx_strcpy_alloc ()
    0x0001792a mov r2, fp                                        |         r2 = fp;
    0x0001792c mov r1, sl                                        |         r1 = sl;
    0x0001792e mov r0, r8                                        |         r0 = r8;
    0x00017930 movs r3, 0x5d                                     |         r3 = 0x5d;
    0x00017932 bl 0x39190                                        |         zbx_chrcpy_alloc ();
    0x00017934 invalid                                           |         
                                                                 |     }
                                                                 | label_70:
    0x00017936 ldr r0, [sp]                                      |     r0 = *(sp);
    0x00017938 bl 0x171c4                                        |     r0 = check_key_access_rules ();
    0x0001793c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001793e bne 0x178cc                                       |         goto label_23;
                                                                 |     }
    0x00017940 ldr r0, [sp]                                      |     r0 = *(sp);
    0x00017942 adds r4, 0x10                                     |     r4 += 0x10;
    0x00017944 bl 0x17754                                        |     test_parameter ();
    0x00017948 ldr r3, [r6]                                      |     r3 = *(r6);
    0x0001794a ldr r5, [r3, r4]                                  |     r5 = *((r3 + r4));
    0x0001794c cmp r5, 0                                         |     
                                                                 |     if (r5 != 0) {
    0x0001794e bne 0x178d6                                       |         goto label_24;
                                                                 |     }
                                                                 | label_69:
    0x00017950 ldr r0, [sp]                                      |     r0 = *(sp);
                                                                 |     if (r0 != 0) {
    0x00017952 cbz r0, 0x1795a                                   |         
    0x00017954 blx 0xbd14                                        |         gai_strerror ();
    0x00017958 str r5, [sp]                                      |         *(sp) = r5;
                                                                 |     }
    0x0001795a bl 0x34294                                        |     test_aliases ();
    0x0001795e ldr r2, [pc, 0x30]                                |     
    0x00017960 ldr r3, [pc, 0x1c]                                |     r3 = *(0x17980);
    0x00017962 add r2, pc                                        |     r2 = 0x2f2f8;
    0x00017964 ldr r3, [r2, r3]                                  |     r3 = *(0x2f2f8);
    0x00017966 ldr r2, [r3]                                      |     r2 = *(0x2f2f8);
    0x00017968 ldr r3, [sp, 0xc]                                 |     r3 = *((sp + 0xc));
    0x0001796a eors r2, r3                                       |     r2 ^= r3;
    0x0001796c mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 == r3) {
    0x00017970 bne 0x17978                                       |         
    0x00017972 add sp, 0x14                                      |         
    0x00017974 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 |     }
    0x00017978 blx 0xbe48                                        |     fcn_0000be48 ();
    0x0001797c strh r2, [r1, r5]                                 |     *((r1 + r5)) = r2;
    0x0001797e movs r4, r0                                       |     r4 = r0;
    0x00017980 lsls r4, r2, 0xc                                  |     r4 = r2 << 0xc;
    0x00017982 movs r0, r0                                       |     
    0x00017984 str r6, [r2]                                      |     *(r2) = r6;
    0x00017986 movs r4, r0                                       |     r4 = r0;
    0x00017988 bvs 0x179a8                                       |     __asm ("bvs case.0x3207a.11");
    0x0001798a movs r2, r0                                       |     r2 = r0;
    0x0001798c ldrsh r0, [r7, r7]                                |     r0 = *((r7 + r7));
    0x0001798e movs r4, r0                                       |     r4 = r0;
    0x00017990 strh r2, [r1, r2]                                 |     *((r1 + r2)) = r2;
    0x00017992 movs r4, r0                                       |     r4 = r0;
    0x000179a8 mov.w r3, 0                                       |     r3 = 0;
    0x000179ac cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000179ae beq.w 0x17ada                                     |         goto label_71;
                                                                 |     }
    0x000179b2 mov r4, r0                                        |     r4 = r0;
    0x000179b4 cmp r1, 4                                         |     
                                                                 |     if (r1 > 4) {
    0x000179b6 bhi.w 0x17ad0                                     |         goto label_72;
                                                                 |     }
                                                                 |     /* switch table (5 cases) at 0x179be */
    0x000179ba tbb [pc, r1]                                      |     __asm ("tbb case.0x3207a.11");
    0x000179c4 mov r0, r5                                        |     r0 = r5;
    0x000179c6 bl 0x3a9cc                                        |     zbx_replace_invalid_utf8 ();
    0x000179ca ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x000179cc mov r3, r5                                        |     r3 = r5;
    0x000179ce movs r2, 0                                        |     r2 = 0;
    0x000179d0 mov.w r1, 0x4d8                                   |     r1 = case.0x3207a.11;
    0x000179d4 orr r0, r0, 8                                     |     r0 |= 8;
    0x000179d8 str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x000179da ldr r0, [pc, 0x11c]                               |     
    0x000179dc add r0, pc                                        |     r0 = 0x2f4da;
    0x000179de bl 0x35d28                                        |     r0 = zbx_strdup2 ();
    0x000179e2 mov r3, r0                                        |     r3 = r0;
    0x000179e4 movs r0, 0                                        |     r0 = 0;
    0x000179e6 str r3, [r4, 0x1c]                                |     *((r4 + 0x1c)) = r3;
                                                                 |     do {
                                                                 | label_25:
    0x000179e8 ldr r2, [pc, 0x110]                               |         
    0x000179ea ldr r3, [pc, 0x108]                               |         r3 = *(0x17af6);
    0x000179ec add r2, pc                                        |         r2 = 0x2f4ec;
    0x000179ee ldr r3, [r2, r3]                                  |         r3 = *(0x2f4ec);
    0x000179f0 ldr r2, [r3]                                      |         r2 = *(0x2f4ec);
    0x000179f2 ldr r3, [sp, 0x1c]                                |         r3 = *((sp + 0x1c));
    0x000179f4 eors r2, r3                                       |         r2 ^= r3;
    0x000179f6 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x000179fa bne 0x17ad6                                       |             goto label_73;
                                                                 |         }
    0x000179fc add sp, 0x20                                      |         
    0x000179fe pop.w {r4, r5, r6, r7, r8, pc}                    |         
    0x00017a02 mov r0, r5                                        |         r0 = r5;
    0x00017a04 bl 0x3cc9c                                        |         zbx_trim_float ();
    0x00017a08 add r1, sp, 0x10                                  |         r1 += var_10h;
    0x00017a0a mov r0, r5                                        |         r0 = r5;
    0x00017a0c bl 0x365b0                                        |         r0 = is_double ();
    0x00017a10 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00017a12 bne 0x17ad0                                       |             goto label_72;
                                                                 |         }
    0x00017a14 ldr r3, [r4, 0x28]                                |         r3 = *((r4 + 0x28));
    0x00017a16 ldrd r6, r7, [sp, 0x10]                           |         __asm ("ldrd r6, r7, [var_10h]");
    0x00017a1a orr r3, r3, 2                                     |         r3 |= 2;
    0x00017a1e strd r6, r7, [r4, 0x10]                           |         __asm ("strd r6, r7, [r4, 0x10]");
    0x00017a22 str r3, [r4, 0x28]                                |         *((r4 + 0x28)) = r3;
    0x00017a24 b 0x179e8                                         |         
                                                                 |     } while (1);
    0x00017a26 mov r0, r5                                        |     r0 = r5;
    0x00017a28 bl 0x3a9cc                                        |     zbx_replace_invalid_utf8 ();
    0x00017a2c ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x00017a2e mov r3, r5                                        |     r3 = r5;
    0x00017a30 movs r2, 0                                        |     r2 = 0;
    0x00017a32 movw r1, 0x4d3                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00017a36 orr r0, r0, 4                                     |     r0 |= 4;
                                                                 | label_26:
    0x00017a38 movs r4, r0                                       |     r4 = r0;
    0x00017a3a str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x00017a3c ldr r0, [pc, 0xc0]                                |     
    0x00017a3e add r0, pc                                        |     r0 = 0x2f542;
    0x00017a40 bl 0x35d28                                        |     r0 = zbx_strdup2 ();
    0x00017a44 mov r3, r0                                        |     r3 = r0;
    0x00017a46 movs r0, 0                                        |     r0 = 0;
    0x00017a48 str r3, [r4, 0x18]                                |     *((r4 + 0x18)) = r3;
    0x00017a4a b 0x179e8                                         |     goto label_25;
    0x00017a4c ldr.w r8, [pc, 0xb4]                              |     r8 = *(0x00017b04);
    0x00017a50 mov r0, r5                                        |     r0 = r5;
    0x00017a52 bl 0x3a9cc                                        |     zbx_replace_invalid_utf8 ();
    0x00017a56 ldr r2, [r4, 0x24]                                |     r2 = *((r4 + 0x24));
    0x00017a58 movs r3, 0x14                                     |     r3 = 0x14;
    0x00017a5a add r8, pc                                        |     r8 += pc;
    0x00017a5c movw r1, 0x4ab                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00017a60 mov r0, r8                                        |     r0 = r8;
    0x00017a62 movs r7, 0                                        |     r7 = 0;
    0x00017a64 bl 0x35c28                                        |     r0 = zbx_malloc2 ();
    0x00017a68 mov r6, r0                                        |     r6 = r0;
    0x00017a6a str r0, [r4, 0x24]                                |     *((r4 + 0x24)) = r0;
    0x00017a6c mov r3, r5                                        |     r3 = r5;
    0x00017a6e mov r0, r8                                        |     r0 = r8;
    0x00017a70 mov r2, r7                                        |     r2 = r7;
    0x00017a72 movw r1, 0x4af                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00017a76 strd r7, r7, [r6]                                 |     __asm ("strd r7, r7, [r6]");
    0x00017a7a strd r7, r7, [r6, 8]                              |     __asm ("strd r7, r7, [r6, 8]");
    0x00017a7e str r7, [r6, 0x10]                                |     *((r6 + 0x10)) = r7;
    0x00017a80 bl 0x35d28                                        |     zbx_strdup2 ();
    0x00017a84 ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x00017a86 str r0, [r6]                                      |     *(r6) = r0;
    0x00017a88 mov r0, r7                                        |     r0 = r7;
    0x00017a8a orr r3, r3, 0x10                                  |     r3 |= 0x10;
    0x00017a8e str r3, [r4, 0x28]                                |     *((r4 + 0x28)) = r3;
    0x00017a90 b 0x179e8                                         |     goto label_25;
    0x00017a92 mov r0, r5                                        |     r0 = r5;
    0x00017a94 bl 0x3cc94                                        |     zbx_trim_integer ();
    0x00017a98 mov r0, r5                                        |     r0 = r5;
    0x00017a9a bl 0x39304                                        |     del_zeros ();
    0x00017a9e vmov.i8 d17, 0xff                                 |     __asm ("vmov.i8 d17, 0xff");
    0x00017aa2 movs r3, 8                                        |     r3 = 8;
    0x00017aa4 vmov.i32 d16, 0                                   |     __asm ("vmov.i32 d16, 0");
    0x00017aa8 add r2, sp, 0x10                                  |     r2 += var_10h;
    0x00017aaa mov.w r1, -1                                      |     r1 = -1;
    0x00017aae mov r0, r5                                        |     r0 = r5;
    0x00017ab0 vstr d17, [sp, 8]                                 |     __asm ("vstr d17, [sp, 8]");
    0x00017ab4 vstr d16, [sp]                                    |     __asm ("vstr d16, [sp]");
    0x00017ab8 bl 0x367c8                                        |     r0 = is_uint_n_range ();
                                                                 |     if (r0 == 0) {
    0x00017abc cbnz r0, 0x17ad0                                  |         
    0x00017abe ldr r3, [r4, 0x28]                                |         r3 = *((r4 + 0x28));
    0x00017ac0 ldrd r6, r7, [sp, 0x10]                           |         __asm ("ldrd r6, r7, [var_10h]");
    0x00017ac4 orr r3, r3, 1                                     |         r3 |= 1;
    0x00017ac8 strd r6, r7, [r4, 8]                              |         __asm ("strd r6, r7, [r4, 8]");
    0x00017acc str r3, [r4, 0x28]                                |         *((r4 + 0x28)) = r3;
    0x00017ace b 0x179e8                                         |         goto label_25;
                                                                 |     }
                                                                 | label_72:
    0x00017ad0 mov.w r0, -1                                      |     r0 = -1;
    0x00017ad4 b 0x179e8                                         |     goto label_25;
                                                                 | label_73:
    0x00017ad6 blx 0xbe48                                        |     fcn_0000be48 ();
                                                                 | label_71:
    0x00017ada ldr r3, [pc, 0x2c]                                |     
    0x00017adc mov.w r2, 0x4b8                                   |     r2 = case.0x3207a.11;
    0x00017ae0 ldr r1, [pc, 0x28]                                |     
    0x00017ae2 ldr r0, [pc, 0x2c]                                |     
    0x00017ae4 add r3, pc                                        |     r3 = 0x2f5f2;
    0x00017ae6 add r1, pc                                        |     r1 = 0x2f5f6;
    0x00017ae8 adds r3, 0x28                                     |     r3 += 0x28;
    0x00017aea add r0, pc                                        |     r0 = 0x2f600;
    0x00017aec blx 0xc4a0                                        |     fcn_0000c4a0 ();
    0x00017af0 strh r4, [r1, r1]                                 |     *((r1 + r1)) = r4;
    0x00017af2 movs r4, r0                                       |     r4 = r0;
                                                                 |     do {
                                                                 | label_27:
    0x00017af4 lsls r4, r2, 0xc                                  |         r4 = r2 << 0xc;
    0x00017af6 movs r0, r0                                       |         
    0x00017af8 bne 0x17af4                                       |         
                                                                 |     } while (r0 != r0);
    0x00017afa movs r2, r0                                       |     r2 = r0;
    0x00017afc strh r0, [r0, r0]                                 |     *((r0 + r0)) = r0;
    0x00017afe movs r4, r0                                       |     r4 = r0;
                                                                 |     if (r4 != r0) {
    0x00017b00 bne 0x17a38                                       |         goto label_26;
                                                                 |     }
    0x00017b02 movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 != r0) {
    0x00017b04 bne 0x17c04                                       |         goto label_74;
                                                                 |     }
    0x00017b06 movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 >= r0) {
    0x00017b08 bpl 0x17ba4                                       |         goto label_75;
                                                                 |     }
    0x00017b0a movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 == r0) {
    0x00017b0c beq 0x17af4                                       |         goto label_27;
                                                                 |     }
    0x00017b0e movs r2, r0                                       |     r2 = r0;
    0x00017b10 blo 0x17b10                                       |     
    0x00017b12 movs r2, r0                                       |     r2 = r0;
                                                                 | label_28:
    0x00017b7e movs r5, 0                                        |     r5 = 0;
                                                                 |     do {
                                                                 | label_29:
    0x00017b80 ldr r2, [pc, 0x2cc]                               |         
    0x00017b82 ldr r3, [pc, 0x2c8]                               |         r3 = *(0x17e4e);
    0x00017b84 add r2, pc                                        |         r2 = 0x2f9d8;
    0x00017b86 ldr r3, [r2, r3]                                  |         r3 = *(0x2f9d8);
    0x00017b88 ldr r2, [r3]                                      |         r2 = *(0x2f9d8);
    0x00017b8a ldr r3, [sp, 0x1c]                                |         r3 = var_8h;
    0x00017b8c eors r2, r3                                       |         r2 ^= r3;
    0x00017b8e mov.w r3, 0                                       |         r3 = 0;
    0x00017b90 lsls r0, r0, 0xc                                  |         r0 <<= 0xc;
                                                                 |         if (r0 != r0) {
    0x00017b92 bne.w 0x17e2c                                     |             goto label_76;
                                                                 |         }
    0x00017b96 mov r0, r5                                        |         r0 = r5;
    0x00017b98 add sp, 0x24                                      |         
    0x00017b9a pop {r4, r5, r6, r7, pc}                          |         
                                                                 | label_75:
    0x00017ba4 ldr r5, [r0, 0x24]                                |         r5 = *((r0 + 0x24));
    0x00017ba6 bne 0x17b80                                       |         
                                                                 |     } while (r0 != r0);
    0x00017ba8 lsls r1, r3, 0x1b                                 |     r1 = r3 << 0x1b;
                                                                 |     if (r1 == r3) {
    0x00017baa beq 0x17b7e                                       |         goto label_28;
                                                                 |     }
    0x00017bac ldr r7, [pc, 0x2a4]                               |     
    0x00017bae movs r3, 0x14                                     |     r3 = 0x14;
    0x00017bb0 ldr r2, [r0, 0x24]                                |     r2 = *((r0 + 0x24));
    0x00017bb2 movw r1, 0x584                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00017bb6 add r7, pc                                        |     r7 = 0x2fa0e;
    0x00017bb8 mov r0, r7                                        |     r0 = r7;
    0x00017bba bl 0x35c28                                        |     zbx_malloc2 ();
    0x00017bbe ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x00017bc0 mov r5, r0                                        |     r5 = r0;
    0x00017bc2 str r0, [r4, 0x24]                                |     *((r4 + 0x24)) = r0;
    0x00017bc4 strd r6, r6, [r0]                                 |     __asm ("strd r6, r6, [r0]");
    0x00017bc8 ands r2, r3, 4                                    |     r2 = r3 & 4;
    0x00017bcc strd r6, r6, [r0, 8]                              |     __asm ("strd r6, r6, [r0, 8]");
    0x00017bd0 str r6, [r0, 0x10]                                |     *((r0 + 0x10)) = r6;
                                                                 |     if (r2 != r3) {
    0x00017bd2 bne.w 0x17d94                                     |         goto label_77;
                                                                 |     }
    0x00017bd6 ands r0, r3, 8                                    |     r0 = r3 & 8;
                                                                 |     if (r0 != r3) {
    0x00017bda bne.w 0x17dee                                     |         goto label_78;
                                                                 |     }
    0x00017bde ands r1, r3, 1                                    |     r1 = r3 & 1;
                                                                 |     if (r1 != r3) {
    0x00017be2 bne.w 0x17e02                                     |         goto label_79;
                                                                 |     }
    0x00017be6 lsls r2, r3, 0x1e                                 |     r2 = r3 << 0x1e;
                                                                 |     if (r2 < r3) {
    0x00017be8 bmi.w 0x17e16                                     |         goto label_80;
                                                                 |     }
                                                                 | label_31:
    0x00017bec orr r3, r3, 0x10                                  |     r3 |= 0x10;
    0x00017bf0 str r3, [r4, 0x28]                                |     *((r4 + 0x28)) = r3;
    0x00017bf2 b 0x17b80                                         |     goto label_29;
                                                                 | label_74:
    0x00017c04 lsls r0, r1, 8                                    |     r0 = r1 << 8;
                                                                 |     if (r0 != r1) {
    0x00017c06 bne 0x17c38                                       |         goto label_81;
                                                                 |     }
    0x00017c08 ands r0, r1, 4                                    |     r0 = r1 & 4;
                                                                 |     if (r0 != r1) {
    0x00017c0c bne.w 0x17d6a                                     |         goto label_82;
                                                                 |     }
    0x00017c10 ands r5, r1, 1                                    |     r5 = r1 & 1;
                                                                 |     if (r5 != r1) {
    0x00017c14 bne.w 0x17d80                                     |         goto label_83;
                                                                 |     }
    0x00017c18 lsls r6, r1, 0x1e                                 |     r6 = r1 << 0x1e;
                                                                 |     if (r6 >= r1) {
    0x00017c1a bpl 0x17b7e                                       |         goto label_28;
                                                                 |     }
    0x00017c1c orr r1, r1, 8                                     |     r1 |= 8;
    0x00017c20 ldrd r2, r3, [r4, 0x10]                           |     __asm ("ldrd r2, r3, [r4, 0x10]");
    0x00017c24 str r1, [r4, 0x28]                                |     *((r4 + 0x28)) = r1;
    0x00017c26 mov r0, r5                                        |     r0 = r5;
    0x00017c28 ldr r1, [pc, 0x22c]                               |     
    0x00017c2a add r1, pc                                        |     r1 = 0x2fa86;
    0x00017c2c bl 0x396b0                                        |     zbx_dsprintf ();
                                                                 | label_30:
    0x00017c30 ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x00017c32 str r0, [r4, 0x1c]                                |     *((r4 + 0x1c)) = r0;
    0x00017c34 lsls r0, r3, 0x1c                                 |     r0 = r3 << 0x1c;
                                                                 |     if (r0 >= r3) {
    0x00017c36 bpl 0x17b7e                                       |         goto label_28;
                                                                 |     }
                                                                 | label_81:
    0x00017c38 add.w r5, r4, 0x1c                                |     r5 = r4 + 0x1c;
    0x00017c3c b 0x17b80                                         |     goto label_29;
                                                                 | label_82:
    0x00017d6a orr r0, r1, 8                                     |     r0 = r1 | 8;
    0x00017d6e ldr r3, [r4, 0x18]                                |     r3 = *((r4 + 0x18));
    0x00017d70 str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x00017d72 movw r1, 0x56b                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
                                                                 |     do {
    0x00017d74 str r3, [r5, r5]                                  |         *((r5 + r5)) = r3;
    0x00017d76 ldr r0, [pc, 0xec]                                |         
    0x00017d78 add r0, pc                                        |         r0 = 0x2fbe2;
    0x00017d7a bl 0x35d28                                        |         zbx_strdup2 ();
    0x00017d7e b 0x17c30                                         |         goto label_30;
                                                                 | label_83:
    0x00017d80 orr r1, r1, 8                                     |         r1 |= 8;
    0x00017d84 ldrd r2, r3, [r4, 8]                              |         __asm ("ldrd r2, r3, [r4, 8]");
    0x00017d88 str r1, [r4, 0x28]                                |         *((r4 + 0x28)) = r1;
    0x00017d8a ldr r1, [pc, 0xdc]                                |         
    0x00017d8c add r1, pc                                        |         r1 = 0x2fbfa;
    0x00017d8e bl 0x396b0                                        |         zbx_dsprintf ();
    0x00017d92 b 0x17c30                                         |         goto label_30;
                                                                 | label_77:
    0x00017d94 ldr r3, [r4, 0x18]                                |         r3 = *((r4 + 0x18));
    0x00017d96 mov r2, r6                                        |         r2 = r6;
    0x00017d98 mov r0, r7                                        |         r0 = r7;
    0x00017d9a movw r1, 0x589                                    |         r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00017d9e bl 0x35d28                                        |         zbx_strdup2 ();
    0x00017da2 str r0, [r5]                                      |         *(r5) = r0;
    0x00017da4 ldrd r5, r3, [r4, 0x24]                           |         __asm ("ldrd r5, r3, [r4, 0x24]");
    0x00017da8 b 0x17bec                                         |         goto label_31;
                                                                 | label_78:
    0x00017dee ldr r3, [r4, 0x1c]                                |         r3 = *((r4 + 0x1c));
    0x00017df0 mov r0, r7                                        |         r0 = r7;
    0x00017df2 movw r1, 0x58b                                    |         r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00017df6 bl 0x35d28                                        |         zbx_strdup2 ();
    0x00017dfa str r0, [r5]                                      |         *(r5) = r0;
    0x00017dfc ldrd r5, r3, [r4, 0x24]                           |         __asm ("ldrd r5, r3, [r4, 0x24]");
    0x00017e00 b 0x17bec                                         |         goto label_31;
                                                                 | label_79:
    0x00017e02 ldr r1, [pc, 0x6c]                                |         
    0x00017e04 ldrd r2, r3, [r4, 8]                              |         __asm ("ldrd r2, r3, [r4, 8]");
    0x00017e08 add r1, pc                                        |         r1 = 0x2fc7e;
    0x00017e0a bl 0x396b0                                        |         zbx_dsprintf ();
    0x00017e0e str r0, [r5]                                      |         *(r5) = r0;
    0x00017e10 ldrd r5, r3, [r4, 0x24]                           |         __asm ("ldrd r5, r3, [r4, 0x24]");
    0x00017e14 b 0x17bec                                         |         goto label_31;
                                                                 | label_80:
    0x00017e16 mov r0, r1                                        |         r0 = r1;
    0x00017e18 ldr r1, [pc, 0x58]                                |         
    0x00017e1a ldrd r2, r3, [r4, 0x10]                           |         __asm ("ldrd r2, r3, [r4, 0x10]");
    0x00017e1e add r1, pc                                        |         r1 = 0x2fc96;
    0x00017e20 bl 0x396b0                                        |         zbx_dsprintf ();
    0x00017e24 str r0, [r5]                                      |         *(r5) = r0;
    0x00017e26 ldrd r5, r3, [r4, 0x24]                           |         __asm ("ldrd r5, r3, [r4, 0x24]");
    0x00017e2a b 0x17bec                                         |         goto label_31;
                                                                 | label_76:
    0x00017e2c blx 0xbe48                                        |         fcn_0000be48 ();
    0x00017e30 ldr r3, [pc, 0x44]                                |         
    0x00017e32 movw r2, 0x5b2                                    |         r2 = (r2 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00017e36 ldr r1, [pc, 0x44]                                |         
    0x00017e38 ldr r0, [pc, 0x44]                                |         
    0x00017e3a add r3, pc                                        |         r3 = 0x2fcb6;
    0x00017e3c add r1, pc                                        |         r1 = 0x2fcbe;
    0x00017e3e adds r3, 0x38                                     |         r3 += 0x38;
    0x00017e40 add r0, pc                                        |         r0 = 0x2fcc4;
    0x00017e42 blx 0xc4a0                                        |         fcn_0000c4a0 ();
    0x00017e46 nop                                               |         
    0x00017e48 str r0, [r7, r2]                                  |         *((r7 + r2)) = r0;
    0x00017e4a movs r4, r0                                       |         r4 = r0;
    0x00017e4c lsls r4, r2, 0xc                                  |         r4 = r2 << 0xc;
    0x00017e4e movs r0, r0                                       |         
    0x00017e50 str r0, [r5, r1]                                  |         *((r5 + r1)) = r0;
    0x00017e52 movs r4, r0                                       |         r4 = r0;
                                                                 |         if (r4 == r0) {
    0x00017e54 beq 0x17e9c                                       |             goto label_33;
                                                                 |         }
    0x00017e56 movs r2, r0                                       |         r2 = r0;
    0x00017e58 lsls r2, r4, 0xa                                  |         r2 = r4 << 0xa;
    0x00017e5a movs r3, r0                                       |         r3 = r0;
    0x00017e5c lsls r4, r3, 9                                    |         r4 = r3 << 9;
    0x00017e5e movs r3, r0                                       |         r3 = r0;
    0x00017e60 ldm r6!, {r1, r7}                                 |         r1 = *(r6!);
                                                                 |         r7 = *((r6! + 4));
    0x00017e62 movs r2, r0                                       |         r2 = r0;
    0x00017e64 ldm r6, {r5, r6}                                  |         r5 = *(r6);
                                                                 |         r6 = *((r6 + 4));
    0x00017e66 movs r2, r0                                       |         r2 = r0;
    0x00017e68 b 0x17d74                                         |         
                                                                 |     } while (1);
                                                                 |     do {
    0x00017e94 movs r3, 0                                        |         r3 = 0;
    0x00017e96 strb r3, [ip, -0x1]                               |         *((ip - 0x1)) = r3;
    0x00017e9a bx lr                                             |         return;
                                                                 | label_33:
    0x00017e9c ldrb.w ip, [r1, 1]                                |         ip = *((r1 + 1));
    0x00017ea0 cmp.w ip, 0x22                                    |         
                                                                 |         if (ip == 0x22) {
    0x00017ea4 beq 0x17ebe                                       |             goto label_84;
                                                                 |         }
                                                                 | label_32:
    0x00017ea6 strb r3, [r0]                                     |         *(r0) = r3;
    0x00017ea8 mov ip, r2                                        |         
    0x00017eaa ldrb r3, [r1, 1]!                                 |         r3 = *((r1 += 1));
    0x00017eae mov r0, r2                                        |         r0 = r2;
    0x00017eb0 adds r2, 1                                        |         r2++;
    0x00017eb2 cmp r3, 0                                         |         
    0x00017eb4 beq 0x17e94                                       |         
                                                                 |     } while (r3 == 0);
    0x00017eb6 cmp r3, 0x5c                                      |     
                                                                 |     if (r3 != 0x5c) {
    0x00017eb8 bne 0x17ea6                                       |         goto label_32;
                                                                 |     }
    0x00017eba b 0x17e9c                                         |     goto label_33;
                                                                 | label_84:
    0x00017ebe adds r1, 1                                        |     r1++;
    0x00017ec0 mov r3, ip                                        |     r3 = ip;
    0x00017ec2 b 0x17ea6                                         |     goto label_32;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x1010c */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.listener_thread ()                               | void listener_thread (int16_t arg_24h, int16_t arg_2ch, int16_t arg_30h, int16_t arg_60h, int16_t arg_e0ch, uint32_t arg1) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h;
                                                                 |     r0 = arg1;
    0x0001010c ldr r2, [pc, 0x304]                               |     
    0x0001010e ldr r3, [pc, 0x308]                               |     r3 = *(0x1041a);
    0x00010110 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00010114 subw sp, sp, 0xe14                                |     __asm ("subw sp, sp, case.0x3207a.11");
    0x00010118 add r2, pc                                        |     r2 = 0x20530;
    0x0001011a ldr r7, [pc, 0x300]                               |     
    0x0001011c ldr r3, [r2, r3]                                  |     
    0x0001011e add r7, pc                                        |     r7 = 0x20540;
    0x00010120 ldr r3, [r3]                                      |     r3 = *(0x20530);
    0x00010122 str.w r3, [sp, 0xe0c]                             |     __asm ("str.w r3, [arg_e0ch]");
    0x00010126 mov.w r3, 0                                       |     r3 = 0;
    0x0001012a cmp r0, 0                                         |     
                                                                 |     if (arg_24h == ) {
    0x0001012c beq.w 0x10346                                     |         goto label_10;
                                                                 |     }
    0x00010130 ldr r3, [r0, 0xc]                                 |     r3 = *(arg_24hxc);
    0x00010132 mov r5, r0                                        |     r5 = r0;
    0x00010134 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00010136 beq.w 0x1026a                                     |         goto label_11;
                                                                 |     }
    0x0001013a ldr r2, [pc, 0x2e4]                               |     r2 = *(0x10422);
    0x0001013c ldrb r1, [r0, 8]                                  |     r1 = *((r0 + 8));
    0x0001013e ldr r3, [pc, 0x2e4]                               |     r3 = *(0x10426);
    0x00010140 ldr r2, [r7, r2]                                  |     r2 = *((r7 + r2));
    0x00010142 strb r1, [r2]                                     |     *(r2) = r1;
    0x00010144 str r2, [sp, 0xc]                                 |     var_ch = r2;
    0x00010146 ldr r6, [r7, r3]                                  |     r6 = *((r7 + r3));
    0x00010148 ldr r3, [r0]                                      |     r3 = *(r0);
    0x0001014a str r3, [r6]                                      |     *(r6) = r3;
    0x0001014c ldr r3, [pc, 0x2d8]                               |     r3 = *(0x10428);
    0x0001014e ldr r4, [r7, r3]                                  |     r4 = *((r7 + r3));
    0x00010150 ldr r3, [r0, 4]                                   |     r3 = *((r0 + 4));
    0x00010152 str r3, [r4]                                      |     *(r4) = r3;
    0x00010154 ldr r3, [pc, 0x2d4]                               |     r3 = *(0x1042c);
    0x00010156 ldr r3, [r7, r3]                                  |     r3 = *((r7 + r3));
    0x00010158 ldrb r0, [r3]                                     |     r0 = *(r3);
    0x0001015a bl 0x3a048                                        |     get_program_type_string ();
    0x0001015e ldr r2, [sp, 0xc]                                 |     r2 = var_ch;
    0x00010160 ldr.w r8, [r6]                                    |     r8 = *(r6);
    0x00010164 mov r6, r0                                        |     r6 = r0;
    0x00010166 ldrb r0, [r2]                                     |     r0 = *(r2);
    0x00010168 bl 0x39e88                                        |     get_process_type_string ();
    0x0001016c str r0, [sp]                                      |     *(sp) = r0;
    0x0001016e mov r3, r8                                        |     r3 = r8;
    0x00010170 ldr r1, [r4]                                      |     r1 = *(r4);
    0x00010172 mov r2, r6                                        |     r2 = r6;
    0x00010174 movs r0, 0x7f                                     |     r0 = 0x7f;
    0x00010176 add r6, sp, 0x60                                  |     r6 += arg_60h;
    0x00010178 str r1, [sp, 4]                                   |     var_4h = r1;
    0x0001017a ldr r1, [pc, 0x2b4]                               |     
    0x0001017c add r1, pc                                        |     r1 = 0x205b2;
    0x0001017e bl 0x271b0                                        |     zbx_zabbix_log ();
    0x00010182 ldr r1, [r5, 0xc]                                 |     r1 = *((r5 + 0xc));
    0x00010184 movw r2, 0xdac                                    |     r2 = (r2 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00010188 mov r0, r6                                        |     r0 = r6;
    0x0001018a blx 0xbd78                                        |     fcn_0000bd78 ();
    0x0001018e mov r0, r5                                        |     r0 = r5;
    0x00010190 blx 0xbd14                                        |     gai_strerror ();
    0x00010194 ldr r3, [pc, 0x29c]                               |     r3 = *(0x10434);
    0x00010196 ldr r5, [r7, r3]                                  |     r5 = *((r7 + r3));
    0x00010198 ldr r3, [r5]                                      |     r3 = *(r5);
    0x0001019a cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0001019c bne 0x10228                                       |         goto label_12;
                                                                 |     }
    0x0001019e ldr r3, [pc, 0x298]                               |     r3 = *(0x1043a);
    0x000101a0 ldr.w fp, [pc, 0x298]                             |     fp = *(0x0001043c);
    0x000101a4 ldr.w r8, [r7, r3]                                |     r8 = *((r7 + r3));
    0x000101a8 ldr r3, [pc, 0x294]                               |     r3 = *(0x10440);
    0x000101aa add fp, pc                                        |     
    0x000101ac ldr r3, [r7, r3]                                  |     r3 = *((r7 + r3));
    0x000101ae str r3, [sp, 8]                                   |     var_8h = r3;
    0x000101b0 ldr r3, [pc, 0x290]                               |     r3 = *(0x10444);
    0x000101b2 ldr r3, [r7, r3]                                  |     r3 = *((r7 + r3));
    0x000101b4 str r3, [sp, 0x14]                                |     var_14h = r3;
    0x000101b6 ldr r3, [pc, 0x290]                               |     r3 = *(0x1044a);
    0x000101b8 ldr.w sb, [r7, r3]                                |     sb = *((r7 + r3));
    0x000101bc ldr r3, [pc, 0x28c]                               |     
    0x000101be ldr r7, [pc, 0x290]                               |     
    0x000101c0 add r3, pc                                        |     r3 = 0x20610;
    0x000101c2 str r3, [sp, 0x10]                                |     var_10h = r3;
    0x000101c4 add r3, sp, 0x30                                  |     r3 += arg_30h;
    0x000101c6 str r3, [sp, 0x1c]                                |     var_1ch = r3;
    0x000101c8 add r3, sp, 0x2c                                  |     r3 += arg_2ch;
    0x000101ca add r7, pc                                        |     r7 = 0x20620;
    0x000101cc str r3, [sp, 0x18]                                |     var_18h = r3;
    0x000101ce b 0x101ea                                         |     
                                                                 |     while (sl != 0) {
                                                                 | label_3:
    0x000101d0 blx 0xc15c                                        |         r0 = fcn_0000c15c ();
    0x000101d4 ldr r3, [r0]                                      |         r3 = *(r0);
    0x000101d6 cmp r3, 4                                         |         
                                                                 |         if (r3 != 4) {
    0x000101d8 beq 0x101e6                                       |             
    0x000101da ldr.w r3, [sb]                                    |             r3 = *(sb);
    0x000101de cmp r3, 2                                         |             
                                                                 |             if (r3 > 2) {
    0x000101e0 bgt 0x1024c                                       |                 goto label_13;
                                                                 |             }
                                                                 | label_2:
    0x000101e2 ldr r3, [r5]                                      |             r3 = *(r5);
                                                                 |             if (r3 == 0) {
    0x000101e4 cbz r3, 0x10244                                   |                 goto label_14;
                                                                 |             }
                                                                 |         }
                                                                 | label_1:
    0x000101e6 ldr r3, [r5]                                      |         r3 = *(r5);
                                                                 |         if (r3 != 0) {
    0x000101e8 cbnz r3, 0x10228                                  |             goto label_12;
                                                                 |         }
                                                                 | label_0:
    0x000101ea ldr r1, [r4]                                      |         r1 = *(r4);
    0x000101ec mov r0, r7                                        |         r0 = r7;
    0x000101ee bl 0x35e5c                                        |         zbx_setproctitle ();
    0x000101f2 ldr.w r1, [r8]                                    |         r1 = *(r8);
    0x000101f6 mov r0, r6                                        |         r0 = r6;
    0x000101f8 bl 0x2cf64                                        |         r0 = zbx_tcp_accept ();
    0x000101fc mov sl, r0                                        |         sl = r0;
    0x000101fe bl 0x34f20                                        |         zbx_time ();
    0x00010202 bl 0x37efc                                        |         zbx_update_env ();
    0x00010206 cmp.w sl, 0                                       |         
    0x0001020a bne 0x101d0                                       |         
                                                                 |     }
    0x0001020c ldr r1, [r4]                                      |     r1 = *(r4);
    0x0001020e mov r0, fp                                        |     r0 = fp;
    0x00010210 bl 0x35e5c                                        |     zbx_setproctitle ();
    0x00010214 ldr r3, [sp, 8]                                   |     r3 = var_8h;
    0x00010216 mov r0, r6                                        |     r0 = r6;
    0x00010218 ldr r1, [r3]                                      |     r1 = *(r3);
    0x0001021a ldrb r3, [r1]                                     |     r3 = *(r1);
                                                                 |     if (r3 != 0) {
    0x0001021c cbnz r3, 0x1025c                                  |         goto label_15;
                                                                 |     }
    0x0001021e bl 0x2d22c                                        |     zbx_tcp_unaccept ();
    0x00010222 ldr r3, [r5]                                      |     r3 = *(r5);
    0x00010224 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00010226 beq 0x101ea                                       |         goto label_0;
                                                                 |     }
                                                                 | label_12:
    0x00010228 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x0001022a ldrb r0, [r3]                                     |     r0 = *(r3);
    0x0001022c bl 0x39e88                                        |     r0 = get_process_type_string ();
    0x00010230 mov r1, r0                                        |     r1 = r0;
    0x00010232 ldr r0, [pc, 0x220]                               |     
    0x00010234 ldr r2, [r4]                                      |     r2 = *(r4);
    0x00010236 add r0, pc                                        |     r0 = 0x20690;
    0x00010238 bl 0x35e5c                                        |     zbx_setproctitle ();
                                                                 |     do {
    0x0001023c movs r0, 0x3c                                     |         r0 = 0x3c;
    0x0001023e blx 0xbe00                                        |         fcn_0000be00 ();
    0x00010242 b 0x1023c                                         |         
                                                                 |     } while (1);
                                                                 | label_14:
    0x00010244 movs r0, 1                                        |     r0 = 1;
    0x00010246 blx 0xbe00                                        |     fcn_0000be00 ();
    0x0001024a b 0x101e6                                         |     goto label_1;
                                                                 | label_13:
    0x0001024c bl 0x2c798                                        |     zbx_socket_strerror ();
    0x00010250 ldr r1, [sp, 0x10]                                |     r1 = var_10h;
    0x00010252 mov r2, r0                                        |     r2 = r0;
    0x00010254 movs r0, 3                                        |     r0 = 3;
    0x00010256 bl 0x271b0                                        |     zbx_zabbix_log ();
    0x0001025a b 0x101e2                                         |     goto label_2;
                                                                 | label_15:
    0x0001025c bl 0x2db48                                        |     r0 = zbx_tcp_check_allowed_peers ();
                                                                 |     if (r0 != 0) {
    0x00010260 cbz r0, 0x1027c                                   |         
    0x00010262 mov r0, r6                                        |         r0 = r6;
    0x00010264 bl 0x2d22c                                        |         zbx_tcp_unaccept ();
    0x00010268 b 0x101d0                                         |         goto label_3;
                                                                 | label_11:
    0x0001026a ldr r3, [pc, 0x1ec]                               |         
    0x0001026c movs r2, 0x6f                                     |         r2 = 0x6f;
    0x0001026e ldr r1, [pc, 0x1ec]                               |         
    0x00010270 ldr r0, [pc, 0x1ec]                               |         
    0x00010272 add r3, pc                                        |         r3 = 0x206d0;
    0x00010274 add r1, pc                                        |         r1 = 0x206d6;
    0x00010276 add r0, pc                                        |         r0 = 0x206da;
    0x00010278 blx 0xc4a0                                        |         fcn_0000c4a0 ();
                                                                 |     }
    0x0001027c ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0001027e mov r0, r6                                        |     r0 = r6;
    0x00010280 ldr r1, [r3]                                      |     r1 = *(r3);
    0x00010282 bl 0x2d45c                                        |     zbx_tcp_recv_ext ();
    0x00010286 adds r0, 1                                        |     r0++;
                                                                 |     if (r0 == 1) {
    0x00010288 beq 0x10336                                       |         goto label_16;
                                                                 |     }
    0x0001028a ldr r1, [pc, 0x1d8]                               |     
    0x0001028c ldr r0, [r6, 0xc]                                 |     r0 = *((r6 + 0xc));
    0x0001028e add r1, pc                                        |     r1 = 0x206f8;
    0x00010290 bl 0x3936c                                        |     zbx_rtrim ();
    0x00010294 ldr.w r3, [sb]                                    |     r3 = *(sb);
    0x00010298 cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x0001029a bgt 0x1038e                                       |         goto label_17;
                                                                 |     }
                                                                 | label_4:
    0x0001029c ldr.w sl, [sp, 0x1c]                              |     sl = var_1ch;
    0x000102a0 mov r0, sl                                        |     r0 = sl;
    0x000102a2 bl 0x16eb8                                        |     init_result ();
    0x000102a6 ldr r0, [r6, 0xc]                                 |     r0 = *((r6 + 0xc));
    0x000102a8 mov r2, sl                                        |     r2 = sl;
    0x000102aa movs r1, 4                                        |     r1 = 4;
    0x000102ac bl 0x17240                                        |     r0 = process ();
    0x000102b0 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000102b2 beq 0x10358                                       |         goto label_18;
                                                                 |     }
    0x000102b4 ldr r0, [sp, 0x1c]                                |     r0 = var_1ch;
    0x000102b6 movs r1, 0x20                                     |     r1 = 0x20;
    0x000102b8 bl 0x17b2c                                        |     get_result_value_by_type ();
    0x000102bc str r0, [sp, 0x20]                                |     var_20h = r0;
    0x000102be cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000102c0 beq 0x103bc                                       |         goto label_19;
                                                                 |     }
    0x000102c2 ldr.w r3, [sb]                                    |     r3 = *(sb);
    0x000102c6 movs r2, 0                                        |     r2 = 0;
    0x000102c8 ldr r1, [sp, 0x18]                                |     r1 = var_18h;
    0x000102ca cmp r3, 3                                         |     
    0x000102cc str r2, [r1]                                      |     *(r1) = r2;
                                                                 |     if (r3 > 3) {
    0x000102ce bgt 0x103ae                                       |         goto label_20;
                                                                 |     }
                                                                 | label_6:
    0x000102d0 ldr.w sl, [pc, 0x194]                             |     sl = *(0x00010468);
    0x000102d4 add sl, pc                                        |     sl += pc;
    0x000102d6 ldr.w r2, [sl]                                    |     r2 = *(sl);
    0x000102da cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x000102dc beq.w 0x103f2                                     |         goto label_21;
                                                                 |     }
                                                                 | label_9:
    0x000102e0 movs r3, 0x10                                     |     r3 = 0x10;
    0x000102e2 ldr.w sl, [pc, 0x188]                             |     sl = *(0x0001046c);
    0x000102e4 adr r1, 0x220                                     |     r1 = 0x220;
    0x000102e6 str r3, [sp]                                      |     *(sp) = r3;
    0x000102e8 ldr r1, [pc, 0x184]                               |     
    0x000102ea ldr r3, [pc, 0x188]                               |     
    0x000102ec add sl, pc                                        |     sl += pc;
    0x000102ee mov r0, sl                                        |     r0 = sl;
    0x000102f0 ldr r2, [sp, 0x18]                                |     r2 = var_18h;
    0x000102f2 add r1, pc                                        |     r1 = 0x20766;
    0x000102f4 add r3, pc                                        |     
    0x000102f6 str r1, [sp, 0x24]                                |     *(arg_24h) = r1;
    0x000102f8 bl 0x3905c                                        |     zbx_strncpy_alloc ();
    0x000102fc ldr r0, [sp, 0x18]                                |     r0 = var_18h;
    0x000102fe ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x00010300 ldr r1, [sp, 0x24]                                |     r1 = *(arg_24h);
    0x00010302 ldr r2, [r0]                                      |     r2 = *(r0);
    0x00010304 ldr r3, [r3]                                      |     
    0x00010306 adds r2, 1                                        |     r2++;
    0x00010308 str r2, [r0]                                      |     *(r0) = r2;
    0x0001030a mov r2, r0                                        |     r2 = r0;
    0x0001030c mov r0, sl                                        |     r0 = sl;
    0x0001030e bl 0x39168                                        |     zbx_strcpy_alloc ()
    0x00010312 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x00010314 ldr r0, [sp, 0x18]                                |     r0 = var_18h;
    0x00010316 ldr.w r1, [sl]                                    |     r1 = *(sl);
    0x0001031a ldr r3, [r3]                                      |     r3 = *(0x2076e);
    0x0001031c str r3, [sp]                                      |     *(sp) = r3;
    0x0001031e movs r3, 1                                        |     r3 = 1;
    0x00010320 ldr r2, [r0]                                      |     r2 = *(r0);
    0x00010322 mov r0, r6                                        |     r0 = r6;
    0x00010324 bl 0x2c968                                        |     r0 = zbx_tcp_send_ext ();
    0x00010328 mov sl, r0                                        |     sl = r0;
                                                                 |     do {
                                                                 | label_7:
    0x0001032a ldr r0, [sp, 0x1c]                                |         r0 = var_1ch;
    0x0001032c bl 0x16ee0                                        |         free_result ();
    0x00010330 cmp.w sl, -1                                      |         
                                                                 |         if (sl == -1) {
    0x00010334 bne 0x1033e                                       |             
                                                                 | label_16:
    0x00010336 ldr.w r3, [sb]                                    |             r3 = *(sb);
    0x0001033a cmp r3, 3                                         |             
                                                                 |             if (r3 > 3) {
    0x0001033c bgt 0x1039c                                       |                 goto label_22;
                                                                 |             }
                                                                 |         }
                                                                 | label_5:
    0x0001033e mov r0, r6                                        |         r0 = r6;
    0x00010340 bl 0x2d22c                                        |         zbx_tcp_unaccept ();
    0x00010344 b 0x101e6                                         |         goto label_1;
                                                                 | label_10:
    0x00010346 ldr r3, [pc, 0x130]                               |         
    0x00010348 movs r2, 0x6e                                     |         r2 = 0x6e;
    0x0001034a ldr r1, [pc, 0x130]                               |         
    0x0001034c ldr r0, [pc, 0x130]                               |         
    0x0001034e add r3, pc                                        |         r3 = 0x207cc;
    0x00010350 add r1, pc                                        |         r1 = 0x207d2;
    0x00010352 add r0, pc                                        |         r0 = 0x207d6;
    0x00010354 blx 0xc4a0                                        |         fcn_0000c4a0 ();
                                                                 | label_18:
    0x00010358 mov r0, sl                                        |         r0 = sl;
    0x0001035a movs r1, 8                                        |         r1 = 8;
    0x0001035c bl 0x17b2c                                        |         r0 = get_result_value_by_type ();
    0x00010360 mov sl, r0                                        |         sl = r0;
    0x00010362 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00010364 beq 0x103ea                                       |             goto label_23;
                                                                 |         }
    0x00010366 ldr.w r3, [sb]                                    |         r3 = *(sb);
    0x0001036a cmp r3, 3                                         |         
                                                                 |         if (r3 > 3) {
    0x0001036c bgt 0x103dc                                       |             goto label_24;
                                                                 |         }
                                                                 | label_8:
    0x0001036e ldr.w sl, [sl]                                    |         sl = *(sl);
    0x00010372 mov r0, sl                                        |         r0 = sl;
    0x00010374 blx 0xc114                                        |         fcn_0000c114 ();
    0x00010378 ldr r3, [sp, 0x14]                                |         r3 = var_14h;
    0x0001037a mov r2, r0                                        |         r2 = r0;
    0x0001037c mov r1, sl                                        |         r1 = sl;
    0x0001037e mov r0, r6                                        |         r0 = r6;
    0x00010380 ldr r3, [r3]                                      |         r3 = *(r3);
    0x00010382 str r3, [sp]                                      |         *(sp) = r3;
    0x00010384 movs r3, 1                                        |         r3 = 1;
    0x00010386 bl 0x2c968                                        |         r0 = zbx_tcp_send_ext ();
    0x0001038a mov sl, r0                                        |         sl = r0;
    0x0001038c b 0x1032a                                         |         
                                                                 |     } while (1);
                                                                 | label_17:
    0x0001038e ldr r1, [pc, 0xf4]                                |     
    0x00010390 movs r0, 4                                        |     r0 = 4;
    0x00010392 ldr r2, [r6, 0xc]                                 |     r2 = *((r6 + 0xc));
    0x00010394 add r1, pc                                        |     r1 = 0x2081e;
    0x00010396 bl 0x271b0                                        |     zbx_zabbix_log ();
    0x0001039a b 0x1029c                                         |     goto label_4;
                                                                 | label_22:
    0x0001039c bl 0x2c798                                        |     zbx_socket_strerror ();
    0x000103a0 ldr r1, [pc, 0xe4]                                |     
    0x000103a2 mov r2, r0                                        |     r2 = r0;
    0x000103a4 movs r0, 4                                        |     r0 = 4;
    0x000103a6 add r1, pc                                        |     r1 = 0x20832;
    0x000103a8 bl 0x271b0                                        |     zbx_zabbix_log ();
    0x000103ac b 0x1033e                                         |     goto label_5;
                                                                 | label_20:
    0x000103ae ldr r1, [pc, 0xdc]                                |     
    0x000103b0 ldr r2, [r0]                                      |     r2 = *(r0);
    0x000103b2 movs r0, 4                                        |     r0 = 4;
    0x000103b4 add r1, pc                                        |     r1 = 0x20846;
    0x000103b6 bl 0x271b0                                        |     zbx_zabbix_log ();
    0x000103ba b 0x102d0                                         |     goto label_6;
                                                                 | label_19:
    0x000103bc ldr.w r3, [sb]                                    |     r3 = *(sb);
    0x000103c0 cmp r3, 3                                         |     
    0x000103c2 bgt 0x10408                                       |     
                                                                 |     while (1) {
    0x000103c4 ldr r3, [sp, 0x14]                                |         r3 = var_14h;
    0x000103c6 movs r2, 0x10                                     |         r2 = 0x10;
    0x000103c8 ldr r1, [pc, 0xc4]                                |         
    0x000103ca mov r0, r6                                        |         r0 = r6;
    0x000103cc ldr r3, [r3]                                      |         r3 = *(r3);
    0x000103ce add r1, pc                                        |         r1 = 0x20862;
    0x000103d0 str r3, [sp]                                      |         *(sp) = r3;
    0x000103d2 movs r3, 1                                        |         r3 = 1;
    0x000103d4 bl 0x2c968                                        |         r0 = zbx_tcp_send_ext ();
    0x000103d8 mov sl, r0                                        |         sl = r0;
    0x000103da b 0x1032a                                         |         goto label_7;
                                                                 | label_24:
    0x000103dc ldr r1, [pc, 0xb4]                                |         
    0x000103de ldr r2, [r0]                                      |         r2 = *(r0);
    0x000103e0 movs r0, 4                                        |         r0 = 4;
    0x000103e2 add r1, pc                                        |         r1 = 0x2087a;
    0x000103e4 bl 0x271b0                                        |         zbx_zabbix_log ();
    0x000103e8 b 0x1036e                                         |         goto label_8;
                                                                 | label_23:
    0x000103ea ldr r0, [sp, 0x1c]                                |         r0 = var_1ch;
    0x000103ec bl 0x16ee0                                        |         free_result ();
    0x000103f0 b 0x1033e                                         |         goto label_5;
                                                                 | label_21:
    0x000103f2 ldr r3, [pc, 0xa4]                                |         
    0x000103f4 movs r1, 0x4e                                     |         r1 = 0x4e;
    0x000103f6 ldr r0, [pc, 0xa4]                                |         
    0x000103f8 add r3, pc                                        |         
    0x000103fa ldr r3, [r3]                                      |         r3 = *(0x20896);
    0x000103fc add r0, pc                                        |         r0 = 0x2089e;
    0x000103fe bl 0x35c28                                        |         zbx_malloc2 ();
    0x00010402 str.w r0, [sl]                                    |         __asm ("str.w r0, [sl]");
    0x00010406 b 0x102e0                                         |         goto label_9;
    0x00010408 ldr r1, [pc, 0x94]                                |         
    0x0001040a movs r0, 4                                        |         r0 = 4;
    0x0001040c add r1, pc                                        |         r1 = 0x208b0;
    0x0001040e bl 0x271b0                                        |         zbx_zabbix_log ();
    0x00010412 b 0x103c4                                         |         
                                                                 |     }
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x28014 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.regexp_sub_ex ()                                 | void regexp_sub_ex (int16_t arg_58h, int16_t arg_5ch, int16_t arg1, int16_t arg2, uint32_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_24h;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_2ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00028014 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00028018 mov fp, r1                                        |     
    0x0002801a sub sp, 0x34                                      |     
    0x0002801c ldr r1, [pc, 0x324]                               |     
    0x0002801e mov r8, r0                                        |     r8 = r0;
    0x00028020 mov r0, r3                                        |     r0 = r3;
    0x00028022 ldr r4, [sp, 0x58]                                |     r4 = *(arg_58h);
    0x00028024 ldr r3, [pc, 0x320]                               |     r3 = *(0x28348);
    0x00028026 add r1, pc                                        |     r1 = 0x5036e;
    0x00028028 str r4, [sp, 0x14]                                |     var_14h = r4;
    0x0002802a ldr r3, [r1, r3]                                  |     
    0x0002802c ldr r3, [r3]                                      |     r3 = *(0x5036e);
    0x0002802e str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x00028030 mov.w r3, 0                                       |     r3 = 0;
    0x00028034 ldr r3, [sp, 0x5c]                                |     r3 = *(arg_5ch);
    0x00028036 str r3, [sp, 0x10]                                |     var_10h = r3;
    0x00028038 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0002803a beq.w 0x28226                                     |         goto label_11;
                                                                 |     }
    0x0002803e ldrb r3, [r2]                                     |     r3 = *(r2);
    0x00028040 mov r1, r2                                        |     r1 = r2;
    0x00028042 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00028044 beq.w 0x28226                                     |         goto label_11;
                                                                 |     }
    0x00028048 cmp r3, 0x40                                      |     
                                                                 |     if (r3 != 0x40) {
    0x0002804a bne.w 0x2823a                                     |         goto label_12;
                                                                 |     }
    0x0002804e ldr.w sb, [r8, 4]                                 |     sb = *((r8 + 4));
    0x00028052 adds r7, r2, 1                                    |     r7 = r2 + 1;
    0x00028054 cmp.w sb, 0                                       |     
                                                                 |     if (sb <= 0) {
    0x00028058 ble.w 0x28302                                     |         goto label_13;
                                                                 |     }
    0x0002805c movs r3, 0                                        |     r3 = 0;
    0x0002805e mov sl, r7                                        |     sl = r7;
    0x00028060 mov.w r4, -1                                      |     r4 = -1;
    0x00028064 mov r6, r3                                        |     r6 = r3;
    0x00028066 mov r7, sb                                        |     r7 = sb;
    0x00028068 str r3, [sp, 0x18]                                |     var_18h = r3;
                                                                 |     do {
    0x0002806a ldr.w r3, [r8]                                    |         r3 = *(r8);
    0x0002806e mov r1, sl                                        |         r1 = sl;
    0x00028070 ldr.w sb, [r3, r6, lsl 2]                         |         offset_0 = r6 << 2;
                                                                 |         sb = *((r3 + offset_0));
    0x00028074 ldr.w r0, [sb]                                    |         r0 = *(sb);
    0x00028078 blx 0xbc58                                        |         fcn_0000bc58 ();
    0x0002807c str r0, [sp, 0xc]                                 |         var_ch = r0;
    0x0002807e cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00028080 bne 0x280f6                                       |             
    0x00028082 ldr.w r4, [sb, 8]                                 |             r4 = *((sb + 8));
    0x00028086 cmp r4, 4                                         |             
                                                                 |             if (r4 > 4) {
    0x00028088 bhi.w 0x28328                                     |                 goto label_14;
                                                                 |             }
                                                                 |             /* switch table (5 cases) at 0x28090 */
    0x0002808c tbb [pc, r4]                                      |             __asm ("tbb case.0x3207a.11");
    0x00028096 ldrb.w r3, [sb, 0xd]                              |             r3 = *((sb + 0xd));
    0x0002809a mov r0, fp                                        |             r0 = fp;
    0x0002809c ldr.w r1, [sb, 4]                                 |             r1 = *((sb + 4));
    0x000280a0 cmp r3, 0                                         |             
    0x000280a2 mov.w r3, -1                                      |             r3 = -1;
    0x000280a6 ite ne                                            |             
                                                                 |             if (r3 == 0) {
    0x000280a8 movne r2, 2                                       |                 r2 = 2;
                                                                 |             }
                                                                 |             if (r3 != 0) {
    0x000280aa moveq r2, 3                                       |                 r2 = 3;
                                                                 |             }
    0x000280ac str r3, [sp, 0x28]                                |             var_28h = r3;
    0x000280ae add r3, sp, 0x28                                  |             r3 += var_28h;
    0x000280b0 bl 0x279b0                                        |             r0 = fcn_000279b0 (r0, r1, r2, r3);
    0x000280b4 cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x000280b6 beq.w 0x282c2                                     |                 goto label_15;
                                                                 |             }
                                                                 | label_1:
    0x000280ba ldr r4, [sp, 0x18]                                |             r4 = var_18h;
                                                                 |             if (r4 == 0) {
    0x000280bc cbz r4, 0x28120                                   |                 goto label_2;
                                                                 |             }
    0x000280be movs r6, 0                                        |             r6 = 0;
    0x000280c0 b 0x281ba                                         |             goto label_16;
    0x000280c2 ldr r3, [sp, 0x10]                                |             r3 = var_10h;
    0x000280c4 ldr.w r1, [sb, 4]                                 |             r1 = *((sb + 4));
    0x000280c8 ldrb.w r2, [sb, 0xd]                              |             r2 = *((sb + 0xd));
    0x000280cc cmp r3, 0                                         |             
                                                                 |             if (r3 == 0) {
    0x000280ce beq.w 0x282a2                                     |                 goto label_17;
                                                                 |             }
    0x000280d2 movs r3, 0                                        |             r3 = 0;
    0x000280d4 mov r0, fp                                        |             r0 = fp;
    0x000280d6 str r3, [sp, 0x28]                                |             var_28h = r3;
    0x000280d8 add r3, sp, 0x28                                  |             r3 += var_28h;
    0x000280da str r3, [sp]                                      |             *(sp) = r3;
    0x000280dc ldr r3, [sp, 0x14]                                |             r3 = var_14h;
    0x000280de bl 0x27db4                                        |             r0 = fcn_00027db4 (r0, r1, r2, r3);
    0x000280e2 cmp r0, 1                                         |             
    0x000280e4 mov r4, r0                                        |             r4 = r0;
                                                                 |             if (r0 == 1) {
    0x000280e6 beq.w 0x28262                                     |                 goto label_18;
                                                                 |             }
                                                                 | label_6:
    0x000280ea adds r3, r4, 1                                    |             r3 = r4 + 1;
                                                                 | label_0:
    0x000280ec cmp r3, 1                                         |             
                                                                 |             if (r3 < 1) {
    0x000280ee bls.w 0x2830c                                     |                 goto label_19;
                                                                 |             }
    0x000280f2 ldr.w r7, [r8, 4]                                 |             r7 = *((r8 + 4));
                                                                 |         }
                                                                 | label_4:
    0x000280f6 adds r6, 1                                        |         r6++;
    0x000280f8 cmp r7, r6                                        |         
    0x000280fa bgt 0x2806a                                       |         
                                                                 |     } while (r7 > r6);
    0x000280fc sub.w r6, r4, 1                                   |     r6 = r4 - 1;
    0x00028100 ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x00028102 clz r6, r6                                        |     r6 &= r6;
    0x00028106 lsrs r6, r6, 5                                    |     r6 >>= 5;
    0x00028108 cmp r3, 0                                         |     
    0x0002810a ite eq                                            |     
                                                                 |     if (r3 != 0) {
    0x0002810c moveq r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (r3 == 0) {
    0x0002810e andne r3, r6, 1                                   |         r3 = r6 & 1;
                                                                 |     }
    0x00028112 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00028114 beq.w 0x28272                                     |         goto label_20;
                                                                 |     }
    0x00028118 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x0002811a movs r4, 1                                        |     r4 = 1;
    0x0002811c ldr r2, [sp, 0x18]                                |     r2 = var_18h;
    0x0002811e str r2, [r3]                                      |     *(r3) = r2;
                                                                 | label_2:
    0x00028120 ldr r2, [pc, 0x228]                               |     
    0x00028122 ldr r3, [pc, 0x224]                               |     r3 = *(0x2834a);
    0x00028124 add r2, pc                                        |     r2 = 0x50474;
    0x00028126 ldr r3, [r2, r3]                                  |     r3 = *(0x50474);
    0x00028128 ldr r2, [r3]                                      |     r2 = *(0x50474);
    0x0002812a ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
    0x0002812c eors r2, r3                                       |     r2 ^= r3;
    0x0002812e mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x00028132 bne.w 0x28308                                     |         goto label_21;
                                                                 |     }
    0x00028136 mov r0, r4                                        |     r0 = r4;
    0x00028138 add sp, 0x34                                      |     
    0x0002813a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
    0x0002813e ldrb.w r3, [sb, 0xd]                              |     r3 = *((sb + 0xd));
    0x00028142 ldr.w r1, [sb, 4]                                 |     r1 = *((sb + 4));
    0x00028146 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00028148 beq.w 0x28284                                     |         goto label_22;
                                                                 |     }
    0x0002814c cmp r3, 1                                         |     
                                                                 |     if (r3 != 1) {
    0x0002814e bne 0x28236                                       |         goto label_23;
                                                                 |     }
    0x00028150 mov r0, fp                                        |     r0 = fp;
    0x00028152 blx 0xbbe8                                        |     r0 = strstr (r0, r1);
    0x00028156 clz r4, r0                                        |     r4 &= r0;
    0x0002815a lsrs r4, r4, 5                                    |     r4 >>= 5;
    0x0002815c adds r3, r4, 1                                    |     r3 = r4 + 1;
    0x0002815e b 0x280ec                                         |     goto label_0;
    0x00028160 ldr.w r5, [sb, 4]                                 |     r5 = *((sb + 4));
    0x00028164 ldrb.w r7, [sb, 0xd]                              |     r7 = *((sb + 0xd));
    0x00028168 ldrb.w sb, [sb, 0xc]                              |     sb = *((sb + 0xc));
    0x0002816c ldrb r3, [r5]                                     |     r3 = *(r5);
    0x0002816e cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00028170 beq 0x280ba                                       |         goto label_1;
                                                                 |     }
    0x00028172 str r4, [sp, 0x1c]                                |     var_1ch = r4;
    0x00028174 mov r4, r7                                        |     r4 = r7;
    0x00028176 mov r7, r5                                        |     r7 = r5;
                                                                 |     do {
                                                                 | label_3:
    0x00028178 mov r1, sb                                        |         r1 = sb;
    0x0002817a mov r0, r7                                        |         r0 = r7;
    0x0002817c blx 0xc138                                        |         r0 = fcn_0000c138 ();
    0x00028180 mov r5, r0                                        |         r5 = r0;
    0x00028182 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00028184 beq 0x281ea                                       |             goto label_24;
                                                                 |         }
    0x00028186 mov.w r3, 0                                       |         r3 = 0;
    0x0002818a strb r3, [r0]                                     |         *(r0) = r3;
    0x0002818c cmp r4, 0                                         |         
                                                                 |         if (r4 == 0) {
    0x0002818e beq 0x2821c                                       |             goto label_25;
                                                                 |         }
    0x00028190 cmp r4, 1                                         |         
                                                                 |         if (r4 == 1) {
    0x00028192 beq 0x281f2                                       |             goto label_26;
                                                                 |         }
    0x00028194 mov r7, r0                                        |         r7 = r0;
    0x00028196 strb sb, [r7], 1                                  |         *(r7) = sb;
                                                                 |         r7++;
    0x0002819a ldrb r2, [r0, 1]                                  |         r2 = *((r0 + 1));
    0x0002819c cmp r2, 0                                         |         
    0x0002819e bne 0x28178                                       |         
                                                                 |     } while (r2 != 0);
                                                                 | label_8:
    0x000281a0 ldr r4, [sp, 0xc]                                 |     r4 = var_ch;
    0x000281a2 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x000281a4 subs r2, r4, 1                                    |     r2 = r4 - 1;
    0x000281a6 rsbs r6, r2, 0                                    |     r6 = r2 - ;
    0x000281a8 adcs r6, r2                                       |     __asm ("adcs r6, r2");
    0x000281aa cmp r3, 0                                         |     
    0x000281ac ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x000281ae it eq                                             |     
                                                                 |     if (r3 != 0) {
    0x000281b0 moveq r6, 0                                       |         r6 = 0;
                                                                 |     }
    0x000281b2 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x000281b4 beq 0x28120                                       |         goto label_2;
                                                                 |     }
    0x000281b6 ldr r4, [sp, 0xc]                                 |     r4 = var_ch;
                                                                 | label_9:
    0x000281b8 str r4, [sp, 0xc]                                 |     var_ch = r4;
                                                                 | label_16:
    0x000281ba ldr r0, [sp, 0x18]                                |     r0 = var_18h;
    0x000281bc ldr r4, [sp, 0xc]                                 |     r4 = var_ch;
    0x000281be blx 0xbd14                                        |     gai_strerror ();
    0x000281c2 cmp r6, 0                                         |     
                                                                 |     if (r6 != 0) {
    0x000281c4 bne 0x2822a                                       |         goto label_7;
                                                                 |     }
    0x000281c6 b 0x28120                                         |     goto label_2;
    0x000281c8 ldrb.w r3, [sb, 0xd]                              |     r3 = *((sb + 0xd));
    0x000281cc ldr.w r1, [sb, 4]                                 |     r1 = *((sb + 4));
    0x000281d0 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x000281d2 beq 0x28294                                       |         goto label_27;
                                                                 |     }
    0x000281d4 cmp r3, 1                                         |     
                                                                 |     if (r3 != 1) {
    0x000281d6 bne.w 0x280ba                                     |         goto label_1;
                                                                 |     }
    0x000281da mov r0, fp                                        |     r0 = fp;
    0x000281dc blx 0xbbe8                                        |     r0 = strstr (r0, r1);
    0x000281e0 subs r4, r0, 0                                    |     r4 = r0 - 0;
    0x000281e2 it ne                                             |     
                                                                 |     if (r4 == r0) {
    0x000281e4 movne r4, 1                                       |         r4 = 1;
                                                                 |     }
    0x000281e6 adds r3, r4, 1                                    |     r3 = r4 + 1;
    0x000281e8 b 0x280ec                                         |     goto label_0;
                                                                 |     if (r4 == 0) {
                                                                 | label_24:
    0x000281ea cbz r4, 0x2821c                                   |         goto label_25;
                                                                 |     }
    0x000281ec cmp r4, 1                                         |     
                                                                 |     if (r4 != 1) {
    0x000281ee bne.w 0x280ba                                     |         goto label_1;
                                                                 |     }
                                                                 | label_26:
    0x000281f2 mov r1, r7                                        |     r1 = r7;
    0x000281f4 mov r0, fp                                        |     r0 = fp;
    0x000281f6 blx 0xbbe8                                        |     strstr (r0, r1);
    0x000281f8 invalid                                           |     
                                                                 | label_5:
    0x000281fa subs r1, r0, 0                                    |     r1 = r0 - 0;
    0x000281fc it ne                                             |     
                                                                 |     if (r1 == r0) {
    0x000281fe movne r1, 1                                       |         r1 = 1;
                                                                 |     }
    0x00028200 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00028202 beq 0x282da                                       |         goto label_28;
                                                                 |     }
    0x00028204 mov r7, r5                                        |     r7 = r5;
    0x00028206 strb sb, [r7], 1                                  |     *(r7) = sb;
                                                                 |     r7++;
    0x0002820a ldrb r2, [r5, 1]                                  |     r2 = *((r5 + 1));
    0x0002820c cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0002820e beq 0x282da                                       |         goto label_28;
                                                                 |     }
    0x00028210 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00028212 beq 0x28178                                       |         goto label_3;
                                                                 |     }
    0x00028214 ldr r4, [sp, 0x1c]                                |     r4 = var_1ch;
    0x00028216 ldr.w r7, [r8, 4]                                 |     r7 = *((r8 + 4));
    0x0002821a b 0x280f6                                         |     goto label_4;
                                                                 | label_25:
    0x0002821c mov r1, r7                                        |     r1 = r7;
    0x0002821e mov r0, fp                                        |     r0 = fp;
    0x00028220 bl 0x39df0                                        |     zbx_strcasestr ();
    0x00028224 b 0x281fa                                         |     goto label_5;
                                                                 | label_11:
    0x00028226 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x00028228 cbz r3, 0x28232                                   |     
                                                                 |     while (r6 != 0) {
                                                                 | label_7:
    0x0002822a ldr r3, [sp, 0x10]                                |         r3 = var_10h;
    0x0002822c ldr r4, [r3]                                      |         r4 = *(r3);
    0x0002822e cmp r4, 0                                         |         
                                                                 |         if (r4 == 0) {
    0x00028230 beq 0x282e0                                       |             goto label_29;
                                                                 |         }
    0x00028232 movs r4, 1                                        |         r4 = 1;
    0x00028234 b 0x28120                                         |         goto label_2;
                                                                 | label_23:
    0x00028236 movs r4, 1                                        |         r4 = 1;
    0x00028238 b 0x280f6                                         |         goto label_4;
                                                                 | label_12:
    0x0002823a ldr r5, [sp, 0x10]                                |         r5 = var_10h;
    0x0002823c mov r2, r0                                        |         r2 = r0;
    0x0002823e ldr r3, [sp, 0x14]                                |         r3 = var_14h;
    0x00028240 mov r0, fp                                        |         r0 = fp;
    0x00028242 str r5, [sp]                                      |         *(sp) = r5;
    0x00028244 bl 0x27db4                                        |         r0 = fcn_00027db4 (r0, r1, r2, r3);
    0x00028248 sub.w r6, r0, 1                                   |         r6 = r0 - 1;
    0x0002824c cmp r5, 0                                         |         
    0x0002824e clz r6, r6                                        |         r6 &= r6;
    0x00028252 mov r4, r0                                        |         r4 = r0;
    0x00028254 lsr.w r6, r6, 5                                   |         r6 >>= 5;
    0x00028258 it eq                                             |         
                                                                 |         if (r5 != 0) {
    0x0002825a moveq r6, 0                                       |             r6 = 0;
                                                                 |         }
    0x0002825c cmp r6, 0                                         |         
    0x0002825e bne 0x2822a                                       |         
                                                                 |     }
    0x00028260 b 0x28120                                         |     goto label_2;
                                                                 | label_18:
    0x00028262 ldr r3, [sp, 0x18]                                |     r3 = var_18h;
                                                                 |     if (r3 != 0) {
    0x00028264 cbz r3, 0x2826c                                   |         
    0x00028266 mov r0, r3                                        |         r0 = r3;
    0x00028268 blx 0xbd14                                        |         gai_strerror ();
                                                                 |     }
    0x0002826c ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x0002826e str r3, [sp, 0x18]                                |     var_18h = r3;
    0x00028270 b 0x280ea                                         |     goto label_6;
                                                                 | label_20:
    0x00028272 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x00028274 cmp r3, 0                                         |     
    0x00028276 ite eq                                            |     
                                                                 |     if (r3 != 0) {
    0x00028278 moveq r6, 0                                       |         r6 = 0;
                                                                 |     }
                                                                 |     if (r3 == 0) {
    0x0002827a andne r6, r6, 1                                   |         r6 &= 1;
                                                                 |     }
    0x0002827e cmp r6, 0                                         |     
                                                                 |     if (r6 != 0) {
    0x00028280 bne 0x2822a                                       |         goto label_7;
                                                                 |     }
    0x00028282 b 0x28120                                         |     goto label_2;
                                                                 | label_22:
    0x00028284 mov r0, fp                                        |     r0 = fp;
    0x00028286 bl 0x39df0                                        |     r0 = zbx_strcasestr ();
    0x0002828a clz r4, r0                                        |     r4 &= r0;
    0x0002828e lsrs r4, r4, 5                                    |     r4 >>= 5;
    0x00028290 adds r3, r4, 1                                    |     r3 = r4 + 1;
    0x00028292 b 0x280ec                                         |     goto label_0;
                                                                 | label_27:
    0x00028294 mov r0, fp                                        |     r0 = fp;
    0x00028296 bl 0x39df0                                        |     r0 = zbx_strcasestr ();
    0x0002829a subs r4, r0, 0                                    |     r4 = r0 - 0;
    0x0002829c it ne                                             |     
                                                                 |     if (r4 == r0) {
    0x0002829e movne r4, 1                                       |         r4 = 1;
                                                                 |     }
    0x000282a0 b 0x280ea                                         |     goto label_6;
                                                                 | label_17:
    0x000282a2 cmp r2, 0                                         |     
    0x000282a4 mov.w r3, -1                                      |     r3 = -1;
    0x000282a8 ite eq                                            |     
                                                                 |     if (r2 != 0) {
    0x000282aa moveq r2, r4                                      |         r2 = r4;
                                                                 |     }
                                                                 |     if (r2 == 0) {
    0x000282ac movne r2, 2                                       |         r2 = 2;
                                                                 |     }
    0x000282ae str r3, [sp, 0x28]                                |     var_28h = r3;
    0x000282b0 mov r0, fp                                        |     r0 = fp;
    0x000282b2 add r3, sp, 0x28                                  |     r3 += var_28h;
    0x000282b4 bl 0x279b0                                        |     r0 = fcn_000279b0 (r0, r1, r2, r3);
                                                                 |     if (r0 == 0) {
    0x000282b8 cbz r0, 0x282f4                                   |         goto label_30;
                                                                 |     }
                                                                 |     do {
    0x000282ba ldr.w r7, [r8, 4]                                 |         r7 = *((r8 + 4));
    0x000282be movs r4, 1                                        |         r4 = 1;
    0x000282c0 b 0x280f6                                         |         goto label_4;
                                                                 | label_15:
    0x000282c2 ldr r3, [sp, 0x28]                                |         r3 = var_28h;
    0x000282c4 adds r3, 1                                        |         r3++;
    0x000282c6 bne 0x282ba                                       |         
                                                                 |     } while (r3 != 1);
                                                                 | label_10:
    0x000282c8 ldr r0, [sp, 0x18]                                |     r0 = var_18h;
    0x000282ca mov.w r4, -1                                      |     r4 = -1;
    0x000282ce cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000282d0 beq.w 0x28120                                     |         goto label_2;
                                                                 |     }
    0x000282d4 blx 0xbd14                                        |     gai_strerror ();
    0x000282d8 b 0x28120                                         |     goto label_2;
                                                                 | label_28:
    0x000282da adds r3, r1, 1                                    |     r3 = r1 + 1;
    0x000282dc mov r4, r1                                        |     r4 = r1;
    0x000282de b 0x280ec                                         |     goto label_0;
                                                                 | label_29:
    0x000282e0 ldr r0, [sp, 0x10]                                |     r0 = var_10h;
    0x000282e2 mov r3, fp                                        |     r3 = fp;
    0x000282e4 add r2, sp, 0x24                                  |     r2 += var_24h;
    0x000282e6 add r1, sp, 0x28                                  |     r1 += var_28h;
    0x000282e8 strd r4, r4, [sp, 0x24]                           |     __asm ("strd r4, r4, [var_24h]");
    0x000282ec movs r4, 1                                        |     r4 = 1;
    0x000282ee bl 0x39168                                        |     zbx_strcpy_alloc ()
    0x000282f2 b 0x28120                                         |     goto label_2;
                                                                 | label_30:
    0x000282f4 ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x000282f6 adds r1, r3, 1                                    |     r1 = r3 + 1;
    0x000282f8 it eq                                             |     
                                                                 |     if (r1 == r3) {
    0x000282fa streq r3, [sp, 0xc]                               |         var_ch = r3;
                                                                 |         goto label_31;
                                                                 |     }
                                                                 |     if (r1 != r3) {
                                                                 | label_31:
    0x000282fc bne.w 0x280ba                                     |         goto label_1;
                                                                 |     }
    0x00028300 b 0x281a0                                         |     goto label_8;
                                                                 | label_13:
    0x00028302 mov.w r4, -1                                      |     r4 = -1;
    0x00028306 b 0x28120                                         |     goto label_2;
                                                                 | label_21:
    0x00028308 blx 0xbe48                                        |     fcn_0000be48 ();
                                                                 | label_19:
    0x0002830c ldr r6, [sp, 0x10]                                |     r6 = var_10h;
    0x0002830e ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x00028310 subs r6, 0                                        |     
    0x00028312 it ne                                             |     
                                                                 |     if (r6 == 0) {
    0x00028314 movne r6, 1                                       |         r6 = 1;
                                                                 |     }
    0x00028316 cmp r4, 1                                         |     
    0x00028318 it ne                                             |     
                                                                 |     if (r4 == 1) {
    0x0002831a movne r6, 0                                       |         r6 = 0;
                                                                 |     }
    0x0002831c cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0002831e bne.w 0x281b8                                     |         goto label_9;
                                                                 |     }
    0x00028322 cmp r6, 0                                         |     
                                                                 |     if (r6 != 0) {
    0x00028324 bne 0x2822a                                       |         goto label_7;
                                                                 |     }
    0x00028326 b 0x28120                                         |     goto label_2;
                                                                 | label_14:
    0x00028328 ldr r2, [pc, 0x24]                                |     
    0x0002832a ldr r3, [pc, 0x28]                                |     
    0x0002832c ldr r1, [pc, 0x28]                                |     
    0x0002832e ldr r0, [pc, 0x2c]                                |     
    0x00028330 add r2, pc                                        |     r2 = 0x50684;
    0x00028332 add r3, pc                                        |     r3 = 0x5068c;
    0x00028334 adds r2, 0xc                                      |     r2 += 0xc;
    0x00028336 add r1, pc                                        |     r1 = 0x50692;
    0x00028338 add r0, pc                                        |     r0 = 0x5069a;
    0x0002833a bl 0x38c64                                        |     zbx_error ();
    0x0002833e bl 0x2b778                                        |     zbx_backtrace ();
    0x00028342 b 0x282c8                                         |     goto label_10;
                                                                 | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x34394 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.zbx_alias_get ()                         | void zbx_alias_get (int16_t arg_200h, int16_t arg1) {
                                                         |     int16_t var_48h;
                                                         |     int16_t var_54h;
                                                         |     int16_t var_10h;
                                                         |     int16_t var_14h;
                                                         |     int16_t var_28h;
                                                         |     r0 = arg1;
    0x00034394 ldr r1, [pc, 0xe8]                        |     
    0x00034396 movs r3, 0                                |     r3 = 0;
    0x00034398 ldr r2, [pc, 0xe8]                        |     r2 = *(0x34484);
    0x0003439a push.w {r4, r5, r6, r7, r8, sb, lr}       |     
    0x0003439e sub sp, 0x1c                              |     
    0x000343a0 add r1, pc                                |     r1 = 0x68824;
    0x000343a2 mov r5, r0                                |     r5 = r0;
    0x000343a4 add r0, sp, 0x10                          |     r0 += var_10h;
    0x000343a6 ldr r2, [r1, r2]                          |     
    0x000343a8 ldr r2, [r2]                              |     r2 = *(0x68824);
    0x000343aa str r2, [sp, 0x14]                        |     var_14h = r2;
    0x000343ac mov.w r2, 0                               |     r2 = 0;
    0x000343b0 strd r3, r5, [sp, 0xc]                    |     __asm ("strd r3, r5, [var_10h]");
    0x000343b4 bl 0x3986c                                |     r0 = parse_key ();
                                                         |     if (r0 != 0) {
    0x000343b8 cbnz r0, 0x343de                          |         goto label_1;
                                                         |     }
    0x000343ba ldr r3, [sp, 0x10]                        |     r3 = var_10h;
    0x000343bc ldrb r3, [r3]                             |     r3 = *(r3);
                                                         |     if (r3 != 0) {
    0x000343be cbnz r3, 0x343de                          |         goto label_1;
                                                         |     }
    0x000343c0 ldr r3, [pc, 0xc4]                        |     
    0x000343c2 add r3, pc                                |     r3 = 0x6884e;
    0x000343c4 ldr r6, [r3]                              |     r6 = *(0x6884e);
                                                         |     if (r6 == 0) {
    0x000343c6 cbz r6, 0x343de                           |         goto label_1;
                                                         |     }
    0x000343c8 mov r4, r6                                |     r4 = r6;
    0x000343ca b 0x343d0                                 |     
                                                         |     while (r0 != 0) {
    0x000343cc ldr r4, [r4]                              |         r4 = *(r4);
                                                         |         if (r4 == 0) {
    0x000343ce cbz r4, 0x343fa                           |             goto label_2;
                                                         |         }
    0x000343d0 ldr r0, [r4, 4]                           |         r0 = *((r4 + 4));
    0x000343d2 mov r1, r5                                |         r1 = r5;
    0x000343d4 blx 0xbc58                                |         r0 = fcn_0000bc58 ();
    0x000343d8 cmp r0, 0                                 |         
    0x000343da bne 0x343cc                               |         
                                                         |     }
                                                         |     do {
    0x000343dc ldr r5, [r4, 8]                           |         r5 = *((r4 + 8));
                                                         | label_1:
    0x000343de ldr r2, [pc, 0xac]                        |         
    0x000343e0 ldr r3, [pc, 0xa0]                        |         r3 = *(0x34484);
    0x000343e2 add r2, pc                                |         r2 = 0x68874;
    0x000343e4 ldr r3, [r2, r3]                          |         r3 = *(0x68874);
    0x000343e6 ldr r2, [r3]                              |         r2 = *(0x68874);
    0x000343e8 ldr r3, [sp, 0x14]                        |         r3 = var_14h;
    0x000343ea eors r2, r3                               |         r2 ^= r3;
    0x000343ec mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x000343f0 bne 0x3447a                               |             goto label_3;
                                                         |         }
    0x000343f2 mov r0, r5                                |         r0 = r5;
    0x000343f4 add sp, 0x1c                              |         
    0x000343f6 pop.w {r4, r5, r6, r7, r8, sb, pc}        |         
                                                         | label_2:
    0x000343fa ldr.w r8, [pc, 0x94]                      |         r8 = *(0x00034490);
    0x000343fe add r8, pc                                |         r8 += pc;
                                                         | label_0:
    0x00034400 ldr r7, [r6, 4]                           |         r7 = *((r6 + 4));
    0x00034402 mov r0, r7                                |         r0 = r7;
    0x00034404 blx 0xc114                                |         r0 = fcn_0000c114 ();
    0x00034408 cmp r0, 3                                 |         
    0x0003440a mov r4, r0                                |         r4 = r0;
                                                         |         if (r0 < 3) {
    0x0003440c bls 0x3446e                               |             goto label_4;
                                                         |         }
    0x0003440e sub.w sb, r0, 3                           |         sb = r0 - 3;
    0x00034412 mov r1, r8                                |         r1 = r8;
    0x00034414 add.w r0, r7, sb                          |         r0 = r7 + sb;
    0x00034418 blx 0xbc58                                |         r0 = fcn_0000bc58 ();
                                                         |         if (r0 != 0) {
    0x0003441c cbnz r0, 0x3446e                          |             goto label_4;
                                                         |         }
    0x0003441e subs r2, r4, 2                            |         r2 = r4 - 2;
    0x00034420 mov r0, r7                                |         r0 = r7;
    0x00034422 mov r1, r5                                |         r1 = r5;
    0x00034424 blx 0xc448                                |         r0 = fcn_0000c448 ();
                                                         |         if (r0 != 0) {
    0x00034428 cbnz r0, 0x3446e                          |             goto label_4;
                                                         |         }
    0x0003442a ldr r6, [r6, 8]                           |         r6 = *((r6 + 8));
    0x0003442c mov r0, r6                                |         r0 = r6;
    0x0003442e blx 0xc114                                |         r0 = fcn_0000c114 ();
    0x00034432 cmp r0, 3                                 |         
                                                         |         if (r0 < 3) {
    0x00034434 bls 0x34476                               |             goto label_5;
                                                         |         }
    0x00034436 subs r4, r0, 3                            |         r4 = r0 - 3;
    0x00034438 mov r1, r8                                |         r1 = r8;
    0x0003443a adds r0, r6, r4                           |         r0 = r6 + r4;
    0x0003443c blx 0xbc58                                |         r0 = fcn_0000bc58 ();
                                                         |         if (r0 != 0) {
    0x00034440 cbnz r0, 0x34476                          |             goto label_5;
                                                         |         }
    0x00034442 str r4, [sp]                              |         *(sp) = r4;
    0x00034444 mov r3, r6                                |         r3 = r6;
    0x00034446 ldr r4, [pc, 0x4c]                        |         
    0x00034448 add r6, sp, 0xc                           |         r6 += var_54h;
    0x0003444a mov r2, r6                                |         r2 = r6;
    0x0003444c add r4, pc                                |         r4 = 0x688e6;
    0x0003444e add.w r8, r4, 4                           |         r8 = r4 + 4;
    0x00034452 add.w r7, r4, 8                           |         r7 = r4 + 8;
    0x00034456 mov r1, r8                                |         r1 = r8;
    0x00034458 mov r0, r7                                |         r0 = r7;
    0x0003445a bl 0x3905c                                |         zbx_strncpy_alloc ();
    0x0003445e add.w r3, r5, sb                          |         r3 = r5 + sb;
    0x00034462 mov r2, r6                                |         r2 = r6;
    0x00034464 mov r1, r8                                |         r1 = r8;
    0x00034466 mov r0, r7                                |         r0 = r7;
    0x00034468 bl 0x39168                                |         zbx_strcpy_alloc ()
    0x0003446c b 0x343dc                                 |         
                                                         |     } while (1);
                                                         | label_4:
    0x0003446e ldr r6, [r6]                              |     r6 = *(r6);
    0x00034470 cmp r6, 0                                 |     
                                                         |     if (r6 != 0) {
    0x00034472 bne 0x34400                               |         goto label_0;
                                                         |     }
    0x00034474 b 0x343de                                 |     goto label_1;
                                                         | label_5:
    0x00034476 mov r5, r6                                |     r5 = r6;
    0x00034478 b 0x343de                                 |     goto label_1;
                                                         | label_3:
    0x0003447a blx 0xbe48                                |     fcn_0000be48 ();
    0x0003447e nop                                       |     
    0x00034480 ldrh r4, [r1, 2]                          |     r4 = *((r1 + 2));
    0x00034482 movs r2, r0                               |     r2 = r0;
    0x00034484 lsls r4, r2, 0xc                          |     r4 = r2 << 0xc;
    0x00034486 movs r0, r0                               |     
    0x00034488 add r7, sp, 0x28                          |     r7 += var_28h;
    0x0003448a movs r2, r0                               |     r2 = r0;
    0x0003448c ldrh r2, [r1]                             |     r2 = *(r1);
    0x0003448e movs r2, r0                               |     r2 = r0;
    0x00034490 lsrs r6, r0, 6                            |     r6 = r0 >> 6;
    0x00034492 movs r1, r0                               |     r1 = r0;
    0x00034494 add r6, sp, 0x200                         |     r6 += arg_200h;
    0x00034496 movs r2, r0                               |     r2 = r0;
                                                         | }

[*] Function strcpy used 33 times zabbix_agentd