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