pureikyubu/Docs/RE/DVDConvertPathToEntrynum.json
ogamespec 7dc8b1166f DVDConvertPathToEntrynum reversing
- Fixed MountSdk userOffset address (not to be erased by Arena clear)
2020-04-01 02:25:46 +03:00

360 lines
6.5 KiB
JSON

{
"info":
{
"description": "DVDConvertPathToEntrynum graph. There is no money for a paid IDA Pro, and downloading a pirate conscience is not allowed (plus I stream progress). Therefore, we will try to reverse this branching bitch with improvised means."
},
"graph":
{
"8000F09C":
[
"mflr r0",
"stw r0, 4 (r1)",
"stwu r1, -72 (r1)",
"stmw r20, 24 (r1)",
"mr r23, r3",
"lis r3, 0x8003",
"addi r25, r23, 0",
"subi r31, r3, 0x66A8",
"lwz r26, -0x7CD8 (r13)"
],
"8000F0C0":
[
"lbz r3, 0 (r23)",
"extsb. r0, r3",
"bne- 0x8000F0D4",
"mr r3, r26",
"b 0x8000F37C"
],
"8000F0D4":
[
"extsb r0, r3",
"cmpwi r0, 47 // '/'",
"bne- 0x8000F0EC",
"li r26, 0",
"addi r23, r23, 1",
"b 0x8000F0C0"
],
"8000F0EC":
[
"cmpwi r0, 46 // '.'",
"bne- 0x8000F164 ",
"lbz r3, 1 (r23)",
"extsb r0, r3",
"cmpwi r0, 46 // '.'",
"bne- 0x8000F144 ",
"lbz r3, 2 (r23)",
"cmpwi r3, 47 // '/'",
"bne- 0x8000F128 ",
"mulli r3, r26, 12",
"lwz r4, -0x7CE4 (r13)",
"addi r0, r3, 4",
"lwzx r26, r4, r0",
"addi r23, r23, 3",
"b 0x8000F0C0"
],
"8000F128":
[
"extsb. r0, r3",
"bne- 0x8000F164 ",
"mulli r0, r26, 12",
"lwz r3, -0x7CE4 (r13)",
"add r3, r3, r0",
"lwz r3, 4 (r3)",
"b 0x8000F37C"
],
"8000F144":
[
"cmpwi r0, 47 // '/'",
"bne- 0x8000F154",
"addi r23, r23, 2",
"b 0x8000F0C0 ",
],
"8000F154":
[
"extsb. r0, r3",
"bne- 0x8000F164 ",
"mr r3, r26",
"b 0x8000F37C"
],
"8000F164":
[
"lwz r0, -0x7CD4 (r13)",
"cmplwi r0, 0",
"bne- 0x8000F218 ",
"addi r28, r23, 0",
"li r5, 0",
"li r4, 0",
"b 0x8000F1C4"
],
"8000F180":
[
"extsb r0, r3",
"cmpwi r0, 46",
"bne- 0x8000F1B4 ",
"subf r0, r23, r28",
"cmpwi r0, 8",
"bgt- 0x8000F1A0 ",
"cmpwi r5, 1",
"bne- 0x8000F1A8"
],
"8000F1A0":
[
"li r4, 1",
"b 0x8000F1DC"
],
"8000F1A8":
[
"addi r24, r28, 1",
"li r5, 1",
"b 0x8000F1C0"
],
"8000F1B4":
[
"cmpwi r0, 32 // ' '",
"bne- 0x8000F1C0 ",
"li r4, 1"
],
"8000F1C0":
[
"addi r28, r28, 1"
],
"8000F1C4":
[
"lbz r3, 0 (r28)",
"extsb. r0, r3",
"beq- 0x8000F1DC",
"extsb r0, r3",
"cmpwi r0, 47 // '/'",
"bne+ 0x8000F180"
],
"8000F1DC":
[
"cmpwi r5, 1",
"bne- 0x8000F1F4 ",
"subf r0, r24, r28",
"cmpwi r0, 3",
"ble- 0x8000F1F4 ",
"li r4, 1"
],
"8000F1F4":
[
"cmpwi r4, 0",
"beq- 0x8000F23C ",
"addi r5, r31, 0",
"crclr 6",
"addi r6, r25, 0",
"subi r3, r13, 0x7EE0",
"li r4, 0x0178",
"bl OSPanic ",
"b 0x8000F23C"
],
"8000F218":
[
"mr r28, r23",
"b 0x8000F224"
],
"8000F220":
[
"addi r28, r28, 1"
],
"8000F224":
[
"lbz r3, 0 (r28)",
"extsb. r0, r3",
"beq- 0x8000F23C ",
"extsb r0, r3",
"cmpwi r0, 47",
"bne+ 0x8000F220"
],
"8000F23C":
[
"lbz r0, 0 (r28)",
"extsb. r0, r0",
"bne- 0x8000F250 ",
"li r30, 0",
"b 0x8000F254"
],
"8000F250":
[
"li r30, 1"
],
"8000F254":
[
"mulli r29, r26, 12",
"subf r27, r23, r28",
"addi r26, r26, 1",
"b 0x8000F344"
],
"8000F264":
[
"mulli r28, r26, 12",
"lwzx r4, r3, r28",
"rlwinm. r0, r4, 0, 0, 7 // mask:0xFF000000",
"bne- 0x8000F27C ",
"li r0, 0",
"b 0x8000F280"
],
"8000F27C":
[
"li r0, 1"
],
"8000F280":
[
"cmpwi r0, 0",
"bne- 0x8000F290 ",
"cmpwi r30, 1",
"beq- 0x8000F30C"
],
"8000F290":
[
"lwz r3, -0x7CE0 (r13)",
"rlwinm r0, r4, 0, 8, 31 // mask:0x00FFFFFF",
"addi r21, r23, 0",
"add r20, r3, r0",
"b 0x8000F2D8"
],
"8000F2A4":
[
"lbz r0, 0 (r20)",
"addi r20, r20, 1",
"extsb r3, r0",
"bl tolower ",
"lbz r0, 0 (r21)",
"addi r22, r3, 0",
"addi r21, r21, 1",
"extsb r3, r0",
"bl tolower ",
"cmpw r3, r22",
"beq- 0x8000F2D8 ",
"li r0, 0",
"b 0x8000F304"
],
"8000F2D8":
[
"lbz r0, 0 (r20)",
"extsb. r0, r0",
"bne+ 0x8000F2A4 ",
"lbz r3, 0 (r21)",
"cmpwi r3, 47 // '/'",
"beq- 0x8000F2F8 ",
"extsb. r0, r3",
"bne- 0x8000F300"
],
"8000F2F8":
[
"li r0, 1",
"b 0x8000F304"
],
"8000F300":
[
"li r0, 0"
],
"8000F304":
[
"cmpwi r0, 1",
"beq- 0x8000F360"
],
"8000F30C":
[
"lwz r0, -0x7CE4 (r13)",
"add r3, r0, r28",
"lwz r0, 0 (r3)",
"rlwinm. r0, r0, 0, 0, 7 // mask:0xFF000000",
"bne- 0x8000F328 ",
"li r0, 0",
"b 0x8000F32C"
],
"8000F328":
[
"li r0, 1"
],
"8000F32C":
[
"cmpwi r0, 0",
"beq- 0x8000F33C ",
"lwz r0, 8 (r3)",
"b 0x8000F340"
],
"8000F33C":
[
"addi r0, r26, 1"
],
"8000F340":
[
"mr r26, r0"
],
"8000F344":
[
"lwz r3, -0x7CE4 (r13)",
"addi r0, r3, 8",
"lwzx r0, r29, r0",
"cmplw r26, r0",
"blt+ 0x8000F264 ",
"li r3, -1 // Bad path",
"b 0x8000F37C"
],
"8000F360":
[
"cmpwi r30, 0",
"bne- 0x8000F370 ",
"mr r3, r26",
"b 0x8000F37C"
],
"8000F370":
[
"add r23, r27, r23",
"addi r23, r23, 1",
"b 0x8000F0C0"
],
"8000F37C":
[
"lmw r20, 24 (r1)",
"lwz r0, 76 (r1)",
"addi r1, r1, 72",
"mtlr r0",
"blr"
]
}
}