El rango que me pediste:
0x6760 – 0x6790
--- FUN_00003980 ---
**************************************************************
* FUNCTION *
**************************************************************
undefined FUN_00006170()
undefined <UNASSIGNED> <RETURN>
FUN_00006170 XREF[1]: entry:000030bc(c)
00006170 24 00 40 80 stqd lr,0x10(sp)
00006174 24 ff c0 d0 stqd r80,-0x10(sp)
00006178 04 00 01 d0 lr r80,r3
0000617c 24 ff 40 81 stqd sp,-0x30(sp)
00006180 1c f4 00 81 ai sp,sp,-0x30
00006184 33 79 e8 80 brsl lr,FUN_000030c8 undefined FUN_000030c8()
00006188 23 81 99 03 stqr r3,offset DAT_00006e50 = ??
0000618c 33 79 e7 80 brsl lr,FUN_000030c8 undefined FUN_000030c8()
00006190 40 20 00 7f nop r127
00006194 23 81 99 83 stqr r3,offset DAT_00006e60 = ??
00006198 04 00 28 03 lr r3,r80
0000619c 33 7a 02 80 brsl lr,FUN_000031b0 undefined FUN_000031b0()
000061a0 40 20 00 7f nop r127
000061a4 12 79 e6 8a hbrr
000061a8 04 00 01 d0 lr r80,r3
000061ac 32 dd dd 83 fsmbi r3,-0x4445
000061b0 40 20 00 7f nop r127
000061b4 34 00 28 05 lqd r5,0x0(r80)
000061b8 3b 94 02 84 rotqby r4,r5,r80
000061bc 7c 01 02 02 ceqi r2,r4,0x4
000061c0 21 00 01 02 brnz r2,LAB_000061c8
000061c4 40 ff 80 03 il r3,-0x100
LAB_000061c8 XREF[1]: 000061c0(j)
000061c8 40 20 00 7f nop r127
000061cc 33 79 e1 80 brsl lr,FUN_000030d8 undefined FUN_000030d8()
000061d0 1c 02 28 0a ai r10,r80,0x8
000061d4 12 00 1f 8b hbrr
000061d8 1c 03 28 0b ai r11,r80,0xc
000061dc 34 00 28 07 lqd r7,0x0(r80)
000061e0 1c 05 28 0c ai r12,r80,0x14
000061e4 1c 06 28 0d ai r13,r80,0x18
000061e8 1c 07 28 0e ai r14,r80,0x1c
000061ec 1c 01 28 0f ai r15,r80,0x4
000061f0 3b 94 03 83 rotqby r3,r7,r80
000061f4 7c 01 01 86 ceqi r6,r3,0x4
000061f8 7c 02 01 84 ceqi r4,r3,0x8
000061fc 21 00 01 86 brnz r6,LAB_00006208
00006200 20 00 1a 04 brz r4,LAB_000062d0
00006204 32 00 0b 80 br LAB_00006260
LAB_00006208 XREF[1]: 000061fc(j)
00006208 40 80 04 19 il r25,0x8
0000620c 12 7a 0b 93 hbrr
00006210 40 80 06 18 il r24,0xc
00006214 38 80 e8 09 lqx r9,r80,r3
00006218 40 80 0a 17 il r23,0x14
0000621c 34 00 68 10 lqd r16,0x10(r80)
00006220 40 80 0c 16 il r22,0x18
00006224 38 86 68 14 lqx r20,r80,r25
00006228 40 80 0e 15 il r21,0x1c
0000622c 38 86 28 13 lqx r19,r80,r24
00006230 38 85 e8 12 lqx r18,r80,r23
00006234 38 85 a8 11 lqx r17,r80,r22
00006238 38 85 68 08 lqx r8,r80,r21
0000623c 3b 83 c4 89 rotqby r9,r9,r15
00006240 3b 82 8a 03 rotqby r3,r20,r10
00006244 3b 82 c9 84 rotqby r4,r19,r11
00006248 3b 83 09 06 rotqby r6,r18,r12
0000624c 3b 83 48 87 rotqby r7,r17,r13
00006250 3b 83 84 08 rotqby r8,r8,r14
00006254 3b 94 08 05 rotqby r5,r16,r80
00006258 33 7a 02 00 brsl lr,FUN_00003268 undefined FUN_00003268()
0000625c 32 00 0e 80 br LAB_000062d0
LAB_00006260 XREF[1]: 00006204(j)
00006260 40 80 04 26 il r38,0x8
00006264 12 7a e3 9a hbrr
00006268 40 80 06 25 il r37,0xc
0000626c 34 00 68 21 lqd r33,0x10(r80)
00006270 40 80 0a 24 il r36,0x14
00006274 38 89 a8 1e lqx r30,r80,r38
00006278 40 80 0c 23 il r35,0x18
0000627c 38 89 68 1c lqx r28,r80,r37
00006280 40 80 0e 22 il r34,0x1c
00006284 38 89 28 1a lqx r26,r80,r36
00006288 40 80 02 20 il r32,0x4
0000628c 38 88 e8 0f lqx r15,r80,r35
00006290 1c 02 28 1f ai r31,r80,0x8
00006294 38 88 a8 0e lqx r14,r80,r34
00006298 1c 03 28 1d ai r29,r80,0xc
0000629c 38 88 28 0c lqx r12,r80,r32
000062a0 1c 05 28 1b ai r27,r80,0x14
000062a4 3b 94 10 85 rotqby r5,r33,r80
000062a8 1c 06 28 0b ai r11,r80,0x18
000062ac 3b 87 cf 03 rotqby r3,r30,r31
000062b0 1c 07 28 0a ai r10,r80,0x1c
000062b4 3b 87 4e 04 rotqby r4,r28,r29
000062b8 1c 01 28 0d ai r13,r80,0x4
000062bc 3b 86 cd 06 rotqby r6,r26,r27
000062c0 3b 82 c7 87 rotqby r7,r15,r11
000062c4 3b 82 87 08 rotqby r8,r14,r10
000062c8 3b 83 46 09 rotqby r9,r12,r13
000062cc 33 7a d6 80 brsl lr,SPU_ImageScanlineFilterKernel undefined SPU_ImageScanlineFilte
LAB_000062d0 XREF[2]: 00006200(j), 0000625c(j)
000062d0 33 79 c3 00 brsl lr,FUN_000030e8 undefined FUN_000030e8()
000062d4 33 79 ca 80 brsl lr,FUN_00003128 undefined FUN_00003128()
000062d8 40 80 00 03 il r3,0x0
000062dc 34 01 00 80 lqd lr,0x40(sp)
000062e0 1c 0c 00 81 ai sp,sp,0x30
000062e4 34 ff c0 d0 lqd r80,-0x10(sp)
000062e8 35 00 00 00 bi lr
000062ec 00 ?? 00h
000062ed 20 ?? 20h
000062ee 00 ?? 00h
000062ef 00 ?? 00h
Decomp:
/* WARNING: Removing unreachable block (ram,0x000061ac) */
undefined8 FUN_00006170(undefined8 param_1)
{
undefined8 in_lr;
BADSPACEBASE *in_sp;
double dVar1;
undefined8 uVar2;
longlong lVar3;
longlong lVar4;
undefined8 uVar5;
undefined8 uVar6;
longlong lVar7;
undefined8 uVar8;
undefined8 uVar9;
undefined8 uVar10;
undefined8 uVar11;
undefined8 unaff_r80;
undefined1 auStack_30 [32];
undefined1 auStack_10 [16];
*(undefined8 *)(int)(double)&stack0x00000010 = in_lr;
*(undefined8 *)(int)(double)auStack_10 = unaff_r80;
*(BADSPACEBASE **)(int)(double)auStack_30 = in_sp;
DAT_00006e50 = FUN_000030c8();
DAT_00006e60 = FUN_000030c8();
dVar1 = (double)FUN_000031b0(param_1);
uVar2 = 0xff00ffffff00ffff;
lVar3 = __spu_rotqby(*(undefined8 *)(int)dVar1,dVar1);
if (lVar3 == 4) {
lVar3 = 0xffffffff;
}
else {
lVar3 = 0;
}
if (lVar3 == 0) {
uVar2 = 0xffffffffffffff00;
}
FUN_000030d8(uVar2);
lVar3 = __spu_rotqby(*(undefined8 *)(int)dVar1,dVar1);
if (lVar3 == 4) {
lVar7 = 0xffffffff;
}
else {
lVar7 = 0;
}
if (lVar3 == 8) {
lVar4 = 0xffffffff;
}
else {
lVar4 = 0;
}
if (lVar7 == 0) {
if (lVar4 != 0) {
uVar6 = __spu_rotqby(*(undefined8 *)(int)(double)((longlong)dVar1 + 0x10),dVar1);
uVar2 = __spu_rotqby(*(undefined8 *)(int)(double)((longlong)dVar1 + 8),(longlong)dVar1 + 8);
uVar5 = __spu_rotqby(*(undefined8 *)(int)(double)((longlong)dVar1 + 0xc),(longlong)dVar1 + 0xc
);
uVar8 = __spu_rotqby(*(undefined8 *)(int)(double)((longlong)dVar1 + 0x14),
(longlong)dVar1 + 0x14);
uVar9 = __spu_rotqby(*(undefined8 *)(int)(double)((longlong)dVar1 + 0x18),
(longlong)dVar1 + 0x18);
uVar10 = __spu_rotqby(*(undefined8 *)(int)(double)((longlong)dVar1 + 0x1c),
(longlong)dVar1 + 0x1c);
uVar11 = __spu_rotqby(*(undefined8 *)(int)(double)((longlong)dVar1 + 4),(longlong)dVar1 + 4);
SPU_ImageScanlineFilterKernel(uVar2,uVar5,uVar6,uVar8,uVar9,uVar10,uVar11);
}
}
else {
uVar11 = __spu_rotqby(*(undefined8 *)(int)(double)((longlong)dVar1 + lVar3),(longlong)dVar1 + 4)
;
uVar2 = __spu_rotqby(*(undefined8 *)(int)(double)((longlong)dVar1 + 8),(longlong)dVar1 + 8);
uVar5 = __spu_rotqby(*(undefined8 *)(int)(double)((longlong)dVar1 + 0xc),(longlong)dVar1 + 0xc);
uVar8 = __spu_rotqby(*(undefined8 *)(int)(double)((longlong)dVar1 + 0x14),(longlong)dVar1 + 0x14
);
uVar9 = __spu_rotqby(*(undefined8 *)(int)(double)((longlong)dVar1 + 0x18),(longlong)dVar1 + 0x18
);
uVar10 = __spu_rotqby(*(undefined8 *)(int)(double)((longlong)dVar1 + 0x1c),
(longlong)dVar1 + 0x1c);
uVar6 = __spu_rotqby(*(undefined8 *)(int)(double)((longlong)dVar1 + 0x10),dVar1);
FUN_00003268(uVar2,uVar5,uVar6,uVar8,uVar9,uVar10,uVar11);
}
FUN_000030e8();
FUN_00003128();
return 0;
}
-----------
Sólo unas 10–15 instrucciones alrededor de
0x31F4:
000031d0 40 80 08 03 il r3,0x10
000031d4 24 ff 40 81 stqd sp,-0x30(sp)
000031d8 1c f4 00 81 ai sp,sp,-0x30
000031dc 21 00 0e 82 brnz r2,LAB_00003250
000031e0 33 06 60 00 brsl lr,FUN_000064e0 undefined FUN_000064e0()
000031e4 3f bf 28 10 rotqmbyi r16,r80,-0x4
000031e8 14 03 c1 8f andi r15,r3,0xf
000031ec 23 87 90 83 stqr r3,offset DAT_00006e70 = ??
000031f0 7c 00 07 8e ceqi r14,r15,0x0
000031f4 3f e1 08 07 shlqbyi r7,r16,0x4
000031f8 0c 00 07 0a sfi r10,r14,0x0
000031fc 14 03 c3 8d andi r13,r7,0xf
00003200 7c 00 06 8c ceqi r12,r13,0x0
00003204 0c 00 06 0b sfi r11,r12,0x0
00003208 18 22 c5 09 and r9,r10,r11
0000320c 7f 00 04 80 heqi r9,0x0
00003210 40 80 00 08 il r8,0x0
0x5948:
00005920 18 09 24 22 a r34,r72,r36
00005924 18 13 4b 23 a r35,r22,r77
00005928 18 13 8b a4 a r36,r23,r78
0000592c 18 15 4c 4d a r77,r24,r85
00005930 18 17 41 83 a r3,r3,r93
00005934 34 17 c0 dd lqd r93,0x5f0(sp)
00005938 18 1a 64 d5 a r85,r73,r105
0000593c 18 0d 9f 3e a r62,r62,r54
00005940 18 0e e1 c3 a r67,r67,r59
00005944 34 1d c0 bb lqd r59,0x770(sp)
00005948 18 1b 62 6d a r109,r68,r109
0000594c 78 aa 7f 51 mpyh r81,r126,r41
00005950 79 96 7f 77 mpyu r119,r126,r89
00005954 79 96 bf 79 mpyu r121,r126,r90
00005958 79 9b bf 0a mpyu r10,r126,r110
0000595c 79 95 ff 6c mpyu r108,r126,r87
00005960 79 96 ff 6e mpyu r110,r126,r91
00005964 79 96 3f 70 mpyu r112,r126,r88
00005968 78 bd bf 52 mpyh r82,r126,r118
0000596c 78 a9 ff 54 mpyh r84,r126,r39
00005970 78 aa 3f 75 mpyh r117,r126,r40
00005974 79 89 bf 26 mpyu r38,r126,r38
0x690C:
000068e4 3b 91 62 42 rotqby r66,r68,r69
000068e8 b8 10 61 43 shufb r64,r66,r65,r67
000068ec 28 8f 9f c0 stqx r64,r63,r62
000068f0 34 00 04 bd lqd r61,0x0(r9)
000068f4 3b 82 5e 8a rotqby r10,r61,r9
000068f8 34 00 05 3a lqd r58,0x0(r10)
000068fc 3e c0 05 3c cwd r60,0x0(r10)
00006900 b7 2e 9d bc shufb r57,r59,r58,r60
00006904 24 00 05 39 stqd r57,0x0(r10)
00006908 34 00 05 b7 lqd r55,0x0(r11)
0000690c b6 cd e8 b8 shufb r54,r81,r55,r56
00006910 24 00 05 b6 stqd r54,0x0(r11)
00006914 32 7f d2 80 br LAB_000067a8
LAB_00006918 XREF[1]: 000067f4(j)
00006918 18 14 c5 0e a r14,r10,r83
0000691c 34 00 05 09 lqd r9,0x0(r10)
00006920 40 80 02 0d il r13,0x4
00006924 3e c0 05 10 cwd r16,0x0(r10)4 views