[*] Binary protection state of libsyslog-ng-3.31.so.0.0.0
Full RELRO Canary found NX enabled DSO No RPATH No RUNPATH No Symbols
[*] Function strcat tear down of libsyslog-ng-3.31.so.0.0.0
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsyslog-ng-3.31.so.0.0.0 @ 0x57ba0 */
| #include <stdint.h>
|
| #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
|
; (fcn) fcn.00057ba0 () | void fcn_00057ba0 (int16_t arg_188h, int16_t arg_208h, int16_t arg_240h, int16_t arg1) {
| int16_t var_4h;
| int16_t var_8h;
| int16_t var_ch;
| int16_t var_24h;
| int32_t var_24h_2;
| r0 = arg1;
| label_3:
0x0002109c bx pc | return void (*pc)() ();
0x00057ba0 ldr r2, [pc, 0x14c] |
0x00057ba2 ldr r3, [pc, 0x150] | r3 = *(0x57cf6);
0x00057ba4 push.w {r4, r5, r6, r7, r8, sb, sl, lr} |
0x00057ba8 mov r5, r0 | r5 = r0;
0x00057baa add r2, pc | r2 = 0xaf89e;
0x00057bac sub sp, 0x28 |
0x00057bae mov.w sb, 0 | sb = 0;
0x00057bb2 add r7, sp, 8 | r7 += var_8h;
0x00057bb4 ldr r3, [r2, r3] |
0x00057bb6 ldr r6, [pc, 0x140] |
0x00057bb8 ldr r3, [r3] | r3 = *(0xaf89e);
0x00057bba str r3, [sp, 0x24] | var_24h = r3;
0x00057bbc mov.w r3, 0 | r3 = 0;
0x00057bc0 bl 0x57a78 | r0 = fcn_00057a78 (r0, r1);
0x00057bc4 mov r8, r0 | r8 = r0;
0x00057bc6 mov r0, r5 | r0 = r5;
0x00057bc8 blx 0x219e0 | fcn_000219e0 ();
0x00057bcc ldr r1, [pc, 0x12c] |
0x00057bce add r6, pc | r6 = 0xaf8cc;
0x00057bd0 mov r4, r0 | r4 = r0;
0x00057bd2 mov r0, r5 | r0 = r5;
0x00057bd4 add r5, sp, 0xc | r5 += var_ch;
0x00057bd6 add r1, pc | r1 = 0xaf8d6;
0x00057bd8 blx 0x21148 | r0 = fcn_00021148 ();
0x00057bdc mov sl, r0 | sl = r0;
0x00057bde adds r0, r6, 4 | r0 = r6 + 4;
0x00057be0 blx 0x23224 | fcn_00023224 ();
0x00057be4 blx 0x21b7c | fcn_00021b7c ();
0x00057be8 ldr r1, [r6, 0x20] | r1 = *(0xaf8ec);
0x00057bea mov r0, r5 | r0 = r5;
0x00057bec add r6, sp, 4 | r6 += var_4h;
0x00057bee blx 0x20e0c | fcn_00020e0c ();
0x00057bf2 b 0x57c00 |
| while (r0 != 0) {
0x00057bf4 ldr r1, [sp, 4] | r1 = var_4h;
0x00057bf6 mov r0, r4 | r0 = r4;
0x00057bf8 blx 0x1f71c | r0 = fcn_0001f71c ();
0x00057bfc cmp r0, 0 |
| if (r0 != 0) {
0x00057bfe bne 0x57cb4 | goto label_5;
| }
| label_1:
0x00057c00 mov r2, r7 | r2 = r7;
0x00057c02 mov r1, r6 | r1 = r6;
0x00057c04 mov r0, r5 | r0 = r5;
0x00057c06 blx 0x218e4 | r0 = g_mutex_lock ();
0x00057c0a cmp r0, 0 |
0x00057c0c bne 0x57bf4 |
| }
| label_2:
0x00057c0e ldr r0, [pc, 0xf0] |
0x00057c10 add r0, pc | r0 = 0xaf916;
0x00057c12 adds r0, 4 | r0 += 4;
0x00057c14 blx 0x23224 | fcn_00023224 ();
0x00057c16 add.w r7, r6, sl, lsl 31 | r7 = r6 + (sl << 31);
0x00057c1a orns r6, r4, r0, asr 16 | __asm ("orns r6, r4, r0, asr 16");
0x00057c1e blx 0x21d24 | fcn_00021d24 ();
0x00057c22 mov r0, sb | r0 = sb;
0x00057c24 blx 0x1f2f8 | r0 = fcn_0001f2f8 ();
0x00057c28 mov sb, r0 | sb = r0;
0x00057c2a cmp r0, 0 |
| if (r0 == 0) {
0x00057c2c beq 0x57ce8 | goto label_6;
| }
0x00057c2e mov r6, r0 | r6 = r0;
0x00057c30 movs r7, 0 | r7 = 0;
| label_0:
0x00057c32 ldr r5, [r6] | r5 = *(r6);
0x00057c34 ldr r4, [r5] | r4 = *(r5);
| if (r4 == 0) {
0x00057c36 cbz r4, 0x57c72 | goto label_7;
| }
0x00057c38 mov.w sl, 0 | sl = 0;
| do {
0x00057c3c ldr r0, [r4] | r0 = *(r4);
0x00057c3e bl 0x57a78 | r0 = fcn_00057a78 (r0, r1);
0x00057c42 mov r1, r0 | r1 = r0;
| if (r0 != 0) {
0x00057c44 cbz r0, 0x57c4e |
0x00057c46 mov r0, sl | r0 = sl;
0x00057c48 blx 0x210a0 | r0 = fcn_000210a0 ();
0x00057c4c mov sl, r0 | sl = r0;
| }
0x00057c4e ldr r4, [r4, 4] | r4 = *((r4 + 4));
0x00057c50 cmp r4, 0 |
0x00057c52 bne 0x57c3c |
| } while (r4 != 0);
0x00057c54 cmp.w sl, 0 |
| if (sl != 0) {
0x00057c58 beq 0x57c72 |
0x00057c5a ldr r3, [r5, 8] | r3 = *((r5 + 8));
0x00057c5c adds r1, r5, 4 | r1 = r5 + 4;
0x00057c5e mov r0, sl | r0 = sl;
0x00057c60 blx r3 | uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
0x00057c62 mov r0, r7 | r0 = r7;
0x00057c64 ldr r1, [r5, 4] | r1 = *((r5 + 4));
0x00057c66 blx 0x21c38 | r0 = fcn_00021c38 ();
0x00057c6a mov r7, r0 | r7 = r0;
0x00057c6c mov r0, sl | r0 = sl;
0x00057c6e blx 0x2069c | g_hash_table_new_full ();
| }
| label_7:
0x00057c72 ldr r6, [r6, 4] | r6 = *((r6 + 4));
0x00057c74 cmp r6, 0 |
| if (r6 != 0) {
0x00057c76 bne 0x57c32 | goto label_0;
| }
| label_4:
0x00057c78 mov r0, r7 | r0 = r7;
0x00057c7a blx 0x1f2f8 | r0 = fcn_0001f2f8 ();
0x00057c7e mov r4, r0 | r4 = r0;
0x00057c80 mov r0, sb | r0 = sb;
0x00057c82 blx 0x2069c | g_hash_table_new_full ();
0x00057c86 cmp.w r8, 0 |
0x00057c8a it ne |
| if (r8 != 0) {
0x00057c8c cmpne r4, 0 | __asm ("cmpne r4, 0");
| }
| if (r8 != 0) {
0x00057c8e bne 0x57cc6 | goto label_8;
| }
0x00057c90 ldr r2, [pc, 0x70] |
0x00057c92 cmp.w r8, 0 |
0x00057c96 it eq |
| if (r8 != 0) {
0x00057c98 moveq r8, r4 | r8 = r4;
| }
0x00057c9a ldr r3, [pc, 0x58] | r3 = *(0x57cf6);
0x00057c9c add r2, pc | r2 = 0xaf9a4;
0x00057c9e ldr r3, [r2, r3] | r3 = *(0xaf9a4);
0x00057ca0 ldr r2, [r3] | r2 = *(0xaf9a4);
0x00057ca2 ldr r3, [sp, 0x24] | r3 = var_24h;
0x00057ca4 eors r2, r3 | r2 ^= r3;
0x00057ca6 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00057caa bne 0x57cec | goto label_9;
| }
0x00057cac mov r0, r8 | r0 = r8;
0x00057cae add sp, 0x28 |
0x00057cb0 pop.w {r4, r5, r6, r7, r8, sb, sl, pc} |
| label_5:
0x00057cb4 mov r0, sb | r0 = sb;
0x00057cb6 ldr r1, [sp, 8] | r1 = var_8h;
0x00057cb8 blx 0x21c38 | r0 = fcn_00021c38 ();
0x00057cbc mov sb, r0 | sb = r0;
0x00057cbe cmp.w sl, 0 |
| if (sl != 0) {
0x00057cc2 bne 0x57c00 | goto label_1;
| }
0x00057cc4 b 0x57c0e | goto label_2;
| label_8:
0x00057cc6 ldr r2, [pc, 0x40] |
0x00057cc8 ldr r3, [pc, 0x28] | r3 = *(0x57cf4);
0x00057cca add r2, pc | r2 = 0xaf9d8;
0x00057ccc ldr r3, [r2, r3] | r3 = *(0xaf9d8);
0x00057cce ldr r2, [r3] | r2 = *(0xaf9d8);
0x00057cd0 ldr r3, [sp, 0x24] | r3 = var_24h;
0x00057cd2 eors r2, r3 | r2 ^= r3;
0x00057cd4 mov.w r3, 0 | r3 = 0;
| if (r2 == r3) {
0x00057cd8 bne 0x57cec |
0x00057cda mov r1, r4 | r1 = r4;
0x00057cdc mov r0, r8 | r0 = r8;
0x00057cde add sp, 0x28 |
0x00057ce0 pop.w {r4, r5, r6, r7, r8, sb, sl, lr} |
0x00057ce4 b.w 0x2109c | goto label_3;
| label_6:
0x00057ce8 mov r7, r0 | r7 = r0;
0x00057cea b 0x57c78 | goto label_4;
| }
| label_9:
0x00057cec blx 0x21bd4 | fcn_00021bd4 ();
0x00057cf0 ldr r0, [sp, 0x208] | r0 = *(arg_208h);
0x00057cf2 movs r4, r0 | r4 = r0;
0x00057cf4 adds r4, r1, r3 | r4 = r1 + r3;
0x00057cf6 movs r0, r0 |
0x00057cf8 cdp2 p0, 0xd, c0, c14, c4, 0 | __asm ("cdp2 p0, 0xd, c0, c14, c4, 0");
0x00057cfc ldr r6, [r6, 0x24] | r6 = var_24h_2;
0x00057cfe movs r2, r0 | r2 = r0;
0x00057d00 cdp2 p0, 9, c0, c12, c4, 0 | __asm ("cdp2 p0, 9, c0, c12, c4, 0");
0x00057d04 str r7, [sp, 0x240] | *(arg_240h) = r7;
0x00057d06 movs r4, r0 | r4 = r0;
0x00057d08 str r7, [sp, 0x188] | *(arg_188h) = r7;
0x00057d0a movs r4, r0 | r4 = r0;
0x00057d0c push {r3, r4, r5, lr} |
0x00057d0e mov r5, r0 | r5 = r0;
0x00057d10 mov r4, r1 | r4 = r1;
0x00057d12 blx 0x23634 | r0 = fcn_00023634 ();
| if (r0 == 0) {
0x00057d16 cbnz r0, 0x57d1a |
0x00057d18 pop {r3, r4, r5, pc} |
| }
0x00057d1a ldr r3, [r5, 0x18] | r3 = *((r5 + 0x18));
0x00057d1c adds.w r1, r3, r4, lsl 4 | r1 = r3 + (r4 << 4);
0x00057d20 ldr r3, [pc, 0x18] |
0x00057d22 it ne |
| if (r1 == r3) {
0x00057d24 ldrne r1, [r1, 4] | r1 = *((r1 + 4));
| }
0x00057d26 add r3, pc | r3 = 0xafa66;
0x00057d28 ldr r0, [r3] | r0 = *(0xafa66);
0x00057d2a blx 0x22924 | fcn_00022924 ();
0x00057d2e ldrh r3, [r5, 0x2c] | r3 = *((r5 + 0x2c));
0x00057d30 movs r2, 1 | r2 = 1;
0x00057d32 lsls r2, r4 | r2 <<= r4;
0x00057d34 bic.w r3, r3, r2 | r3 = BIT_MASK (r3, r2);
0x00057d38 strh r3, [r5, 0x2c] | *((r5 + 0x2c)) = r3;
0x00057d3a pop {r3, r4, r5, pc} |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsyslog-ng-3.31.so.0.0.0 @ 0x588d4 */
| #include <stdint.h>
|
; (fcn) sym.control_connection_start_as_thread () | void control_connection_start_as_thread (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
| r0 = arg1;
| r1 = arg2;
| r2 = arg3;
| r3 = arg4;
0x000588d4 mvnsmi lr, sp, lsr 18 | __asm ("mvnsmi lr, sp, lsr 18");
0x000588d8 mov r7, r0 | r7 = r0;
0x000588da movs r0, 0x48 | r0 = 0x48;
0x000588dc mov r5, r1 | r5 = r1;
0x000588de mov r8, r2 | r8 = r2;
0x000588e0 mov r6, r3 | r6 = r3;
0x000588e2 blx 0x23320 | r0 = fcn_00023320 ();
0x000588e6 mov r4, r0 | r4 = r0;
0x000588e8 ldr.w r0, [r8] | r0 = *(r8);
0x000588ec str r7, [r4] | *(r4) = r7;
0x000588ee blx 0x1fd50 | fcn_0001fd50 ();
0x000588f2 strd r0, r6, [r4, 4] | __asm ("strd r0, r6, [r4, 4]");
0x000588f6 blx 0x221cc | fcn_000221cc ();
0x000588fa str r0, [r4, 0x10] | *((r4 + 0x10)) = r0;
0x000588fc blx 0x20f98 | fcn_00020f98 ();
0x00058900 str r0, [r4, 0x14] | *((r4 + 0x14)) = r0;
0x00058902 blx 0x221cc | fcn_000221cc ();
0x00058906 ldr r3, [pc, 0xbc] |
0x00058908 movs r2, 0 | r2 = 0;
0x0005890a strd r2, r2, [r4, 0x18] | __asm ("strd r2, r2, [r4, 0x18]");
0x0005890e str r0, [r4, 0x20] | *((r4 + 0x20)) = r0;
0x00058910 add r3, pc | r3 = 0xb12da;
0x00058912 str r5, [r4, 0x2c] | *((r4 + 0x2c)) = r5;
0x00058914 strd r4, r3, [r4, 0x34] | __asm ("strd r4, r3, [r4, 0x34]");
0x00058918 blx 0x23054 | fcn_00023054 ();
0x0005891c blx 0x20230 | r0 = fcn_00020230 ();
| if (r0 == 0) {
0x00058920 cbz r0, 0x5896c | goto label_0;
| }
0x00058922 add.w r0, r4, 0x34 | r0 = r4 + 0x34;
0x00058926 blx 0x1f3fc | fcn_0001f3fc ();
0x0005892a ldr r3, [r4, 4] | r3 = *((r4 + 4));
0x0005892c mov r2, r4 | r2 = r4;
0x0005892e ldr r1, [pc, 0x98] |
0x00058930 ldr r0, [r3] | r0 = *(r3);
0x00058932 add r1, pc | r1 = 0xb1300;
0x00058934 blx 0x20248 | r0 = fcn_00020248 ();
0x00058938 mov r3, r0 | r3 = r0;
0x0005893a ldr r0, [r4, 0x10] | r0 = *((r4 + 0x10));
0x0005893c str r3, [r4, 0xc] | *((r4 + 0xc)) = r3;
0x0005893e blx 0x21b7c | fcn_00021b7c ();
0x00058942 ldr r3, [r4, 0x18] | r3 = *((r4 + 0x18));
| if (r3 != 0) {
0x00058944 cbnz r3, 0x58954 | goto label_1;
| }
| do {
0x00058946 ldrd r1, r0, [r4, 0x10] | __asm ("ldrd r1, r0, [r4, 0x10]");
0x0005894a blx 0x23d9c | fcn_00023d9c ();
0x0005894e ldr r3, [r4, 0x18] | r3 = *((r4 + 0x18));
0x00058950 cmp r3, 0 |
0x00058952 beq 0x58946 |
| } while (r3 == 0);
| label_1:
0x00058954 ldr r0, [r4, 0x10] | r0 = *((r4 + 0x10));
0x00058956 blx 0x22104 | fcn_00022104 ();
0x0005895a ldr r3, [r4] | r3 = *(r4);
0x0005895c mov r1, r4 | r1 = r4;
0x0005895e ldr r4, [r3, 0x10] | r4 = *((r3 + 0x10));
0x00058960 ldr r0, [r4] | r0 = *(r4);
0x00058962 blx 0x201e0 | strerror (r0);
0x00058966 str r0, [r4] | *(r4) = r0;
0x00058968 pop.w {r4, r5, r6, r7, r8, pc} |
| label_0:
0x0005896c ldr r3, [r4, 4] | r3 = *((r4 + 4));
0x0005896e mov r6, r0 | r6 = r0;
0x00058970 ldr r0, [pc, 0x58] |
0x00058972 ldr r1, [r3] | r1 = *(r3);
0x00058974 add r0, pc | r0 = 0xb1344;
0x00058976 blx 0x21ea4 | fcn_00021ea4 ();
0x0005897a ldr r1, [pc, 0x54] |
0x0005897c mov r3, r6 | r3 = r6;
0x0005897e mov r2, r0 | r2 = r0;
0x00058980 movs r0, 4 | r0 = 4;
0x00058982 add r1, pc | r1 = 0xb1358;
0x00058984 blx 0x1f2b0 | fcn_0001f2b0 ();
0x00058988 blx 0x23348 | g_string_append ();
0x0005898c ldr r6, [r4] | r6 = *(r4);
0x0005898e ldrd r1, r2, [r4, 4] | __asm ("ldrd r1, r2, [r4, 4]");
0x00058992 mov r0, r6 | r0 = r6;
0x00058994 blx r5 | r0 = uint32_t (*r5)(uint32_t, uint32_t) (r0, r1);
0x00058996 mov r1, r0 | r1 = r0;
0x00058998 mov r0, r6 | r0 = r6;
0x0005899a blx 0x211f8 | fcn_000211f8 ();
0x0005899e ldr r0, [r4, 0x10] | r0 = *((r4 + 0x10));
0x000589a0 blx 0x2402c | fcn_0002402c ();
0x000589a4 ldr r0, [r4, 0x14] | r0 = *((r4 + 0x14));
0x000589a6 blx 0x23a78 | fcn_00023a78 ();
0x000589aa ldr r0, [r4, 0x20] | r0 = *((r4 + 0x20));
0x000589ac blx 0x2402c | fcn_0002402c ();
0x000589b0 ldr r0, [r4, 4] | r0 = *((r4 + 4));
0x000589b2 movs r1, 1 | r1 = 1;
0x000589b4 blx 0x229a8 | fcn_000229a8 ();
0x000589b8 mov r0, r4 | r0 = r4;
0x000589ba pop.w {r4, r5, r6, r7, r8, lr} |
0x000589be b.w 0x21ecc | return void (*0x21ecc)() ();
| }
r2dec has crashed (info: /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsyslog-ng-3.31.so.0.0.0 @ 0x67620).
Please report the bug at https://github.com/radareorg/r2dec-js/issues
Use the option '--issue' or the command 'pddi' to generate
the needed data for the issue.
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsyslog-ng-3.31.so.0.0.0 @ 0x4eb04 */
| #include <stdint.h>
|
; (fcn) sym.log_parser_process_message () | void log_parser_process_message (int16_t arg1, int16_t arg2, int16_t arg3) {
| int16_t var_0h_2;
| int16_t var_4h;
| int16_t var_8h;
| int16_t var_14h;
| int16_t var_0h;
| int16_t var_8h_2;
| int16_t var_ch;
| int32_t var_4h_2;
| int32_t var_4h_3;
| int32_t var_ch_2;
| int16_t var_1ch;
| r0 = arg1;
| r1 = arg2;
| r2 = arg3;
0x0004eb04 mvnsmi lr, 0xb4000 | __asm ("mvnsmi lr, case.0x5984c.0");
0x0004eb08 mov r6, r2 | r6 = r2;
0x0004eb0a ldr r2, [pc, 0x168] |
0x0004eb0c sub sp, 0x24 |
0x0004eb0e mov r4, r0 | r4 = r0;
0x0004eb10 mov r5, r1 | r5 = r1;
0x0004eb12 ldr r3, [pc, 0x164] | r3 = *(0x4ec7a);
0x0004eb14 add r2, pc | r2 = 0x9d78e;
0x0004eb16 ldr.w r8, [pc, 0x164] |
0x0004eb1a ldr.w sb, [r1] | sb = *(r1);
0x0004eb1e ldr r3, [r2, r3] |
0x0004eb20 add r8, pc | r8 = 0x9d7a2;
0x0004eb22 ldr r3, [r3] | r3 = *(0x9d78e);
0x0004eb24 str r3, [sp, 0x1c] | var_1ch = r3;
0x0004eb26 mov.w r3, 0 | r3 = 0;
0x0004eb2a ldr r3, [r0, 0x54] | r3 = *((r0 + 0x54));
| if (r3 == 0) {
0x0004eb2c cbz r3, 0x4eb8c | goto label_5;
| }
0x0004eb2e mov.w r0, 0x100 | r0 = case.0x5984c.0;
0x0004eb32 movs r7, 0 | r7 = 0;
0x0004eb34 blx 0x21b30 | isatty (r0);
0x0004eb38 add r2, sp, 0xc | r2 += var_ch;
0x0004eb3a mov r8, r0 | r8 = r0;
0x0004eb3c str r7, [sp, 0xc] | var_ch = r7;
0x0004eb3e mov r1, sb | r1 = sb;
0x0004eb40 ldr r0, [r4, 0x54] | r0 = *((r4 + 0x54));
0x0004eb42 mov r3, r8 | r3 = r8;
0x0004eb44 strd r7, r7, [r2, 4] | __asm ("strd r7, r7, [var_4h_2]");
0x0004eb48 str r7, [r2, 0xc] | var_ch_2 = r7;
0x0004eb4a blx 0x217b4 | fcn_000217b4 ();
0x0004eb4e ldr.w r0, [r8, 4] | r0 = *((r8 + 4));
0x0004eb52 mov r1, r5 | r1 = r5;
0x0004eb54 ldr.w r3, [r8] | r3 = *(r8);
0x0004eb58 mov r2, r6 | r2 = r6;
0x0004eb5a str r0, [sp] | *(sp) = r0;
0x0004eb5c mov r0, r4 | r0 = r4;
0x0004eb5e ldr r5, [r4, 0x58] | r5 = *((r4 + 0x58));
0x0004eb60 blx r5 | r0 = uint32_t (*r5)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
0x0004eb62 mov r5, r0 | r5 = r0;
0x0004eb64 movs r1, 1 | r1 = 1;
0x0004eb66 mov r0, r8 | r0 = r8;
0x0004eb68 blx 0x229a8 | fcn_000229a8 ();
0x0004eb6c cmp r5, 0 |
| if (r5 == 0) {
0x0004eb6e beq 0x4ec04 | goto label_6;
| }
| do {
| label_0:
0x0004eb70 ldr r2, [pc, 0x10c] |
0x0004eb72 ldr r3, [pc, 0x104] | r3 = *(0x4ec7a);
0x0004eb74 add r2, pc | r2 = 0x9d7f8;
0x0004eb76 ldr r3, [r2, r3] | r3 = *(0x9d7f8);
0x0004eb78 ldr r2, [r3] | r2 = *(0x9d7f8);
0x0004eb7a ldr r3, [sp, 0x1c] | r3 = var_1ch;
0x0004eb7c eors r2, r3 | r2 ^= r3;
0x0004eb7e mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x0004eb82 bne 0x4ec70 | goto label_7;
| }
0x0004eb84 mov r0, r5 | r0 = r5;
0x0004eb86 add sp, 0x24 |
0x0004eb88 pop.w {r4, r5, r6, r7, r8, sb, pc} |
| label_5:
0x0004eb8c ldr.w r0, [sb, 0x58] | r0 = *((sb + 0x58));
0x0004eb90 blx 0x20e80 | fcn_00020e80 ();
0x0004eb94 ldr r3, [pc, 0xec] |
0x0004eb96 mov r7, r0 | r7 = r0;
0x0004eb98 ldr.w r3, [r8, r3] | r3 = *((r8 + r3));
0x0004eb9c ldr r3, [r3] |
0x0004eb9e ldr r3, [r3, 4] |
0x0004eba0 ldr r3, [r3] | r3 = *(0x4ec88);
0x0004eba2 ldrh r1, [r3, 0x14] | r1 = *((r3 + 0x14));
0x0004eba4 ands r3, r1, 4 | r3 = r1 & 4;
| if (r3 == r1) {
0x0004eba8 bne 0x4ebde |
0x0004ebaa ldr.w sb, [sb, 0x58] | sb = *((sb + 0x58));
0x0004ebae ldrb.w r2, [sb, 0xa] | r2 = *((sb + 0xa));
0x0004ebb2 cmp r2, 2 |
| if (r2 > 2) {
0x0004ebb4 bhi 0x4ec26 | goto label_8;
| }
0x0004ebb6 movs r1, 3 | r1 = 3;
0x0004ebb8 add r3, sp, 0xc | r3 += var_ch;
0x0004ebba add r2, sp, 8 | r2 += var_8h_2;
0x0004ebbc mov r0, sb | r0 = sb;
0x0004ebbe blx 0x22660 | r0 = fcn_00022660 ();
0x0004ebc2 mov r1, r0 | r1 = r0;
0x0004ebc4 cmp r0, 0 |
| if (r0 == 0) {
0x0004ebc6 beq 0x4ec2e | goto label_9;
| }
| label_2:
0x0004ebc8 ldrb r3, [r1] | r3 = *(r1);
0x0004ebca lsls r2, r3, 0x1d | r2 = r3 << 0x1d;
| if (r2 < r3) {
0x0004ebcc bmi 0x4ec2e | goto label_9;
| }
0x0004ebce lsls r3, r3, 0x1f | r3 <<= 0x1f;
| if (r3 < r3) {
0x0004ebd0 bmi 0x4ec46 | goto label_10;
| }
0x0004ebd2 ldr r2, [r1, 8] | r2 = *((r1 + 8));
0x0004ebd4 str r2, [sp, 0xc] | var_ch = r2;
0x0004ebd6 ldrb r3, [r1, 1] | r3 = *((r1 + 1));
0x0004ebd8 add r3, r1 | r3 += r1;
0x0004ebda adds r3, 0xd | r3 += 0xd;
0x0004ebdc b 0x4ebec |
| } else {
0x0004ebde add r2, sp, 0xc | r2 += var_ch;
0x0004ebe0 lsrs r1, r1, 8 | r1 >>= 8;
0x0004ebe2 mov r0, sb | r0 = sb;
0x0004ebe4 blx 0x21064 | fcn_00021064 ();
0x0004ebe8 ldr r2, [sp, 0xc] | r2 = var_ch;
0x0004ebea mov r3, r0 | r3 = r0;
| }
| label_1:
0x0004ebec str r2, [sp] | *(sp) = r2;
0x0004ebee mov r1, r5 | r1 = r5;
0x0004ebf0 mov r2, r6 | r2 = r6;
0x0004ebf2 ldr r5, [r4, 0x58] | r5 = *((r4 + 0x58));
0x0004ebf4 mov r0, r4 | r0 = r4;
0x0004ebf6 blx r5 | r0 = uint32_t (*r5)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
0x0004ebf8 mov r5, r0 | r5 = r0;
0x0004ebfa mov r0, r7 | r0 = r7;
0x0004ebfc blx 0x20fd8 | fcn_00020fd8 ();
0x0004ec00 cmp r5, 0 |
0x0004ec02 bne 0x4eb70 |
| } while (r5 != 0);
| label_6:
0x0004ec04 ldr r3, [r4, 0x18] | r3 = *((r4 + 0x18));
0x0004ec06 cmp r3, 0 |
| if (r3 == 0) {
0x0004ec08 beq 0x4eb70 | goto label_0;
| }
0x0004ec0a ldr r2, [r3, 0xc] | r2 = *((r3 + 0xc));
| if (r2 != 0) {
0x0004ec0c cbnz r2, 0x4ec58 | goto label_11;
| }
0x0004ec0e dmb ish | __asm ("dmb ish");
| do {
0x0004ec12 ldrex r1, [r3] | __asm ("ldrex r1, [r3]");
0x0004ec16 adds r1, 1 | r1++;
0x0004ec18 strex r2, r1, [r3] | __asm ("strex r2, r1, [r3]");
0x0004ec1c cmp r2, 0 |
0x0004ec1e bne 0x4ec12 |
| } while (r2 != 0);
0x0004ec20 dmb ish | __asm ("dmb ish");
0x0004ec24 b 0x4eb70 | goto label_0;
| label_8:
0x0004ec26 ldr.w r1, [sb, 0x14] | r1 = *((sb + 0x14));
0x0004ec2a str r3, [sp, 0xc] | var_ch = r3;
| if (r1 == 0) {
0x0004ec2c cbnz r1, 0x4ec3c |
| label_9:
0x0004ec2e movs r2, 0 | r2 = 0;
0x0004ec30 str r2, [sp, 0xc] | var_ch = r2;
| label_3:
0x0004ec32 ldr r3, [pc, 0x54] |
0x0004ec34 ldr.w r3, [r8, r3] | r3 = *((r8 + r3));
0x0004ec38 ldr r3, [r3] | r3 = *(0x4ec8a);
0x0004ec3a b 0x4ebec | goto label_1;
| }
0x0004ec3c ldr.w r3, [sb] | r3 = *(sb);
0x0004ec40 subs r1, r3, r1 | r1 = r3 - r1;
0x0004ec42 add r1, sb | r1 += sb;
0x0004ec44 b 0x4ebc8 | goto label_2;
| label_10:
0x0004ec46 add r2, sp, 0xc | r2 += var_ch;
0x0004ec48 mov r0, sb | r0 = sb;
0x0004ec4a blx 0x210b8 | fcn_000210b8 ();
0x0004ec4e ldr r2, [sp, 0xc] | r2 = var_ch;
0x0004ec50 mov r3, r0 | r3 = r0;
0x0004ec52 cmp r0, 0 |
| if (r0 != 0) {
0x0004ec54 bne 0x4ebec | goto label_1;
| }
0x0004ec56 b 0x4ec32 | goto label_3;
| label_11:
0x0004ec58 ldr r3, [pc, 0x30] |
0x0004ec5a movs r2, 0x4a | r2 = 0x4a;
0x0004ec5c ldr r4, [pc, 0x30] |
0x0004ec5e mov r0, r5 | r0 = r5;
0x0004ec60 ldr r1, [pc, 0x30] |
0x0004ec62 add r3, pc | r3 = 0x9d8f2;
0x0004ec64 add r4, pc | r4 = 0x9d8f8;
0x0004ec66 adds r3, 0x10 | r3 += 0x10;
0x0004ec68 add r1, pc | r1 = 0x9d900;
0x0004ec6a str r4, [sp] | *(sp) = r4;
0x0004ec6c blx 0x2368c | fcn_0002368c ();
| label_7:
0x0004ec70 blx 0x21bd4 | fcn_00021bd4 ();
0x0004ec74 cmp r1, 0x18 |
0x0004ec76 movs r5, r0 | r5 = r0;
0x0004ec78 adds r4, r1, r3 | r4 = r1 + r3;
0x0004ec7a movs r0, r0 |
0x0004ec7c cmp r1, 0xc |
0x0004ec7e movs r5, r0 | r5 = r0;
0x0004ec80 cmp r0, 0xb8 |
0x0004ec82 movs r5, r0 | r5 = r0;
0x0004ec84 adds r0, r7, r4 | r0 = r7 + r4;
0x0004ec86 movs r0, r0 |
0x0004ec88 adds r0, r5, r3 | r0 = r5 + r3;
0x0004ec8a movs r0, r0 |
0x0004ec8c ldr r3, [pc, 0x158] | r3 = *(0x4ede8);
0x0004ec8e movs r3, r0 | r3 = r0;
0x0004ec90 ldm r2, {r2, r3, r5, r7} | r2 = *(r2);
| r3 = *((r2 + 4));
| r5 = *((r2 + 8));
| r7 = *((r2 + 12));
0x0004ec92 movs r1, r0 | r1 = r0;
0x0004ec94 ldm r2!, {r3, r4, r5, r6} | r3 = *(r2!);
| r4 = *((r2! + 4));
| r5 = *((r2! + 8));
| r6 = *((r2! + 12));
0x0004ec96 movs r1, r0 | r1 = r0;
0x0004ec98 ldr r3, [pc, 0xe8] |
0x0004ec9a ldr.w ip, [pc, 0xec] | ip = *(0x4ed8a);
0x0004ec9e push.w {r4, r5, r6, r7, r8, lr} |
0x0004eca2 sub sp, 0x18 |
0x0004eca4 add r3, pc | r3 = 0x9da2c;
0x0004eca6 str r1, [sp, 0x14] | var_14h = r1;
0x0004eca8 mov r4, r0 | r4 = r0;
0x0004ecaa mov r5, r2 | r5 = r2;
0x0004ecac ldr.w r6, [r3, ip] | r6 = *(0x9da2c);
0x0004ecb0 ldr r3, [r6] | r3 = *(0x9da2c);
| if (r3 != 0) {
0x0004ecb2 cbz r3, 0x4ecee |
0x0004ecb4 ldr r1, [r0, 0x5c] | r1 = *((r0 + 0x5c));
0x0004ecb6 ldr r0, [pc, 0xd4] |
0x0004ecb8 add r0, pc | r0 = 0x9da4a;
0x0004ecba blx 0x21ea4 | r0 = fcn_00021ea4 ();
0x0004ecbe mov r7, r0 | r7 = r0;
0x0004ecc0 mov r0, r4 | r0 = r4;
0x0004ecc2 blx 0x22434 | fcn_00022434 ();
0x0004ecc6 ldr r1, [pc, 0xc8] |
0x0004ecc8 mov r8, r0 | r8 = r0;
0x0004ecca ldr r0, [pc, 0xc8] |
0x0004eccc ldr r2, [sp, 0x14] | r2 = var_14h;
0x0004ecce add r1, pc | r1 = 0x9da64;
0x0004ecd0 add r0, pc | r0 = 0x9da6a;
0x0004ecd2 blx 0x21984 | fcn_00021984 ();
0x0004ecd6 movs r1, 0 | r1 = 0;
0x0004ecd8 mov r3, r8 | r3 = r8;
0x0004ecda str r1, [sp, 4] | var_4h = r1;
0x0004ecdc mov r2, r7 | r2 = r7;
0x0004ecde ldr r1, [pc, 0xb8] |
0x0004ece0 str r0, [sp] | *(sp) = r0;
0x0004ece2 movs r0, 7 | r0 = 7;
0x0004ece4 add r1, pc | r1 = 0x9da82;
0x0004ece6 blx 0x1f2b0 | fcn_0001f2b0 ();
0x0004ecea blx 0x23348 | g_string_append ();
| }
0x0004ecee mov r2, r5 | r2 = r5;
0x0004ecf0 add r1, sp, 0x14 | r1 += var_14h;
0x0004ecf2 mov r0, r4 | r0 = r4;
0x0004ecf4 blx 0x21900 | r0 = fcn_00021900 ();
| if (r0 != 0) {
0x0004ecf8 cbnz r0, 0x4ed5e | goto label_12;
| }
0x0004ecfa ldr r3, [r5, 8] | r3 = *((r5 + 8));
| if (r3 != 0) {
0x0004ecfc cbz r3, 0x4ed00 |
0x0004ecfe str r0, [r3] | *(r3) = r0;
| }
0x0004ed00 mov r1, r5 | r1 = r5;
0x0004ed02 ldr r0, [sp, 0x14] | r0 = var_14h;
0x0004ed04 movs r2, 1 | r2 = 1;
0x0004ed06 blx 0x1fbb0 | g_ascii_toupper ();
0x0004ed0a ldr r1, [pc, 0x90] |
0x0004ed0c add r1, pc | r1 = 0x9daae;
| do {
| label_4:
0x0004ed0e ldr r3, [r6] | r3 = *(r6);
| if (r3 != 0) {
0x0004ed10 cbz r3, 0x4ed58 |
0x0004ed12 ldr r0, [pc, 0x8c] |
0x0004ed14 add r0, pc | r0 = 0x9daba;
0x0004ed16 blx 0x21ea4 | r0 = fcn_00021ea4 ();
0x0004ed1a mov r5, r0 | r5 = r0;
0x0004ed1c ldr r0, [pc, 0x84] |
0x0004ed1e ldr r1, [r4, 0x5c] | r1 = *((r4 + 0x5c));
0x0004ed20 add r0, pc | r0 = 0x9dac8;
0x0004ed22 blx 0x21ea4 | r0 = fcn_00021ea4 ();
0x0004ed26 mov r6, r0 | r6 = r0;
0x0004ed28 mov r0, r4 | r0 = r4;
0x0004ed2a blx 0x22434 | fcn_00022434 ();
0x0004ed2e ldr r1, [pc, 0x78] |
0x0004ed30 mov r4, r0 | r4 = r0;
0x0004ed32 ldr r0, [pc, 0x78] |
0x0004ed34 ldr r2, [sp, 0x14] | r2 = var_14h;
0x0004ed36 add r1, pc | r1 = 0x9dae4;
0x0004ed38 add r0, pc | r0 = 0x9daea;
0x0004ed3a blx 0x21984 | fcn_00021984 ();
0x0004ed3e movs r1, 0 | r1 = 0;
0x0004ed40 mov r3, r6 | r3 = r6;
0x0004ed42 str r1, [sp, 8] | var_8h = r1;
0x0004ed44 mov r2, r5 | r2 = r5;
0x0004ed46 ldr r1, [pc, 0x68] |
0x0004ed48 strd r4, r0, [sp] | __asm ("strd r4, r0, [sp]");
0x0004ed4c movs r0, 7 | r0 = 7;
0x0004ed4e add r1, pc | r1 = 0x9db04;
0x0004ed50 blx 0x1f2b0 | fcn_0001f2b0 ();
0x0004ed54 blx 0x23348 | g_string_append ();
| }
0x0004ed58 add sp, 0x18 |
0x0004ed5a pop.w {r4, r5, r6, r7, r8, pc} |
| label_12:
0x0004ed5e ldr r0, [r4, 0x14] | r0 = *((r4 + 0x14));
0x0004ed60 ldr r3, [sp, 0x14] | r3 = var_14h;
| if (r0 == 0) {
0x0004ed62 cbz r0, 0x4ed72 | goto label_13;
| }
0x0004ed64 mov r1, r3 | r1 = r3;
0x0004ed66 mov r2, r5 | r2 = r5;
0x0004ed68 bl 0x4e9b0 | fcn_0004e9b0 (r0, r1, r2);
0x0004ed6c ldr r1, [pc, 0x44] |
0x0004ed6e add r1, pc | r1 = 0x9db26;
0x0004ed70 b 0x4ed0e |
| } while (1);
| label_13:
0x0004ed72 mov r1, r5 | r1 = r5;
0x0004ed74 movs r2, 1 | r2 = 1;
0x0004ed76 mov r0, r3 | r0 = r3;
0x0004ed78 blx 0x1fbb0 | g_ascii_toupper ();
0x0004ed7c ldr r1, [pc, 0x38] |
0x0004ed7e add r1, pc | r1 = 0x9db3a;
0x0004ed80 b 0x4ed0e | goto label_4;
| }
[*] Function strcat used 1 times libsyslog-ng-3.31.so.0.0.0