[*] Binary protection state of nf_log_ipv6.ko
No RELRO No Canary found NX disabled REL No RPATH No RUNPATH Symbols
[*] Function mmap tear down of nf_log_ipv6.ko
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/modules/5.10.52-axis8/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_80h, int32_t arg_84h, 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_18h;
| int32_t var_1ch;
| int32_t var_22h;
| int32_t var_24h;
| int32_t var_30h;
| r0 = arg1;
| r1 = arg2;
0x0800008c push {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x08000090 mov r4, r3 | r4 = r3;
0x08000094 mov r8, r1 | r8 = r1;
0x08000098 ldrb r3, [r2] | r3 = *(r2);
0x0800009c sub sp, sp, 0x5c |
0x080000a0 ldr r5, [r4, 0xa8] | r5 = *((r4 + 0xa8));
0x080000a4 cmp r3, 0 |
0x080000a8 str r2, [sp, 0x1c] | var_1ch = r2;
| if (r3 == 0) {
0x080000ac movne r3, 0xf | r3 = 0xf;
| }
0x080000b0 ldr r6, [sp, 0x80] | r6 = *(arg_80h);
| if (r3 != 0) {
0x080000b4 ldrbeq r3, [r2, 5] | r3 = *((r2 + 5));
| }
0x080000b8 str r3, [sp, 0xc] | var_ch = r3;
0x080000bc ldr r2, [r4, 0x58] | r2 = *((r4 + 0x58));
0x080000c0 ldr r3, [r4, 0x54] | r3 = *((r4 + 0x54));
0x080000c4 str r0, [sp, 0x18] | var_18h = r0;
0x080000c8 sub r3, r3, r2 | r3 -= r2;
0x080000cc sub r3, r3, r6 | r3 -= r6;
0x080000d0 cmp r3, 0x27 |
| if (r3 > 0x27) {
0x080000d4 bgt 0x8000208 | goto label_15;
| }
0x080000d8 cmp r4, 0 |
| if (r4 == 0) {
0x080000dc beq 0x8000210 | goto label_0;
| }
0x080000e0 mov r1, r6 | r1 = r6;
0x080000e4 add r2, sp, 0x30 | r2 += var_30h;
0x080000e8 mov r0, r4 | r0 = r4;
0x080000ec mov r3, 0x28 | r3 = 0x28;
0x080000f0 stmdaeq r0, {r1, r4, r5, r6, sb, sp} | __asm ("stmdaeq r0, {r1, r4, r5, r6, sb, sp}");
0x080000f4 cmp r0, 0 |
| if (r0 < 0) {
0x080000f8 blt 0x8000210 | goto label_0;
| }
0x080000fc add r5, sp, 0x30 | r5 += var_30h;
| do {
0x08000100 add r3, r5, 0x18 | r3 = r5 + 0x18;
0x08000104 add r2, r5, 8 | r2 = r5 + 8;
0x08000108 mov r0, r8 | r0 = r8;
0x0800010c stmdaeq r0, {r4, r6, r8, sb, fp} | __asm ("stmdaeq r0, {r4, r6, r8, sb, fp}");
0x08000110 stmdaeq r0, {r4, r6, r8, sb, fp} | __asm ("stmdaeq r0, {r4, r6, r8, sb, fp}");
0x08000114 add r6, r6, 0x28 | r6 += 0x28;
0x08000118 stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp} | __asm ("stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp}");
0x0800011c ldr r3, [r5] | r3 = *(r5);
0x08000120 ldrh r2, [r5, 4] | r2 = *((r5 + 4));
0x08000124 mov r0, r8 | r0 = r8;
0x08000128 rev r3, r3 | r3 = SWAP32 (r3);
0x0800012c rev16 r2, r2 | __asm ("rev16 r2, r2");
0x08000130 ubfx r1, r3, 0, 0x14 | r1 = (r3 >> 0) & ((1 << 0x14) - 1);
0x08000134 str r1, [sp, 4] | var_4h = r1;
0x08000138 uxth r2, r2 | r2 = (int16_t) r2;
0x0800013c ubfx r3, r3, 0x14, 8 | r3 = (r3 >> 0x14) & ((1 << 8) - 1);
0x08000140 ldrb ip, [r5, 7] | ip = *((r5 + 7));
0x08000144 add r2, r2, 0x28 | r2 += 0x28;
0x08000148 stmdaeq r0, {r2, r5, r6, r8, sb, fp} | __asm ("stmdaeq r0, {r2, r5, r6, r8, sb, fp}");
0x0800014c stmdaeq r0, {r2, r5, r6, r8, sb, fp} | __asm ("stmdaeq r0, {r2, r5, r6, r8, sb, fp}");
0x08000150 str ip, [sp] | *(sp) = ip;
0x08000154 stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp} | __asm ("stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp}");
0x08000158 ldrb r5, [r5, 6] | r5 = *((r5 + 6));
0x0800015c cmp r5, 0x3b |
| if (r5 == 0x3b) {
0x08000160 beq 0x8000330 | goto label_16;
| }
0x08000164 movw sb, 0x183 |
0x08000168 movt sb, 2 | sb = 0x20183;
0x0800016c stmdaeq r0, {r2, r4, r7, r8, sb, fp} | __asm ("stmdaeq r0, {r2, r4, r7, r8, sb, fp}");
0x08000170 stmdaeq r0, {r2, r4, r7, r8, sb, fp} | __asm ("stmdaeq r0, {r2, r4, r7, r8, sb, fp}");
0x08000174 stmdaeq r0, {r3, r5, r7, r8, sb, fp} | __asm ("stmdaeq r0, {r3, r5, r7, r8, sb, fp}");
0x08000178 stmdaeq r0, {r3, r5, r7, r8, sb, fp} | __asm ("stmdaeq r0, {r3, r5, r7, r8, sb, fp}");
0x0800017c str r3, [sp, 0x14] | var_14h = r3;
0x08000180 mov r3, 0 | r3 = 0;
0x08000184 str r3, [sp, 0x10] | var_10h = r3;
| label_1:
0x08000188 cmp r5, 0 |
| if (r5 == 0) {
0x0800018c beq 0x8000228 | goto label_17;
| }
0x08000190 sub r3, r5, 0x2b | r3 = r5 - 0x2b;
0x08000194 uxtb r3, r3 | r3 = (int8_t) r3;
0x08000198 cmp r3, 0x11 |
| if (r3 > 0x11) {
0x0800019c bhi 0x80005fc | goto label_18;
| }
0x080001a0 lsr r3, sb, r3 | r3 = sb >> r3;
0x080001a4 tst r3, 1 |
| if ((r3 & 1) != 0) {
0x080001a8 bne 0x8000228 | goto label_17;
| }
| label_9:
0x080001ac cmp r5, 0x3a |
| if (r5 != 0x3a) {
0x080001b0 bne 0x80005b4 | goto label_19;
| }
0x080001b4 mov r0, r8 | r0 = r8;
0x080001b8 stmdaeq r0, {r2, r3, r4, sl, fp} | __asm ("stmdaeq r0, {r2, r3, r4, sl, fp}");
0x080001bc stmdaeq r0, {r2, r3, r4, sl, fp} | __asm ("stmdaeq r0, {r2, r3, r4, sl, fp}");
0x080001c0 stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp} | __asm ("stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp}");
0x080001c4 ldr r3, [sp, 0x10] | r3 = var_10h;
0x080001c8 cmp r3, 0 |
| if (r3 == 0) {
0x080001cc beq 0x800068c | goto label_20;
| }
| label_2:
0x080001d0 ldr r3, [sp, 0xc] | r3 = var_ch;
0x080001d4 tst r3, 8 |
0x080001d8 ldr r3, [sp, 0x84] | r3 = *(arg_84h);
| if ((r3 & 8) != 0) {
0x080001dc bne 0x8000650 | goto label_21;
| }
0x080001e0 cmp r3, 0 |
| if (r3 == 0) {
0x080001e4 beq 0x8000220 | goto label_7;
| }
| label_10:
0x080001e8 ldr r2, [r4, 0x88] | r2 = *((r4 + 0x88));
0x080001ec cmp r2, 0 |
| if (r2 == 0) {
0x080001f0 beq 0x8000220 | goto label_7;
| }
0x080001f4 mov r0, r8 | r0 = r8;
0x080001f8 stmdaeq r0, {r2, r4, r7, sl, fp} | __asm ("stmdaeq r0, {r2, r4, r7, sl, fp}");
0x080001fc stmdaeq r0, {r2, r4, r7, sl, fp} | __asm ("stmdaeq r0, {r2, r4, r7, sl, fp}");
0x08000200 stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp} | __asm ("stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp}");
0x08000204 b 0x8000220 | goto label_7;
| label_15:
0x08000208 adds r5, r5, r6 | r5 += r6;
0x0800020c bne 0x8000100 |
| } while (r5 != r5);
| do {
| label_0:
0x08000210 stmdaeq r0, {r2, r6, r8, sb, fp} | __asm ("stmdaeq r0, {r2, r6, r8, sb, fp}");
0x08000214 stmdaeq r0, {r2, r6, r8, sb, fp} | __asm ("stmdaeq r0, {r2, r6, r8, sb, fp}");
0x08000218 mov r0, r8 | r0 = r8;
0x0800021c stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp} | __asm ("stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp}");
| label_7:
0x08000220 add sp, sp, 0x5c |
0x08000224 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_17:
0x08000228 ldr r3, [r4, 0x54] | r3 = *((r4 + 0x54));
0x0800022c ldr r2, [r4, 0x58] | r2 = *((r4 + 0x58));
0x08000230 ldr r7, [r4, 0xa8] | r7 = *((r4 + 0xa8));
0x08000234 sub r3, r3, r2 | r3 -= r2;
0x08000238 sub r3, r3, r6 | r3 -= r6;
0x0800023c cmp r3, 1 |
| if (r3 > 1) {
0x08000240 bgt 0x80004a4 | goto label_22;
| }
0x08000244 cmp r4, 0 |
0x08000248 beq 0x8000210 |
| } while (r4 == 0);
0x0800024c mov r1, r6 | r1 = r6;
0x08000250 add r2, sp, 0x22 | r2 += var_22h;
0x08000254 mov r0, r4 | r0 = r4;
0x08000258 mov r3, 2 | r3 = 2;
0x0800025c stmdaeq r0, {r1, r4, r5, r6, sb, sp} | __asm ("stmdaeq r0, {r1, r4, r5, r6, sb, sp}");
0x08000260 cmp r0, 0 |
| if (r0 < 0) {
0x08000264 blt 0x8000210 | goto label_0;
| }
0x08000268 ldr r3, [sp, 0xc] | r3 = var_ch;
0x0800026c add r7, sp, 0x22 | r7 += var_22h;
0x08000270 ands sl, r3, 4 | sl = r3 & 4;
| if (sl != r3) {
0x08000274 bne 0x80004b8 | goto label_23;
| }
| label_4:
0x08000278 cmp r5, 0 |
| if (r5 != 0) {
0x0800027c beq 0x8000300 |
0x08000280 sub r3, r5, 0x2b | r3 = r5 - 0x2b;
0x08000284 uxtb r2, r3 | r2 = (int8_t) r3;
0x08000288 cmp r2, 0x11 |
| if (r2 <= 0x11) {
0x0800028c bhi 0x80002e4 |
0x08000290 cmp r3, 0x11 |
| if (r3 > 0x11) {
| /* switch table (18 cases) at 0x800029c */
0x08000294 ldrls pc, [pc, r3, lsl 2] | offset_0 = r3 << 2;
| pc = *((pc + offset_0));
| }
0x08000298 b 0x80002e4 |
| }
| label_6:
0x080002e4 mov r2, r5 | r2 = r5;
0x080002e8 mov r0, r8 | r0 = r8;
0x080002ec stmdaeq r0, {r2, sl, fp} | __asm ("stmdaeq r0, {r2, sl, fp}");
0x080002f0 stmdaeq r0, {r2, sl, fp} | __asm ("stmdaeq r0, {r2, sl, fp}");
0x080002f4 stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp} | __asm ("stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp}");
0x080002f8 add sp, sp, 0x5c |
0x080002fc pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| }
| label_5:
0x08000300 ldr r3, [sp, 0x10] | r3 = var_10h;
0x08000304 cmp r3, 0 |
| if (r3 != 0) {
0x08000308 bne 0x8000738 | goto label_24;
| }
0x0800030c ldrb r5, [r7, 1] | r5 = *((r7 + 1));
0x08000310 add r5, r5, 1 | r5++;
0x08000314 lsl r5, r5, 3 | r5 <<= 3;
0x08000318 cmp sl, 0 |
| if (sl != 0) {
0x0800031c bne 0x800040c | goto label_25;
| }
| label_3:
0x08000320 add r6, r6, r5 | r6 += r5;
0x08000324 ldrb r5, [r7] | r5 = *(r7);
0x08000328 cmp r5, 0x3b |
| if (r5 != 0x3b) {
0x0800032c bne 0x8000188 | goto label_1;
| }
| label_16:
0x08000330 mov r2, 0x3b | r2 = 0x3b;
| label_14:
0x08000334 mov r0, r8 | r0 = r8;
0x08000338 stmdaeq r0, {r3, r7, sl, fp} | __asm ("stmdaeq r0, {r3, r7, sl, fp}");
0x0800033c stmdaeq r0, {r3, r7, sl, fp} | __asm ("stmdaeq r0, {r3, r7, sl, fp}");
0x08000340 stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp} | __asm ("stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp}");
0x08000344 b 0x80001d0 | goto label_2;
| label_25:
0x0800040c mov r0, r8 | r0 = r8;
0x08000410 stmdaeq r0, {r3, r4, sl, fp} | __asm ("stmdaeq r0, {r3, r4, sl, fp}");
0x08000414 stmdaeq r0, {r3, r4, sl, fp} | __asm ("stmdaeq r0, {r3, r4, sl, fp}");
0x08000418 stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp} | __asm ("stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp}");
0x0800041c b 0x8000320 | goto label_3;
| label_22:
0x080004a4 adds r7, r7, r6 | r7 += r6;
| if (r7 == r7) {
0x080004a8 beq 0x8000210 | goto label_0;
| }
0x080004ac ldr r3, [sp, 0xc] | r3 = var_ch;
0x080004b0 ands sl, r3, 4 | sl = r3 & 4;
| if (sl == r3) {
0x080004b4 beq 0x8000278 | goto label_4;
| }
| label_23:
0x080004b8 mov r0, r8 | r0 = r8;
0x080004bc stmdaeq r0, {r2, r3, r7, r8, sb, fp} | __asm ("stmdaeq r0, {r2, r3, r7, r8, sb, fp}");
0x080004c0 stmdaeq r0, {r2, r3, r7, r8, sb, fp} | __asm ("stmdaeq r0, {r2, r3, r7, r8, sb, fp}");
0x080004c4 stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp} | __asm ("stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp}");
0x080004c8 cmp r5, 0 |
| if (r5 == 0) {
0x080004cc beq 0x8000300 | goto label_5;
| }
0x080004d0 sub r3, r5, 0x2b | r3 = r5 - 0x2b;
0x080004d4 uxtb r2, r3 | r2 = (int8_t) r3;
0x080004d8 cmp r2, 0x11 |
| if (r2 > 0x11) {
0x080004dc bhi 0x80002e4 | goto label_6;
| }
0x080004e0 cmp r3, 0x11 |
| if (r3 > 0x11) {
| /* switch table (18 cases) at 0x80004ec */
0x080004e4 ldrls pc, [pc, r3, lsl 2] | offset_1 = r3 << 2;
| pc = *((pc + offset_1));
| }
0x080004e8 b 0x80002e4 | goto label_6;
| label_19:
0x080005b4 cmp r5, 0x88 |
| if (r5 != 0x88) {
0x080005b8 bne 0x8000824 | goto label_26;
| }
| label_8:
0x080005bc ldr r3, [sp, 0x10] | r3 = var_10h;
0x080005c0 mov r2, r5 | r2 = r5;
0x080005c4 mov r1, r4 | r1 = r4;
0x080005c8 mov r0, r8 | r0 = r8;
0x080005cc str r6, [sp] | *(sp) = r6;
0x080005d0 stmdaeq r0, {r1, r3, r4, r5, r6, sb, sp} | __asm ("stmdaeq r0, {r1, r3, r4, r5, r6, sb, sp}");
0x080005d4 cmp r0, 0 |
| if (r0 == 0) {
0x080005d8 beq 0x80001d0 | goto label_2;
| }
0x080005dc b 0x8000220 | goto label_7;
| label_18:
0x080005fc cmp r5, 0x11 |
| if (r5 == 0x11) {
0x08000600 beq 0x80005bc | goto label_8;
| }
| if (r5 > 0x11) {
0x08000604 bhi 0x80001ac | goto label_9;
| }
0x08000608 cmp r5, 6 |
| if (r5 != 6) {
0x0800060c bne 0x8000824 | goto label_26;
| }
0x08000610 ldr r1, [sp, 0xc] | r1 = var_ch;
0x08000614 mov r2, r5 | r2 = r5;
0x08000618 str r1, [sp, 4] | var_4h = r1;
0x0800061c mov r0, r8 | r0 = r8;
0x08000620 ldr r3, [sp, 0x10] | r3 = var_10h;
0x08000624 mov r1, r4 | r1 = r4;
0x08000628 str r6, [sp] | *(sp) = r6;
0x0800062c stmdaeq r0, {r1, r2, r3, r4, r5, r6, sb, sp} | __asm ("stmdaeq r0, {r1, r2, r3, r4, r5, r6, sb, sp}");
0x08000630 cmp r0, 0 |
| if (r0 == 0) {
0x08000634 beq 0x80001d0 | goto label_2;
| }
0x08000638 b 0x8000220 | goto label_7;
| label_21:
0x08000650 cmp r3, 0 |
| if (r3 == 0) {
0x08000654 beq 0x8000220 | goto label_7;
| }
0x08000658 ldr r2, [r4, 0xc] | r2 = *((r4 + 0xc));
0x0800065c mov r1, r8 | r1 = r8;
0x08000660 ldr r0, [sp, 0x18] | r0 = var_18h;
0x08000664 stmdaeq r0, {r1, r7, sb, sp} | __asm ("stmdaeq r0, {r1, r7, sb, sp}");
0x08000668 b 0x80001e8 | goto label_10;
| label_20:
0x0800068c ldrd r2, r3, [r4, 0x54] | __asm ("ldrd r2, r3, [r4, 0x54]");
0x08000690 ldr r5, [r4, 0xa8] | r5 = *((r4 + 0xa8));
0x08000694 sub r3, r2, r3 | r3 = r2 - r3;
0x08000698 sub r3, r3, r6 | r3 -= r6;
0x0800069c cmp r3, 7 |
| if (r3 > 7) {
0x080006a0 bgt 0x80007a0 | goto label_27;
| }
0x080006a4 cmp r4, 0 |
| if (r4 == 0) {
0x080006a8 beq 0x80007a8 | goto label_28;
| }
0x080006ac add r2, sp, 0x24 | r2 += var_24h;
0x080006b0 mov r1, r6 | r1 = r6;
0x080006b4 mov r0, r4 | r0 = r4;
0x080006b8 mov r3, 8 | r3 = 8;
0x080006bc stmdaeq r0, {r1, r4, r5, r6, sb, sp} | __asm ("stmdaeq r0, {r1, r4, r5, r6, sb, sp}");
0x080006c0 cmp r0, 0 |
| if (r0 >= 0) {
0x080006c4 ldrlt r2, [r4, 0x54] | r2 = *((r4 + 0x54));
| }
| if (r0 < 0) {
0x080006c8 blt 0x80007a8 | goto label_28;
| }
0x080006cc add r5, sp, 0x24 | r5 += var_24h;
| label_11:
0x080006d0 ldrb r3, [r5, 1] | r3 = *((r5 + 1));
0x080006d4 mov r0, r8 | r0 = r8;
0x080006d8 ldrb r2, [r5] | r2 = *(r5);
0x080006dc stmdaeq r0, {r2, r6, sl, fp} | __asm ("stmdaeq r0, {r2, r6, sl, fp}");
0x080006e0 stmdaeq r0, {r2, r6, sl, fp} | __asm ("stmdaeq r0, {r2, r6, sl, fp}");
0x080006e4 stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp} | __asm ("stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp}");
0x080006e8 ldrb r3, [r5] | r3 = *(r5);
0x080006ec cmp r3, 4 |
| if (r3 == 4) {
0x080006f0 beq 0x80007c0 | goto label_29;
| }
| if (r3 > 4) {
0x080006f4 bhi 0x8000768 | goto label_30;
| }
0x080006f8 sub r3, r3, 1 | r3--;
0x080006fc cmp r3, 2 |
| if (r3 > 2) {
0x08000700 bhi 0x80001d0 | goto label_2;
| }
| label_12:
0x08000704 ldr r3, [sp, 0x84] | r3 = *(arg_84h);
0x08000708 cmp r3, 0 |
| if (r3 != 0) {
0x0800070c bne 0x80007dc | goto label_31;
| }
| label_13:
0x08000710 ldrb r3, [r5] | r3 = *(r5);
0x08000714 cmp r3, 2 |
| if (r3 != 2) {
0x08000718 bne 0x80001d0 | goto label_2;
| }
0x0800071c ldr r2, [r5, 4] | r2 = *((r5 + 4));
0x08000720 mov r0, r8 | r0 = r8;
0x08000724 stmdaeq r0, {r7, sl, fp} | __asm ("stmdaeq r0, {r7, sl, fp}");
0x08000728 stmdaeq r0, {r7, sl, fp} | __asm ("stmdaeq r0, {r7, sl, fp}");
0x0800072c rev r2, r2 | r2 = SWAP32 (r2);
0x08000730 stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp} | __asm ("stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp}");
0x08000734 b 0x80001d0 | goto label_2;
| label_24:
0x08000738 cmp sl, 0 |
| if (sl == 0) {
0x0800073c beq 0x8000220 | goto label_7;
| }
0x08000740 mov r0, r8 | r0 = r8;
0x08000744 stmdaeq r0, {r2, r6, r7, r8, sb, fp} | __asm ("stmdaeq r0, {r2, r6, r7, r8, sb, fp}");
0x08000748 stmdaeq r0, {r2, r6, r7, r8, sb, fp} | __asm ("stmdaeq r0, {r2, r6, r7, r8, sb, fp}");
0x0800074c stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp} | __asm ("stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp}");
0x08000750 b 0x8000220 | goto label_7;
| label_30:
0x08000768 eor r3, r3, 0x80 | r3 ^= 0x80;
0x0800076c cmp r3, 1 |
| if (r3 > 1) {
0x08000770 bhi 0x80001d0 | goto label_2;
| }
0x08000774 ldrh r2, [r5, 4] | r2 = *((r5 + 4));
0x08000778 mov r0, r8 | r0 = r8;
0x0800077c ldrh r3, [r5, 6] | r3 = *((r5 + 6));
0x08000780 stmdaeq r0, {r3, r4, r6, sl, fp} | __asm ("stmdaeq r0, {r3, r4, r6, sl, fp}");
0x08000784 stmdaeq r0, {r3, r4, r6, sl, fp} | __asm ("stmdaeq r0, {r3, r4, r6, sl, fp}");
0x08000788 rev16 r2, r2 | __asm ("rev16 r2, r2");
0x0800078c rev16 r3, r3 | __asm ("rev16 r3, r3");
0x08000790 uxth r2, r2 | r2 = (int16_t) r2;
0x08000794 uxth r3, r3 | r3 = (int16_t) r3;
0x08000798 stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp} | __asm ("stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp}");
0x0800079c b 0x80001d0 | goto label_2;
| label_27:
0x080007a0 adds r5, r5, r6 | r5 += r6;
| if (r5 != r5) {
0x080007a4 bne 0x80006d0 | goto label_11;
| }
| label_28:
0x080007a8 sub r2, r2, r6 | r2 -= r6;
0x080007ac mov r0, r8 | r0 = r8;
0x080007b0 stmdaeq r0, {r2, r3, r5, sl, fp} | __asm ("stmdaeq r0, {r2, r3, r5, sl, fp}");
0x080007b4 stmdaeq r0, {r2, r3, r5, sl, fp} | __asm ("stmdaeq r0, {r2, r3, r5, sl, fp}");
0x080007b8 stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp} | __asm ("stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp}");
0x080007bc b 0x8000220 | goto label_7;
| label_29:
0x080007c0 ldr r2, [r5, 4] | r2 = *((r5 + 4));
0x080007c4 mov r0, r8 | r0 = r8;
0x080007c8 stmdaeq r0, {r3, r5, r6, sl, fp} | __asm ("stmdaeq r0, {r3, r5, r6, sl, fp}");
0x080007cc stmdaeq r0, {r3, r5, r6, sl, fp} | __asm ("stmdaeq r0, {r3, r5, r6, sl, fp}");
0x080007d0 rev r2, r2 | r2 = SWAP32 (r2);
0x080007d4 stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp} | __asm ("stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp}");
0x080007d8 b 0x8000704 | goto label_12;
| label_31:
0x080007dc mov r0, r8 | r0 = r8;
0x080007e0 stmdaeq r0, {r3, r4, r5, r6, sl, fp} | __asm ("stmdaeq r0, {r3, r4, r5, r6, sl, fp}");
0x080007e4 stmdaeq r0, {r3, r4, r5, r6, sl, fp} | __asm ("stmdaeq r0, {r3, r4, r5, r6, sl, fp}");
0x080007e8 add r6, r6, 8 | r6 += 8;
0x080007ec stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp} | __asm ("stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp}");
0x080007f0 mov r1, r8 | r1 = r8;
0x080007f4 mov ip, 0 |
0x080007f8 ldr r2, [sp, 0x1c] | r2 = var_1ch;
0x080007fc ldr r0, [sp, 0x18] | r0 = var_18h;
0x08000800 mov r3, r4 | r3 = r4;
0x08000804 str r6, [sp] | *(sp) = r6;
0x08000808 str ip, [sp, 4] | var_4h = ip;
0x0800080c bl 0x800008c | dump_ipv6_packet ();
0x08000810 mov r0, r8 | r0 = r8;
0x08000814 stmdaeq r0, {r2, r3, r4, r5, r6, sl, fp} | __asm ("stmdaeq r0, {r2, r3, r4, r5, r6, sl, fp}");
0x08000818 stmdaeq r0, {r2, r3, r4, r5, r6, sl, fp} | __asm ("stmdaeq r0, {r2, r3, r4, r5, r6, sl, fp}");
0x0800081c stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp} | __asm ("stmdaeq r0, {r1, r2, r4, r5, r6, sb, sp}");
0x08000820 b 0x8000710 | goto label_13;
| label_26:
0x08000824 mov r2, r5 | r2 = r5;
0x08000828 b 0x8000334 | goto label_14;
| }
[*] Function mmap used 1 times nf_log_ipv6.ko