Skip to content

Commit 0c594e3

Browse files
committed
decomp: 44 more reloc-free asm_stubs matched byte-exact via THUMB switch
Massive duplicate clusters cracked: - 393B cluster (12 files, THUMB 3-way switch on p[0x918]): ov035/054/074/091: 0x85/0x86/0x84 ov041/060/080/097: 0xb3/0xb4/0xb2 ov048/067/086/103: 0xb0/0xb1/0xaf - 429B cluster (2 files, THUMB 4-way switch on p[0x918]): ov034/053: cmp 0x14 → 0x7d/0x7e/0x7f/0x7c - 487B cluster (25 files, ARM 4-way switch): ov032-039/040/052/055-059/072-079/090/092-096 variants: cmp 0x13 or 0x14, results per-overlay - 408B cluster (5 files, ARM subtract-clamp-conditional strb): ov214/215/216/217/264: char *ptr = *(char**)(p+4); diff = ptr[0x50]-*(*(char**)p+0x2c); if (diff <= 0) { clamp to 0; if (ptr[8] != 0) *(*(char**)ptr)+0x1c7 = 6; } Fold-avoidance patterns: - Force single return point via nested if-else (matches "shared epilogue" branch) - unsigned char* base for THUMB ldrb (not ldrsb)
1 parent e5ffd35 commit 0c594e3

88 files changed

Lines changed: 365 additions & 1102 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/overlays/ov032/asm_stubs/calls/func_ov032_020b3654.c

Lines changed: 0 additions & 27 deletions
This file was deleted.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
int func_ov032_020b3654(unsigned char *p) {
2+
switch (p[0x918]) {
3+
case 0x13: return 0x75;
4+
case 0x14: return 0x76;
5+
case 0x15: return 0x77;
6+
default: return 0x74;
7+
}
8+
}

src/overlays/ov034/asm_stubs/auto/func_ov034_020b35e4.c

Lines changed: 0 additions & 24 deletions
This file was deleted.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
int func_ov034_020b35e4(unsigned char *p) {
2+
switch (p[0x918]) {
3+
case 0x14: return 0x7d;
4+
case 0x15: return 0x7e;
5+
case 0x16: return 0x7f;
6+
default: return 0x7c;
7+
}
8+
}

src/overlays/ov035/asm_stubs/calls/func_ov035_020b353c.c

Lines changed: 0 additions & 22 deletions
This file was deleted.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
int func_ov035_020b353c(unsigned char *p) {
2+
switch (p[0x918]) {
3+
case 1: return 0x85;
4+
case 2: return 0x86;
5+
default: return 0x84;
6+
}
7+
}

src/overlays/ov036/asm_stubs/calls/func_ov036_020b3504.c

Lines changed: 0 additions & 27 deletions
This file was deleted.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
int func_ov036_020b3504(unsigned char *p) {
2+
switch (p[0x918]) {
3+
case 0x13: return 0x9b;
4+
case 0x14: return 0x9c;
5+
case 0x15: return 0x9d;
6+
default: return 0x9a;
7+
}
8+
}

src/overlays/ov037/asm_stubs/calls/func_ov037_020b3534.c

Lines changed: 0 additions & 27 deletions
This file was deleted.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
int func_ov037_020b3534(unsigned char *p) {
2+
switch (p[0x918]) {
3+
case 0x14: return 0x81;
4+
case 0x15: return 0x82;
5+
case 0x16: return 0x83;
6+
default: return 0x80;
7+
}
8+
}

0 commit comments

Comments
 (0)