[*] Binary protection state of nf_log_ipv6.ko
No RELRO No Canary found NX disabled REL No RPATH No RUNPATH Symbols
[*] Function popen tear down of nf_log_ipv6.ko
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/modules/5.10.52-axis9/kernel/net/ipv6/netfilter/nf_log_ipv6.ko @ 0x800008c */
| #include <stdint.h>
|
| #define SWAP32(n) ((uint32_t) (((n & 0x000000ff) << 24) | \
| ((n & 0x0000ff00) << 8) | \
| ((n & 0x00ff0000) >> 8) | \
| ((n & 0xff000000) >> 24)))
|
; (fcn) sym.dump_ipv6_packet () | void dump_ipv6_packet (int32_t arg_78h, int32_t arg_7ch, int32_t arg1, int32_t arg2) {
| int32_t var_0h;
| int32_t var_4h;
| int32_t var_ch;
| int32_t var_10h;
| int32_t var_14h;
| int32_t var_1ah;
| int32_t var_1ch;
| int32_t var_28h;
| r0 = arg1;
| r1 = arg2;
0x0800008c push {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x08000090 mov r4, r3 | r4 = r3;
0x08000094 mov r8, r2 | r8 = r2;
0x08000098 ldrb r3, [r2] | r3 = *(r2);
0x0800009c sub sp, sp, 0x54 |
0x080000a0 ldr r5, [r4, 0xa8] | r5 = *((r4 + 0xa8));
0x080000a4 mov fp, r0 |
0x080000a8 cmp r3, 0 |
0x080000ac ldr r3, [r4, 0x54] | r3 = *((r4 + 0x54));
0x080000b0 ldr r6, [sp, 0x78] | r6 = *(arg_78h);
0x080000b4 mov r7, r1 | r7 = r1;
| if (r3 == 0) {
0x080000b8 movne sb, 0xf | sb = 0xf;
| }
| if (r3 != 0) {
0x080000bc ldrbeq sb, [r2, 5] | sb = *((r2 + 5));
| }
0x080000c0 ldr r2, [r4, 0x58] | r2 = *((r4 + 0x58));
0x080000c4 sub r3, r3, r2 | r3 -= r2;
0x080000c8 sub r3, r3, r6 | r3 -= r6;
0x080000cc cmp r3, 0x27 |
| if (r3 > 0x27) {
0x080000d0 bgt 0x8000204 | goto label_16;
| }
0x080000d4 cmp r4, 0 |
| if (r4 == 0) {
0x080000d8 beq 0x800020c | goto label_0;
| }
0x080000dc mov r1, r6 | r1 = r6;
0x080000e0 add r2, sp, 0x28 | r2 += var_28h;
0x080000e4 mov r0, r4 | r0 = r4;
0x080000e8 mov r3, 0x28 | r3 = 0x28;
0x080000ec stmdaeq r0, {r0, r4, r6, r7, sb, sp} | __asm ("stmdaeq r0, {r0, r4, r6, r7, sb, sp}");
0x080000f0 cmp r0, 0 |
| if (r0 < 0) {
0x080000f4 blt 0x800020c | goto label_0;
| }
0x080000f8 add r5, sp, 0x28 | r5 += var_28h;
| do {
0x080000fc add r3, r5, 0x18 | r3 = r5 + 0x18;
0x08000100 add r2, r5, 8 | r2 = r5 + 8;
0x08000104 mov r0, r7 | r0 = r7;
0x08000108 stmdaeq r0, {r7, r8, sb, fp} | __asm ("stmdaeq r0, {r7, r8, sb, fp}");
0x0800010c stmdaeq r0, {r7, r8, sb, fp} | __asm ("stmdaeq r0, {r7, r8, sb, fp}");
0x08000110 add r6, r6, 0x28 | r6 += 0x28;
0x08000114 stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp} | __asm ("stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp}");
0x08000118 ldr r3, [r5] | r3 = *(r5);
0x0800011c ldrh r2, [r5, 4] | r2 = *((r5 + 4));
0x08000120 mov r0, r7 | r0 = r7;
0x08000124 rev r3, r3 | r3 = SWAP32 (r3);
0x08000128 rev16 r2, r2 | __asm ("rev16 r2, r2");
0x0800012c ubfx r1, r3, 0, 0x14 | r1 = (r3 >> 0) & ((1 << 0x14) - 1);
0x08000130 str r1, [sp, 4] | var_4h = r1;
0x08000134 uxth r2, r2 | r2 = (int16_t) r2;
0x08000138 ubfx r3, r3, 0x14, 8 | r3 = (r3 >> 0x14) & ((1 << 8) - 1);
0x0800013c ldrb ip, [r5, 7] | ip = *((r5 + 7));
0x08000140 add r2, r2, 0x28 | r2 += 0x28;
0x08000144 stmdaeq r0, {r2, r4, r7, r8, sb, fp} | __asm ("stmdaeq r0, {r2, r4, r7, r8, sb, fp}");
0x08000148 stmdaeq r0, {r2, r4, r7, r8, sb, fp} | __asm ("stmdaeq r0, {r2, r4, r7, r8, sb, fp}");
0x0800014c str ip, [sp] | *(sp) = ip;
0x08000150 stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp} | __asm ("stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp}");
0x08000154 ldrb r5, [r5, 6] | r5 = *((r5 + 6));
0x08000158 cmp r5, 0x3b |
| if (r5 == 0x3b) {
0x0800015c beq 0x8000324 | goto label_17;
| }
0x08000160 movw sl, 0x183 |
0x08000164 movt sl, 2 | sl = 0x20183;
0x08000168 str r8, [sp, 0x14] | var_14h = r8;
0x0800016c mov r8, sl | r8 = sl;
0x08000170 mov r3, 0 | r3 = 0;
0x08000174 str r3, [sp, 0x10] | var_10h = r3;
| label_2:
0x08000178 cmp r5, 0 |
| if (r5 == 0) {
0x0800017c beq 0x8000224 | goto label_18;
| }
0x08000180 sub r3, r5, 0x2b | r3 = r5 - 0x2b;
0x08000184 uxtb r3, r3 | r3 = (int8_t) r3;
0x08000188 cmp r3, 0x11 |
| if (r3 > 0x11) {
0x0800018c bhi 0x80004a8 | goto label_19;
| }
0x08000190 lsr r3, r8, r3 | r3 = r8 >> r3;
0x08000194 tst r3, 1 |
| if ((r3 & 1) != 0) {
0x08000198 bne 0x8000224 | goto label_18;
| }
0x0800019c cmp r5, 0x3a |
0x080001a0 ldr r8, [sp, 0x14] | r8 = var_14h;
| if (r5 == 0x3a) {
0x080001a4 movne r2, r5 | r2 = r5;
| }
| if (r5 == 0x3a) {
0x080001a8 beq 0x80006b0 | goto label_20;
| }
| label_3:
0x080001ac stmdaeq r0, {r3, r4, r5, r7, sl, fp} | __asm ("stmdaeq r0, {r3, r4, r5, r7, sl, fp}");
0x080001b0 stmdaeq r0, {r3, r4, r5, r7, sl, fp} | __asm ("stmdaeq r0, {r3, r4, r5, r7, sl, fp}");
0x080001b4 mov r0, r7 | r0 = r7;
0x080001b8 and sb, sb, 8 | sb &= 8;
0x080001bc stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp} | __asm ("stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp}");
| label_7:
0x080001c0 ldr r3, [sp, 0x7c] | r3 = *(arg_7ch);
0x080001c4 cmp sb, 0 |
| if (sb == 0) {
0x080001c8 beq 0x800062c | goto label_21;
| }
0x080001cc cmp r3, 0 |
| if (r3 == 0) {
0x080001d0 beq 0x800021c | goto label_1;
| }
| label_15:
0x080001d4 ldr r2, [r4, 0xc] | r2 = *((r4 + 0xc));
0x080001d8 mov r1, r7 | r1 = r7;
0x080001dc mov r0, fp | r0 = fp;
0x080001e0 stmdaeq r0, {r0, r3, r4, r6, r7, sb, sp} | __asm ("stmdaeq r0, {r0, r3, r4, r6, r7, sb, sp}");
| label_9:
0x080001e4 ldr r2, [r4, 0x88] | r2 = *((r4 + 0x88));
0x080001e8 cmp r2, 0 |
| if (r2 == 0) {
0x080001ec beq 0x800021c | goto label_1;
| }
0x080001f0 mov r0, r7 | r0 = r7;
0x080001f4 stmdaeq r0, {r2, r6, r7, sl, fp} | __asm ("stmdaeq r0, {r2, r6, r7, sl, fp}");
0x080001f8 stmdaeq r0, {r2, r6, r7, sl, fp} | __asm ("stmdaeq r0, {r2, r6, r7, sl, fp}");
0x080001fc stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp} | __asm ("stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp}");
0x08000200 b 0x800021c | goto label_1;
| label_16:
0x08000204 adds r5, r5, r6 | r5 += r6;
0x08000208 bne 0x80000fc |
| } while (r5 != r5);
| do {
| label_0:
0x0800020c stmdaeq r0, {r2, r4, r5, r6, r8, sb, fp} | __asm ("stmdaeq r0, {r2, r4, r5, r6, r8, sb, fp}");
0x08000210 stmdaeq r0, {r2, r4, r5, r6, r8, sb, fp} | __asm ("stmdaeq r0, {r2, r4, r5, r6, r8, sb, fp}");
0x08000214 mov r0, r7 | r0 = r7;
0x08000218 stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp} | __asm ("stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp}");
| label_1:
0x0800021c add sp, sp, 0x54 |
0x08000220 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_18:
0x08000224 ldr r3, [r4, 0x54] | r3 = *((r4 + 0x54));
0x08000228 ldr r2, [r4, 0x58] | r2 = *((r4 + 0x58));
0x0800022c ldr sl, [r4, 0xa8] | sl = *((r4 + 0xa8));
0x08000230 sub r3, r3, r2 | r3 -= r2;
0x08000234 sub r3, r3, r6 | r3 -= r6;
0x08000238 cmp r3, 1 |
| if (r3 > 1) {
0x0800023c bgt 0x8000418 | goto label_22;
| }
0x08000240 cmp r4, 0 |
0x08000244 beq 0x800020c |
| } while (r4 == 0);
0x08000248 add r2, sp, 0x1a | r2 += var_1ah;
0x0800024c mov r1, r6 | r1 = r6;
0x08000250 mov r0, r4 | r0 = r4;
0x08000254 mov r3, 2 | r3 = 2;
0x08000258 stmdaeq r0, {r0, r4, r6, r7, sb, sp} | __asm ("stmdaeq r0, {r0, r4, r6, r7, sb, sp}");
0x0800025c cmp r0, 0 |
| if (r0 < 0) {
0x08000260 blt 0x800020c | goto label_0;
| }
0x08000264 ands r3, sb, 4 | r3 = sb & 4;
0x08000268 add sl, sp, 0x1a | sl += var_1ah;
0x0800026c str r3, [sp, 0xc] | var_ch = r3;
| if (r3 != sb) {
0x08000270 bne 0x800042c | goto label_23;
| }
| label_5:
0x08000274 cmp r5, 0 |
| if (r5 != 0) {
0x08000278 beq 0x80002fc |
0x0800027c sub r3, r5, 0x2b | r3 = r5 - 0x2b;
0x08000280 uxtb r2, r3 | r2 = (int8_t) r3;
0x08000284 cmp r2, 0x11 |
| if (r2 <= 0x11) {
0x08000288 bhi 0x80002e0 |
0x0800028c cmp r3, 0x11 |
| if (r3 > 0x11) {
| /* switch table (18 cases) at 0x8000298 */
0x08000290 ldrls pc, [pc, r3, lsl 2] | offset_0 = r3 << 2;
| pc = *((pc + offset_0));
| }
0x08000294 b 0x80002e0 |
| }
| label_6:
0x080002e0 mov r2, r5 | r2 = r5;
0x080002e4 mov r0, r7 | r0 = r7;
0x080002e8 stmdaeq r0, {r2, r4, r5, sl, fp} | __asm ("stmdaeq r0, {r2, r4, r5, sl, fp}");
0x080002ec stmdaeq r0, {r2, r4, r5, sl, fp} | __asm ("stmdaeq r0, {r2, r4, r5, sl, fp}");
0x080002f0 stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp} | __asm ("stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp}");
0x080002f4 add sp, sp, 0x54 |
0x080002f8 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| }
0x080002fc ldr r3, [sp, 0x10] | r3 = var_10h;
0x08000300 cmp r3, 0 |
| if (r3 != 0) {
0x08000304 bne 0x800021c | goto label_1;
| }
0x08000308 ldrb r5, [sl, 1] | r5 = *((sl + 1));
0x0800030c add r5, r5, 1 | r5++;
0x08000310 lsl r5, r5, 3 | r5 <<= 3;
| label_4:
0x08000314 add r6, r6, r5 | r6 += r5;
0x08000318 ldrb r5, [sl] | r5 = *(sl);
0x0800031c cmp r5, 0x3b |
| if (r5 != 0x3b) {
0x08000320 bne 0x8000178 | goto label_2;
| }
| label_17:
0x08000324 mov r2, 0x3b | r2 = 0x3b;
0x08000328 b 0x80001ac | goto label_3;
| label_8:
0x080003f4 mov r0, r7 | r0 = r7;
0x080003f8 stmdaeq r0, {r3, r6, sl, fp} | __asm ("stmdaeq r0, {r3, r6, sl, fp}");
0x080003fc stmdaeq r0, {r3, r6, sl, fp} | __asm ("stmdaeq r0, {r3, r6, sl, fp}");
0x08000400 stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp} | __asm ("stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp}");
0x08000404 b 0x8000314 | goto label_4;
| label_22:
0x08000418 adds sl, sl, r6 | sl += r6;
| if (sl == sl) {
0x0800041c beq 0x800020c | goto label_0;
| }
0x08000420 ands r3, sb, 4 | r3 = sb & 4;
0x08000424 str r3, [sp, 0xc] | var_ch = r3;
| if (r3 == sb) {
0x08000428 beq 0x8000274 | goto label_5;
| }
| label_23:
0x0800042c mov r0, r7 | r0 = r7;
0x08000430 stmdaeq r0, {r2, r3, r4, r5, r7, r8, sb, fp} | __asm ("stmdaeq r0, {r2, r3, r4, r5, r7, r8, sb, fp}");
0x08000434 stmdaeq r0, {r2, r3, r4, r5, r7, r8, sb, fp} | __asm ("stmdaeq r0, {r2, r3, r4, r5, r7, r8, sb, fp}");
0x08000438 stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp} | __asm ("stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp}");
0x0800043c cmp r5, 0 |
| if (r5 == 0) {
0x08000440 beq 0x80004e4 | goto label_24;
| }
0x08000444 sub r3, r5, 0x2b | r3 = r5 - 0x2b;
0x08000448 uxtb r2, r3 | r2 = (int8_t) r3;
0x0800044c cmp r2, 0x11 |
| if (r2 > 0x11) {
0x08000450 bhi 0x80002e0 | goto label_6;
| }
0x08000454 cmp r3, 0x11 |
| if (r3 > 0x11) {
| /* switch table (18 cases) at 0x8000460 */
0x08000458 ldrls pc, [pc, r3, lsl 2] | offset_1 = r3 << 2;
| pc = *((pc + offset_1));
| }
0x0800045c b 0x80002e0 | goto label_6;
| label_19:
0x080004a8 cmp r5, 0x3a |
0x080004ac mov r2, r5 | r2 = r5;
| if (r5 > 0x3a) {
0x080004b0 bhi 0x8000698 | goto label_25;
| }
0x080004b4 cmp r5, 6 |
| if (r5 != 6) {
0x080004b8 bne 0x8000658 | goto label_26;
| }
0x080004bc ldr r3, [sp, 0x10] | r3 = var_10h;
0x080004c0 mov r1, r4 | r1 = r4;
0x080004c4 mov r0, r7 | r0 = r7;
0x080004c8 str r6, [sp] | *(sp) = r6;
0x080004cc str sb, [sp, 4] | var_4h = sb;
0x080004d0 stmdaeq r0, {r0, r2, r3, r4, r6, r7, sb, sp} | __asm ("stmdaeq r0, {r0, r2, r3, r4, r6, r7, sb, sp}");
0x080004d4 cmp r0, 0 |
| if (r0 != 0) {
0x080004d8 bne 0x800021c | goto label_1;
| }
| label_10:
0x080004dc and sb, sb, 8 | sb &= 8;
0x080004e0 b 0x80001c0 | goto label_7;
| label_24:
0x080004e4 ldr r3, [sp, 0x10] | r3 = var_10h;
0x080004e8 cmp r3, 0 |
| if (r3 != 0) {
0x080004ec bne 0x8000684 | goto label_27;
| }
0x080004f0 ldrb r5, [sl, 1] | r5 = *((sl + 1));
0x080004f4 add r5, r5, 1 | r5++;
0x080004f8 lsl r5, r5, 3 | r5 <<= 3;
0x080004fc b 0x80003f4 | goto label_8;
| label_21:
0x0800062c cmp r3, 0 |
| if (r3 == 0) {
0x08000630 beq 0x800021c | goto label_1;
| }
0x08000634 b 0x80001e4 | goto label_9;
| label_26:
0x08000658 cmp r5, 0x11 |
| if (r5 != 0x11) {
0x0800065c bne 0x80001ac | goto label_3;
| }
| label_11:
0x08000660 ldr r3, [sp, 0x10] | r3 = var_10h;
0x08000664 mov r2, r5 | r2 = r5;
0x08000668 mov r1, r4 | r1 = r4;
0x0800066c mov r0, r7 | r0 = r7;
0x08000670 str r6, [sp] | *(sp) = r6;
0x08000674 stmdaeq r0, {r0, r5, r6, r7, sb, sp} | __asm ("stmdaeq r0, {r0, r5, r6, r7, sb, sp}");
0x08000678 cmp r0, 0 |
| if (r0 == 0) {
0x0800067c beq 0x80004dc | goto label_10;
| }
0x08000680 b 0x800021c | goto label_1;
| label_27:
0x08000684 mov r0, r7 | r0 = r7;
0x08000688 stmdaeq r0, {r2, r4, r5, r6, r7, r8, sb, fp} | __asm ("stmdaeq r0, {r2, r4, r5, r6, r7, r8, sb, fp}");
0x0800068c stmdaeq r0, {r2, r4, r5, r6, r7, r8, sb, fp} | __asm ("stmdaeq r0, {r2, r4, r5, r6, r7, r8, sb, fp}");
0x08000690 stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp} | __asm ("stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp}");
0x08000694 b 0x800021c | goto label_1;
| label_25:
0x08000698 cmp r5, 0x88 |
| if (r5 == 0x88) {
0x0800069c beq 0x8000660 | goto label_11;
| }
0x080006a0 b 0x80001ac | goto label_3;
| label_20:
0x080006b0 mov r0, r7 | r0 = r7;
0x080006b4 stmdaeq r0, {r2, r3, r6, sl, fp} | __asm ("stmdaeq r0, {r2, r3, r6, sl, fp}");
0x080006b8 stmdaeq r0, {r2, r3, r6, sl, fp} | __asm ("stmdaeq r0, {r2, r3, r6, sl, fp}");
0x080006bc stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp} | __asm ("stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp}");
0x080006c0 ldr r3, [sp, 0x10] | r3 = var_10h;
0x080006c4 cmp r3, 0 |
| if (r3 != 0) {
0x080006c8 bne 0x80004dc | goto label_10;
| }
0x080006cc ldrd r2, r3, [r4, 0x54] | __asm ("ldrd r2, r3, [r4, 0x54]");
0x080006d0 ldr r5, [r4, 0xa8] | r5 = *((r4 + 0xa8));
0x080006d4 sub r3, r2, r3 | r3 = r2 - r3;
0x080006d8 sub r3, r3, r6 | r3 -= r6;
0x080006dc cmp r3, 7 |
| if (r3 > 7) {
0x080006e0 bgt 0x80007c0 | goto label_28;
| }
0x080006e4 cmp r4, 0 |
| if (r4 == 0) {
0x080006e8 beq 0x80007c8 | goto label_29;
| }
0x080006ec add r2, sp, 0x1c | r2 += var_1ch;
0x080006f0 mov r1, r6 | r1 = r6;
0x080006f4 mov r0, r4 | r0 = r4;
0x080006f8 mov r3, 8 | r3 = 8;
0x080006fc stmdaeq r0, {r0, r4, r6, r7, sb, sp} | __asm ("stmdaeq r0, {r0, r4, r6, r7, sb, sp}");
0x08000700 cmp r0, 0 |
| if (r0 >= 0) {
0x08000704 ldrlt r2, [r4, 0x54] | r2 = *((r4 + 0x54));
| }
| if (r0 < 0) {
0x08000708 blt 0x80007c8 | goto label_29;
| }
0x0800070c add r5, sp, 0x1c | r5 += var_1ch;
| label_12:
0x08000710 ldrb r3, [r5, 1] | r3 = *((r5 + 1));
0x08000714 mov r0, r7 | r0 = r7;
0x08000718 ldrb r2, [r5] | r2 = *(r5);
0x0800071c stmdaeq r0, {r2, r4, r5, r6, sl, fp} | __asm ("stmdaeq r0, {r2, r4, r5, r6, sl, fp}");
0x08000720 stmdaeq r0, {r2, r4, r5, r6, sl, fp} | __asm ("stmdaeq r0, {r2, r4, r5, r6, sl, fp}");
0x08000724 stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp} | __asm ("stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp}");
0x08000728 ldrb r3, [r5] | r3 = *(r5);
0x0800072c cmp r3, 4 |
| if (r3 == 4) {
0x08000730 beq 0x80007e0 | goto label_30;
| }
| if (r3 > 4) {
0x08000734 bhi 0x8000784 | goto label_31;
| }
0x08000738 sub r3, r3, 1 | r3--;
0x0800073c cmp r3, 2 |
| if (r3 > 2) {
0x08000740 bhi 0x80004dc | goto label_10;
| }
| label_13:
0x08000744 ldr r3, [sp, 0x7c] | r3 = *(arg_7ch);
0x08000748 cmp r3, 0 |
| if (r3 != 0) {
0x0800074c bne 0x80007fc | goto label_32;
| }
0x08000750 ldrb r3, [r5] | r3 = *(r5);
0x08000754 cmp r3, 2 |
| if (r3 != 2) {
0x08000758 bne 0x800021c | goto label_1;
| }
0x0800075c and sb, sb, 8 | sb &= 8;
| label_14:
0x08000760 ldr r2, [r5, 4] | r2 = *((r5 + 4));
0x08000764 mov r0, r7 | r0 = r7;
0x08000768 stmdaeq r0, {r4, r5, r7, sl, fp} | __asm ("stmdaeq r0, {r4, r5, r7, sl, fp}");
0x0800076c stmdaeq r0, {r4, r5, r7, sl, fp} | __asm ("stmdaeq r0, {r4, r5, r7, sl, fp}");
0x08000770 rev r2, r2 | r2 = SWAP32 (r2);
0x08000774 stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp} | __asm ("stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp}");
0x08000778 b 0x80001c0 | goto label_7;
| label_31:
0x08000784 eor r3, r3, 0x80 | r3 ^= 0x80;
0x08000788 and sb, sb, 8 | sb &= 8;
0x0800078c cmp r3, 1 |
| if (r3 > 1) {
0x08000790 bhi 0x80001c0 | goto label_7;
| }
0x08000794 ldrh r2, [r5, 4] | r2 = *((r5 + 4));
0x08000798 mov r0, r7 | r0 = r7;
0x0800079c ldrh r3, [r5, 6] | r3 = *((r5 + 6));
0x080007a0 stmdaeq r0, {r3, r7, sl, fp} | __asm ("stmdaeq r0, {r3, r7, sl, fp}");
0x080007a4 stmdaeq r0, {r3, r7, sl, fp} | __asm ("stmdaeq r0, {r3, r7, sl, fp}");
0x080007a8 rev16 r2, r2 | __asm ("rev16 r2, r2");
0x080007ac rev16 r3, r3 | __asm ("rev16 r3, r3");
0x080007b0 uxth r2, r2 | r2 = (int16_t) r2;
0x080007b4 uxth r3, r3 | r3 = (int16_t) r3;
0x080007b8 stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp} | __asm ("stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp}");
0x080007bc b 0x80001c0 | goto label_7;
| label_28:
0x080007c0 adds r5, r5, r6 | r5 += r6;
| if (r5 != r5) {
0x080007c4 bne 0x8000710 | goto label_12;
| }
| label_29:
0x080007c8 sub r2, r2, r6 | r2 -= r6;
0x080007cc mov r0, r7 | r0 = r7;
0x080007d0 stmdaeq r0, {r2, r3, r4, r6, sl, fp} | __asm ("stmdaeq r0, {r2, r3, r4, r6, sl, fp}");
0x080007d4 stmdaeq r0, {r2, r3, r4, r6, sl, fp} | __asm ("stmdaeq r0, {r2, r3, r4, r6, sl, fp}");
0x080007d8 stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp} | __asm ("stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp}");
0x080007dc b 0x800021c | goto label_1;
| label_30:
0x080007e0 ldr r2, [r5, 4] | r2 = *((r5 + 4));
0x080007e4 mov r0, r7 | r0 = r7;
0x080007e8 stmdaeq r0, {r3, r4, r7, sl, fp} | __asm ("stmdaeq r0, {r3, r4, r7, sl, fp}");
0x080007ec stmdaeq r0, {r3, r4, r7, sl, fp} | __asm ("stmdaeq r0, {r3, r4, r7, sl, fp}");
0x080007f0 rev r2, r2 | r2 = SWAP32 (r2);
0x080007f4 stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp} | __asm ("stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp}");
0x080007f8 b 0x8000744 | goto label_13;
| label_32:
0x080007fc mov r0, r7 | r0 = r7;
0x08000800 stmdaeq r0, {r3, r5, r7, sl, fp} | __asm ("stmdaeq r0, {r3, r5, r7, sl, fp}");
0x08000804 stmdaeq r0, {r3, r5, r7, sl, fp} | __asm ("stmdaeq r0, {r3, r5, r7, sl, fp}");
0x08000808 add r6, r6, 8 | r6 += 8;
0x0800080c stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp} | __asm ("stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp}");
0x08000810 mov r3, r4 | r3 = r4;
0x08000814 mov ip, 0 |
0x08000818 mov r2, r8 | r2 = r8;
0x0800081c mov r1, r7 | r1 = r7;
0x08000820 mov r0, fp | r0 = fp;
0x08000824 str ip, [sp, 4] | var_4h = ip;
0x08000828 and sb, sb, 8 | sb &= 8;
0x0800082c str r6, [sp] | *(sp) = r6;
0x08000830 bl 0x800008c | dump_ipv6_packet ();
0x08000834 mov r0, r7 | r0 = r7;
0x08000838 stmdaeq r0, {r2, r3, r5, r7, sl, fp} | __asm ("stmdaeq r0, {r2, r3, r5, r7, sl, fp}");
0x0800083c stmdaeq r0, {r2, r3, r5, r7, sl, fp} | __asm ("stmdaeq r0, {r2, r3, r5, r7, sl, fp}");
0x08000840 stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp} | __asm ("stmdaeq r0, {r0, r2, r4, r6, r7, sb, sp}");
0x08000844 ldrb r3, [r5] | r3 = *(r5);
0x08000848 cmp r3, 2 |
| if (r3 == 2) {
0x0800084c beq 0x8000760 | goto label_14;
| }
0x08000850 cmp sb, 0 |
| if (sb == 0) {
0x08000854 beq 0x80001e4 | goto label_9;
| }
0x08000858 b 0x80001d4 | goto label_15;
| }
[*] Function popen used 1 times nf_log_ipv6.ko