From 7db8372ae28adc81e7900802c857ec101bdf0b07 Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Thu, 10 Sep 2026 21:05:27 -0600 Subject: [PATCH] =?UTF-8?q?phase-36:=20S104=20sweep=20banks=20=E2=80=94=20?= =?UTF-8?q?5=20classes=20from=20the=20all-families=20regen=20(R12=20=C3=97?= =?UTF-8?q?3,=20R15,=20R19)=20+=2012=20siblings,=20each=20IDENTICAL=20thro?= =?UTF-8?q?ugh=20the=20whole-object=20gate;=20R22=20follows=20the=20batch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .run/P36/census/lever_census.json | 4 +- .run/P36/census/lever_census.txt | 8 +- .run/P36/delever/calibration.json | 376 +++++++++++----------- .run/P36/delever/ledger.jsonl | 17 + src/md_SC03_076/md_SC03_076.c | 4 +- src/md_SC03_135/md_SC03_135.c | 4 +- src/md_SC04_027/md_SC04_027.c | 4 +- src/md_SC05_026/md_SC05_026.c | 4 +- src/ov_MAIN_012/ov_MAIN_012_jr_801555F4.c | 12 +- src/ov_SC02_037/ov_SC02_037_jr_801555F4.c | 12 +- src/ov_SC03_001/ov_SC03_001_jr_8018A3A8.c | 7 +- src/ov_SC03_024/ov_SC03_024_jr_80183BF8.c | 4 +- src/ov_SC03_107/ov_SC03_107_jr_801555F4.c | 12 +- src/ov_SC03_124/ov_SC03_124_jr_80187010.c | 7 +- src/ov_SC04_018/ov_SC04_018_jr_801878E8.c | 7 +- src/ov_SC05_006/ov_SC05_006_jr_8017BEBC.c | 4 +- src/ov_SC05_009/ov_SC05_009_jr_8017BEBC.c | 4 +- src/ov_SC05_017/ov_SC05_017_jr_801875E8.c | 7 +- src/ov_SC06_024/ov_SC06_024_jr_80186F00.c | 12 +- 19 files changed, 252 insertions(+), 257 deletions(-) diff --git a/.run/P36/census/lever_census.json b/.run/P36/census/lever_census.json index be23267c2..a78be56d5 100644 --- a/.run/P36/census/lever_census.json +++ b/.run/P36/census/lever_census.json @@ -237,7 +237,7 @@ } }, "coverage_ok": true, - "elapsed_s": 28.5, + "elapsed_s": 45.4, "generated": "2026-09-10", "gte_levers": { "direct": 362, @@ -248,7 +248,7 @@ "via_macro": 94, "what": "GTE ops whose clobbers exceed the canonical macro's (a scheduling steer): class-B levers INSIDE the headline number since T5 (2026-09-09), marked, 0 at the close" }, - "head": "94520756e", + "head": "48176e51f", "headers": 3181, "levers_AB": { "asm": 2299, diff --git a/.run/P36/census/lever_census.txt b/.run/P36/census/lever_census.txt index 6f10ab46c..7fe8d3687 100644 --- a/.run/P36/census/lever_census.txt +++ b/.run/P36/census/lever_census.txt @@ -6,13 +6,13 @@ lever_census: 218 binaries · 4,121 TUs + 3,181 headers · coverage OK · unclas coverage attribute raw 76 = live 76 + macro-block 0 + comment/dead 0 class sites in-bodies file-scope bodies distinct TUs marked unmarked kinds A pins 2798 2798 0 1771 814 1142 2798 0 {'pin': 2798} - B asm 11580 11567 13 4847 842 1456 2789 8791 {'verbatim-body': 2682, 'gte': 6328, 'keepalive': 382, 'barrier': 395, 'gte-lever': 456, 'gte-unsigned': 271, 'launder': 817, 'instruction': 236, 'asm-body': 13} - C volatile 1590 1438 152 496 95 610 14 1576 {'cast': 1378, 'decl-body': 58, 'decl-file': 152, 'param': 2} + B asm 11580 11567 13 4847 842 1456 2789 8791 {'gte': 6328, 'barrier': 395, 'gte-lever': 456, 'gte-unsigned': 271, 'launder': 817, 'instruction': 236, 'asm-body': 13, 'keepalive': 382, 'verbatim-body': 2682} + C volatile 1590 1438 152 496 95 610 14 1576 {'decl-body': 58, 'decl-file': 152, 'cast': 1378, 'param': 2} D register 50 50 0 47 47 6 0 50 {'register': 50} E asm-label 7782 1359 6423 1091 154 2090 0 7782 {'asm-label': 7782} F builtin 445 445 0 428 27 302 0 445 {'builtin': 445} G attribute 76 1 75 1 1 40 0 76 {'attribute': 76} - UNION A–D: 6,294 bodies · 1,397 distinct (addresses normalized) · 185 multi-copy classes holding 5,082 bodies · by kind {'ov': 5811, 'md': 133, 'shared': 175, 'main': 165, 'resident': 10} + UNION A–D: 6,294 bodies · 1,397 distinct (addresses normalized) · 185 multi-copy classes holding 5,082 bodies · by kind {'ov': 5811, 'main': 165, 'shared': 175, 'md': 133, 'resident': 10} THE PHASE'S NUMBER (pins + asm statements, GTE excluded): 5,097 sites in 2,569 bodies (1,097 distinct) · marked !FAKE 5,097 · UNMARKED 0 orphan !FAKE markers (no pin/asm site on the line nor below): 0 GTE levers (clobbers beyond the canonical macro's): 456 sites (94 via a variant macro, 362 direct) · marked 456 · UNMARKED 0 · unsigned GTE statements 271 @@ -28,4 +28,4 @@ lever_census: 218 binaries · 4,121 TUs + 3,181 headers · coverage OK · unclas src/shared/ov/func_80178004.h pins got 8 expected 26 N-A ov_SC03_006 func_80184034 bare-name pins got 0 expected 3 N-A engine_prelude.h asm sites (a macro definition only) got 0 expected 0 OK - elapsed 28.5 s + elapsed 45.4 s diff --git a/.run/P36/delever/calibration.json b/.run/P36/delever/calibration.json index 95fc4abf4..714f4f600 100644 --- a/.run/P36/delever/calibration.json +++ b/.run/P36/delever/calibration.json @@ -1,7 +1,7 @@ { - "head": "94520756e", + "head": "16411105e", "stamp": "15956e4a96c4", - "generated": "2026-09-10 19:05", + "generated": "2026-09-10 21:00", "aliases": [ "main", "ov_SC03_014", @@ -21,207 +21,207 @@ "main": { "objects": 85, "identical": 85, - "seconds": 8.074000000000002, - "mean_s": 0.095 + "seconds": 11.418, + "mean_s": 0.134 }, "ov_SC03_014": { "objects": 32, "identical": 32, - "seconds": 5.355000000000001, - "mean_s": 0.167 + "seconds": 7.175, + "mean_s": 0.224 }, "ov_SC03_015": { "objects": 32, "identical": 32, - "seconds": 5.327999999999999, - "mean_s": 0.166 + "seconds": 7.3950000000000005, + "mean_s": 0.231 }, "ov_SC04_011": { "objects": 28, "identical": 28, - "seconds": 4.605000000000001, - "mean_s": 0.164 + "seconds": 7.131, + "mean_s": 0.255 } }, "per_object_seconds": { - "build/src/800.o": 0.867, - "build/src/800_b.o": 0.092, - "build/src/800_b_2.o": 0.343, - "build/src/800_b_o0a.o": 0.077, - "build/src/800_c.o": 0.222, - "build/src/800b2.o": 0.093, - "build/src/apicard1.o": 0.077, - "build/src/apicard2.o": 0.085, - "build/src/apicard3.o": 0.084, - "build/src/apicard4.o": 0.086, - "build/src/apicard5.o": 0.083, - "build/src/apicard6.o": 0.105, - "build/src/apicard7.o": 0.092, - "build/src/boot.o": 0.12, - "build/src/gap.o": 0.086, - "build/src/libapi1.o": 0.085, - "build/src/libapi2.o": 0.074, - "build/src/libc2_1.o": 0.082, - "build/src/libc2_2.o": 0.077, - "build/src/libcd1.o": 0.085, - "build/src/libcd2.o": 0.079, - "build/src/libetc.o": 0.074, - "build/src/libgpu.o": 0.078, - "build/src/libgpu2.o": 0.094, - "build/src/libgs1.o": 0.075, - "build/src/libgs2.o": 0.073, - "build/src/libgs3.o": 0.072, - "build/src/libgs4.o": 0.084, - "build/src/libgs5.o": 0.077, - "build/src/libgs6.o": 0.093, - "build/src/libgs7.o": 0.08, - "build/src/libgs8.o": 0.077, - "build/src/libgte1.o": 0.083, - "build/src/libgte10.o": 0.078, - "build/src/libgte11.o": 0.076, - "build/src/libgte12.o": 0.069, - "build/src/libgte13.o": 0.075, - "build/src/libgte14.o": 0.085, - "build/src/libgte15.o": 0.075, - "build/src/libgte16.o": 0.078, - "build/src/libgte17.o": 0.073, - "build/src/libgte18.o": 0.084, - "build/src/libgte19.o": 0.074, - "build/src/libgte2.o": 0.075, - "build/src/libgte20.o": 0.075, - "build/src/libgte21.o": 0.079, - "build/src/libgte22.o": 0.076, - "build/src/libgte23.o": 0.081, - "build/src/libgte24.o": 0.078, - "build/src/libgte25.o": 0.083, - "build/src/libgte26.o": 0.095, - "build/src/libgte27.o": 0.08, - "build/src/libgte28.o": 0.085, - "build/src/libgte29.o": 0.078, - "build/src/libgte3.o": 0.081, - "build/src/libgte30.o": 0.07, - "build/src/libgte4.o": 0.076, - "build/src/libgte5.o": 0.074, - "build/src/libgte6.o": 0.08, - "build/src/libgte7.o": 0.075, - "build/src/libgte8.o": 0.096, - "build/src/libgte9.o": 0.075, - "build/src/libmcrd1.o": 0.081, - "build/src/libmcrd2.o": 0.068, - "build/src/libpad1.o": 0.076, - "build/src/libpad2.o": 0.084, - "build/src/sgap.o": 0.078, - "build/src/sgap_2.o": 0.085, - "build/src/sgap_3.o": 0.076, - "build/src/sgap_4.o": 0.087, - "build/src/sgap_5.o": 0.073, - "build/src/sgap_6.o": 0.075, - "build/src/sgap_8.o": 0.086, - "build/src/snd1.o": 0.085, - "build/src/snd10.o": 0.077, - "build/src/snd11.o": 0.075, - "build/src/snd12.o": 0.072, - "build/src/snd2.o": 0.09, - "build/src/snd3.o": 0.077, - "build/src/snd4.o": 0.078, - "build/src/snd5.o": 0.077, - "build/src/snd6.o": 0.086, - "build/src/snd7.o": 0.098, - "build/src/snd8.o": 0.077, - "build/src/snd9.o": 0.08, - "build/src/ov_SC03_014/ov_SC03_014.o": 0.149, - "build/src/ov_SC03_014/ov_SC03_014_after.o": 0.575, - "build/src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.o": 0.437, - "build/src/ov_SC03_014/ov_SC03_014_jr_80135888.o": 0.077, - "build/src/ov_SC03_014/ov_SC03_014_jr_80135A4C.o": 0.073, - "build/src/ov_SC03_014/ov_SC03_014_jr_80135D20.o": 0.148, - "build/src/ov_SC03_014/ov_SC03_014_jr_801380E0.o": 0.177, - "build/src/ov_SC03_014/ov_SC03_014_jr_8013C98C.o": 0.139, - "build/src/ov_SC03_014/ov_SC03_014_jr_8013F350.o": 0.091, - "build/src/ov_SC03_014/ov_SC03_014_jr_8013FFD8.o": 0.078, - "build/src/ov_SC03_014/ov_SC03_014_jr_80140608.o": 0.206, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015444C.o": 0.086, - "build/src/ov_SC03_014/ov_SC03_014_jr_80154C24.o": 0.196, - "build/src/ov_SC03_014/ov_SC03_014_jr_801588CC.o": 0.105, - "build/src/ov_SC03_014/ov_SC03_014_jr_80159C84.o": 0.079, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015A3C8.o": 0.076, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015AE2C.o": 0.108, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015C32C.o": 0.54, - "build/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.o": 0.305, - "build/src/ov_SC03_014/ov_SC03_014_jr_80171B4C.o": 0.114, - "build/src/ov_SC03_014/ov_SC03_014_jr_801734BC.o": 0.23, - "build/src/ov_SC03_014/ov_SC03_014_jr_801789AC.o": 0.069, - "build/src/ov_SC03_014/ov_SC03_014_jr_80178D40.o": 0.108, - "build/src/ov_SC03_014/ov_SC03_014_jr_8017A4AC.o": 0.079, - "build/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.o": 0.192, - "build/src/ov_SC03_014/ov_SC03_014_jr_8017EB7C.o": 0.232, - "build/src/ov_SC03_014/ov_SC03_014_jr_80184440.o": 0.066, - "build/src/ov_SC03_014/ov_SC03_014_jr_801848E4.o": 0.323, - "build/src/ov_SC03_014/ov_SC03_014_o0b.o": 0.07, - "build/src/ov_SC03_014/ov_SC03_014_o0c.o": 0.073, - "build/src/ov_SC03_014/ov_SC03_014_o0d.o": 0.07, - "build/src/ov_SC03_014/ov_SC03_014_o0e.o": 0.084, - "build/src/ov_SC03_015/ov_SC03_015.o": 0.137, - "build/src/ov_SC03_015/ov_SC03_015_after.o": 0.592, - "build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.449, - "build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.067, - "build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.066, - "build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.145, - "build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.17, - "build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.136, - "build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.087, - "build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.074, - "build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.2, - "build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.079, - "build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.199, - "build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.1, - "build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.08, - "build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.081, - "build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.11, - "build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.53, - "build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.323, - "build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.117, - "build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.226, - "build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.072, - "build/src/ov_SC03_015/ov_SC03_015_jr_80178D40.o": 0.125, - "build/src/ov_SC03_015/ov_SC03_015_jr_8017A4AC.o": 0.083, - "build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.187, - "build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.231, - "build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.06, - "build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.309, - "build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.074, - "build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.071, - "build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.068, - "build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.08, - "build/src/ov_SC04_011/ov_SC04_011.o": 0.147, - "build/src/ov_SC04_011/ov_SC04_011_after.o": 0.488, - "build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.406, - "build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.06, - "build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.061, - "build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.136, - "build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.172, - "build/src/ov_SC04_011/ov_SC04_011_jr_8013C98C.o": 0.133, - "build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.086, - "build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.077, - "build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.208, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.081, - "build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.195, - "build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.106, - "build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.077, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.079, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.109, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.412, - "build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.257, - "build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.115, - "build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.194, - "build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.071, - "build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.11, - "build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.072, - "build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.111, - "build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.505, - "build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.067, - "build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.07 + "build/src/800.o": 1.124, + "build/src/800_b.o": 0.121, + "build/src/800_b_2.o": 0.416, + "build/src/800_b_o0a.o": 0.121, + "build/src/800_c.o": 0.273, + "build/src/800b2.o": 0.142, + "build/src/apicard1.o": 0.092, + "build/src/apicard2.o": 0.151, + "build/src/apicard3.o": 0.092, + "build/src/apicard4.o": 0.092, + "build/src/apicard5.o": 0.117, + "build/src/apicard6.o": 0.153, + "build/src/apicard7.o": 0.101, + "build/src/boot.o": 0.118, + "build/src/gap.o": 0.106, + "build/src/libapi1.o": 0.121, + "build/src/libapi2.o": 0.137, + "build/src/libc2_1.o": 0.146, + "build/src/libc2_2.o": 0.093, + "build/src/libcd1.o": 0.138, + "build/src/libcd2.o": 0.153, + "build/src/libetc.o": 0.179, + "build/src/libgpu.o": 0.111, + "build/src/libgpu2.o": 0.123, + "build/src/libgs1.o": 0.131, + "build/src/libgs2.o": 0.099, + "build/src/libgs3.o": 0.096, + "build/src/libgs4.o": 0.128, + "build/src/libgs5.o": 0.091, + "build/src/libgs6.o": 0.154, + "build/src/libgs7.o": 0.111, + "build/src/libgs8.o": 0.113, + "build/src/libgte1.o": 0.096, + "build/src/libgte10.o": 0.088, + "build/src/libgte11.o": 0.108, + "build/src/libgte12.o": 0.097, + "build/src/libgte13.o": 0.125, + "build/src/libgte14.o": 0.139, + "build/src/libgte15.o": 0.134, + "build/src/libgte16.o": 0.098, + "build/src/libgte17.o": 0.119, + "build/src/libgte18.o": 0.087, + "build/src/libgte19.o": 0.151, + "build/src/libgte2.o": 0.088, + "build/src/libgte20.o": 0.161, + "build/src/libgte21.o": 0.104, + "build/src/libgte22.o": 0.092, + "build/src/libgte23.o": 0.088, + "build/src/libgte24.o": 0.122, + "build/src/libgte25.o": 0.102, + "build/src/libgte26.o": 0.155, + "build/src/libgte27.o": 0.092, + "build/src/libgte28.o": 0.122, + "build/src/libgte29.o": 0.093, + "build/src/libgte3.o": 0.135, + "build/src/libgte30.o": 0.128, + "build/src/libgte4.o": 0.119, + "build/src/libgte5.o": 0.076, + "build/src/libgte6.o": 0.131, + "build/src/libgte7.o": 0.079, + "build/src/libgte8.o": 0.092, + "build/src/libgte9.o": 0.08, + "build/src/libmcrd1.o": 0.182, + "build/src/libmcrd2.o": 0.112, + "build/src/libpad1.o": 0.151, + "build/src/libpad2.o": 0.133, + "build/src/sgap.o": 0.105, + "build/src/sgap_2.o": 0.138, + "build/src/sgap_3.o": 0.157, + "build/src/sgap_4.o": 0.164, + "build/src/sgap_5.o": 0.084, + "build/src/sgap_6.o": 0.087, + "build/src/sgap_8.o": 0.087, + "build/src/snd1.o": 0.141, + "build/src/snd10.o": 0.093, + "build/src/snd11.o": 0.087, + "build/src/snd12.o": 0.089, + "build/src/snd2.o": 0.136, + "build/src/snd3.o": 0.1, + "build/src/snd4.o": 0.117, + "build/src/snd5.o": 0.088, + "build/src/snd6.o": 0.197, + "build/src/snd7.o": 0.106, + "build/src/snd8.o": 0.079, + "build/src/snd9.o": 0.141, + "build/src/ov_SC03_014/ov_SC03_014.o": 0.18, + "build/src/ov_SC03_014/ov_SC03_014_after.o": 0.861, + "build/src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.o": 0.637, + "build/src/ov_SC03_014/ov_SC03_014_jr_80135888.o": 0.095, + "build/src/ov_SC03_014/ov_SC03_014_jr_80135A4C.o": 0.099, + "build/src/ov_SC03_014/ov_SC03_014_jr_80135D20.o": 0.174, + "build/src/ov_SC03_014/ov_SC03_014_jr_801380E0.o": 0.213, + "build/src/ov_SC03_014/ov_SC03_014_jr_8013C98C.o": 0.16, + "build/src/ov_SC03_014/ov_SC03_014_jr_8013F350.o": 0.119, + "build/src/ov_SC03_014/ov_SC03_014_jr_8013FFD8.o": 0.111, + "build/src/ov_SC03_014/ov_SC03_014_jr_80140608.o": 0.238, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015444C.o": 0.116, + "build/src/ov_SC03_014/ov_SC03_014_jr_80154C24.o": 0.261, + "build/src/ov_SC03_014/ov_SC03_014_jr_801588CC.o": 0.143, + "build/src/ov_SC03_014/ov_SC03_014_jr_80159C84.o": 0.104, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015A3C8.o": 0.136, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015AE2C.o": 0.121, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015C32C.o": 0.635, + "build/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.o": 0.481, + "build/src/ov_SC03_014/ov_SC03_014_jr_80171B4C.o": 0.157, + "build/src/ov_SC03_014/ov_SC03_014_jr_801734BC.o": 0.312, + "build/src/ov_SC03_014/ov_SC03_014_jr_801789AC.o": 0.096, + "build/src/ov_SC03_014/ov_SC03_014_jr_80178D40.o": 0.148, + "build/src/ov_SC03_014/ov_SC03_014_jr_8017A4AC.o": 0.122, + "build/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.o": 0.316, + "build/src/ov_SC03_014/ov_SC03_014_jr_8017EB7C.o": 0.273, + "build/src/ov_SC03_014/ov_SC03_014_jr_80184440.o": 0.07, + "build/src/ov_SC03_014/ov_SC03_014_jr_801848E4.o": 0.394, + "build/src/ov_SC03_014/ov_SC03_014_o0b.o": 0.077, + "build/src/ov_SC03_014/ov_SC03_014_o0c.o": 0.095, + "build/src/ov_SC03_014/ov_SC03_014_o0d.o": 0.107, + "build/src/ov_SC03_014/ov_SC03_014_o0e.o": 0.124, + "build/src/ov_SC03_015/ov_SC03_015.o": 0.174, + "build/src/ov_SC03_015/ov_SC03_015_after.o": 0.815, + "build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.556, + "build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.072, + "build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.126, + "build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.207, + "build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.241, + "build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.221, + "build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.125, + "build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.086, + "build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.303, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.1, + "build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.231, + "build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.178, + "build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.164, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.166, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.118, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.696, + "build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.435, + "build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.136, + "build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.36, + "build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.123, + "build/src/ov_SC03_015/ov_SC03_015_jr_80178D40.o": 0.144, + "build/src/ov_SC03_015/ov_SC03_015_jr_8017A4AC.o": 0.126, + "build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.237, + "build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.319, + "build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.078, + "build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.38, + "build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.077, + "build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.159, + "build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.11, + "build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.132, + "build/src/ov_SC04_011/ov_SC04_011.o": 0.207, + "build/src/ov_SC04_011/ov_SC04_011_after.o": 0.713, + "build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.548, + "build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.072, + "build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.114, + "build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.199, + "build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.205, + "build/src/ov_SC04_011/ov_SC04_011_jr_8013C98C.o": 0.184, + "build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.145, + "build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.118, + "build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.367, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.17, + "build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.242, + "build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.124, + "build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.151, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.127, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.182, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.674, + "build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.42, + "build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.163, + "build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.323, + "build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.121, + "build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.162, + "build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.124, + "build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.203, + "build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.839, + "build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.124, + "build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.11 }, "ok": true, - "seconds": 2.7 + "seconds": 4.1 } diff --git a/.run/P36/delever/ledger.jsonl b/.run/P36/delever/ledger.jsonl index 4ac988590..060a02ba9 100644 --- a/.run/P36/delever/ledger.jsonl +++ b/.run/P36/delever/ledger.jsonl @@ -29016,3 +29016,20 @@ {"ts": "2026-09-10 19:11:24", "label": "c51p", "rung": "E", "calib": {"head": "94520756e", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC07_007/ov_SC07_007.c", "fn": "func_8012E364", "addr": 2148721508, "aliases": null, "header": false, "includers": 0, "nhash_before": "bb7b35b6a25bfa248c96dc181339ac376b315f45", "nhash_after": "ac7599b22dca07025fc0949dcdd424e700291629", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.c:func_8012E364", "verdict": "LEVER-FREE", "sites": [{"ord": 0, "kind": "pin", "cls": "A", "detail": "$2", "via": "", "line": 1450, "verdict": "NEEDED", "why": "left by the author", "oracle": ""}, {"ord": 1, "kind": "pin", "cls": "A", "detail": "$2", "via": "", "line": 1454, "verdict": "NEEDED", "why": "left by the author", "oracle": ""}], "compiles": 1, "seconds": 0.242, "objects": ["build/src/ov_SC07_007/ov_SC07_007.o"], "before_text": "void func_8012E364(s32 arg0_)\n{\n\n extern s16 D_80126CE0;\n extern s32 D_801C64D8;\n extern s32 D_801C64DC;\n s32 arg0;\n register s32 prev __asm__(\"$5\"); // !FAKE: pin $5 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n register u16 flags __asm__(\"$2\"); // !FAKE: pin $2 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n s32 a;\n s32 diff;\n s32 v;\n register s32 d __asm__(\"$2\"); // !FAKE: pin $2 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n s32 spd;\n s32 e1;\n s32 e2;\n\n arg0 = arg0_;\n *(s16 *)(arg0 + 0x5C) = 0;\n a = D_80126CE0;\n if (a == 0) {\n D_801C64D8 = 0x1000;\n D_801C64DC = 0x1000;\n }\n a = ((0x90 - a) << 12) / 0x90;\n *(s32 *)(arg0 + 0x1C) += 1;\n spd = 0x1000;\n\n diff = D_801C64D8 - a;\n if (diff > 0) {\n D_801C64D8 -= diff >> 2;\n } else if (diff < 0) {\n D_801C64D8 += (-diff) / 4;\n }\n\n prev = D_801C64DC;\n e1 = *(s32 *)(arg0 + 0x20);\n v = D_801C64D8 - prev + spd;\n D_801C64DC = spd;\n flags = *(u16 *)(e1 + 0x2C);\n D_801C64D8 = v;\n *(u16 *)(e1 + 0x2C) = flags | 0x10;\n\n e2 = *(s32 *)(arg0 + 0x20);\n d = __builtin_abs(v);\n *(s16 *)(e2 + 0x1C) = d;\n *(s16 *)(e2 + 0x18) = d;\n *(s16 *)(*(s32 *)(arg0 + 0x20) + 0x1A) = 0x1000;\n}\n", "after_text": "void func_8012E364(s32 arg0_)\n{\n\n extern s16 D_80126CE0;\n extern s32 D_801C64D8;\n extern s32 D_801C64DC;\n s32 arg0;\n s32 prev;\n register u16 flags __asm__(\"$2\"); // !FAKE: pin $2 \u2014 holds $2 across the D_801C64D8 chain, so the $2 suggestion d's pin gives v (local-alloc.c:1822) fails in block_alloc's suggested-reg pass (:1472) (P36 S103 c51 minimum-lever)\n s32 a;\n s32 diff;\n s32 v;\n register s32 d __asm__(\"$2\"); // !FAKE: pin $2 \u2014 combine_regs (local-alloc.c:1722) otherwise ties d into v, which dies at the abs: abssi2 dest==src arm, nop for move (P36 S103 c51 minimum-lever)\n s32 spd;\n s32 e1;\n s32 e2;\n\n arg0 = arg0_;\n *(s16 *)(arg0 + 0x5C) = 0;\n a = D_80126CE0;\n if (a == 0) {\n D_801C64D8 = 0x1000;\n D_801C64DC = 0x1000;\n }\n a = ((0x90 - a) << 12) / 0x90;\n *(s32 *)(arg0 + 0x1C) += 1;\n spd = 0x1000;\n\n diff = D_801C64D8 - a;\n if (diff > 0) {\n D_801C64D8 -= diff >> 2;\n } else if (diff < 0) {\n D_801C64D8 += (-diff) / 4;\n }\n\n prev = D_801C64DC;\n e1 = ((s32 *)arg0)[8];\n v = D_801C64D8 - prev + spd;\n D_801C64DC = spd;\n flags = *(u16 *)(e1 + 0x2C);\n D_801C64D8 = v;\n *(u16 *)(e1 + 0x2C) = flags | 0x10;\n e2 = ((s32 *)arg0)[8];\n d = __builtin_abs(v);\n *(s16 *)(e2 + 0x1C) = d;\n *(s16 *)(e2 + 0x18) = d;\n *(s16 *)(((s32 *)arg0)[8] + 0x1A) = 0x1000;\n}\n"} {"ts": "2026-09-10 19:11:24", "label": "c51p", "rung": "E", "calib": {"head": "94520756e", "stamp": "15956e4a96c4"}, "tu": "src/shared/ov/func_8012E364__6d96fc6c.h", "fn": "func_8012E364", "addr": 2148721508, "aliases": null, "header": true, "includers": 3, "nhash_before": "bb7b35b6a25bfa248c96dc181339ac376b315f45", "nhash_after": "ac7599b22dca07025fc0949dcdd424e700291629", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.c:func_8012E364", "verdict": "LEVER-FREE", "sites": [{"ord": 0, "kind": "pin", "cls": "A", "detail": "$2", "via": "", "line": 11, "verdict": "NEEDED", "why": "left by the author", "oracle": ""}, {"ord": 1, "kind": "pin", "cls": "A", "detail": "$2", "via": "", "line": 15, "verdict": "NEEDED", "why": "left by the author", "oracle": ""}], "compiles": 3, "seconds": 0.871, "objects": ["build/src/ov_SC03_126/ov_SC03_126_jr_8012ACE0.o", "build/src/ov_SC04_021/ov_SC04_021_jr_8012ACE0.o", "build/src/ov_SC05_019/ov_SC05_019_jr_8012ACE0.o"], "before_text": "void func_8012E364(s32 arg0_)\n{\n\n extern s16 D_80126CE0;\n extern s32 D_8018E690;\n extern s32 D_8018E694;\n s32 arg0;\n register s32 prev __asm__(\"$5\"); // !FAKE: pin $5 \u2014 NEEDED DIFFERS (P36 rung A headers1)\n register u16 flags __asm__(\"$2\"); // !FAKE: pin $2 \u2014 NEEDED DIFFERS (P36 rung A headers1)\n s32 a;\n s32 diff;\n s32 v;\n register s32 d __asm__(\"$2\"); // !FAKE: pin $2 \u2014 NEEDED DIFFERS (P36 rung A headers1)\n s32 spd;\n s32 e1;\n s32 e2;\n\n arg0 = arg0_;\n *(s16 *)(arg0 + 0x5C) = 0;\n a = D_80126CE0;\n if (a == 0) {\n D_8018E690 = 0x1000;\n D_8018E694 = 0x1000;\n }\n a = ((0x90 - a) << 12) / 0x90;\n *(s32 *)(arg0 + 0x1C) += 1;\n spd = 0x1000;\n\n diff = D_8018E690 - a;\n if (diff > 0) {\n D_8018E690 -= diff >> 2;\n } else if (diff < 0) {\n D_8018E690 += (-diff) / 4;\n }\n\n prev = D_8018E694;\n e1 = *(s32 *)(arg0 + 0x20);\n v = D_8018E690 - prev + spd;\n D_8018E694 = spd;\n flags = *(u16 *)(e1 + 0x2C);\n D_8018E690 = v;\n *(u16 *)(e1 + 0x2C) = flags | 0x10;\n\n e2 = *(s32 *)(arg0 + 0x20);\n d = __builtin_abs(v);\n *(s16 *)(e2 + 0x1C) = d;\n *(s16 *)(e2 + 0x18) = d;\n *(s16 *)(*(s32 *)(arg0 + 0x20) + 0x1A) = 0x1000;\n}\n", "after_text": "void func_8012E364(s32 arg0_)\n{\n\n extern s16 D_80126CE0;\n extern s32 D_8018E690;\n extern s32 D_8018E694;\n s32 arg0;\n s32 prev;\n register u16 flags __asm__(\"$2\"); // !FAKE: pin $2 \u2014 holds $2 across the D_8018E690 chain, so the $2 suggestion d's pin gives v (local-alloc.c:1822) fails in block_alloc's suggested-reg pass (:1472) (P36 S103 c51 minimum-lever)\n s32 a;\n s32 diff;\n s32 v;\n register s32 d __asm__(\"$2\"); // !FAKE: pin $2 \u2014 combine_regs (local-alloc.c:1722) otherwise ties d into v, which dies at the abs: abssi2 dest==src arm, nop for move (P36 S103 c51 minimum-lever)\n s32 spd;\n s32 e1;\n s32 e2;\n\n arg0 = arg0_;\n *(s16 *)(arg0 + 0x5C) = 0;\n a = D_80126CE0;\n if (a == 0) {\n D_8018E690 = 0x1000;\n D_8018E694 = 0x1000;\n }\n a = ((0x90 - a) << 12) / 0x90;\n *(s32 *)(arg0 + 0x1C) += 1;\n spd = 0x1000;\n\n diff = D_8018E690 - a;\n if (diff > 0) {\n D_8018E690 -= diff >> 2;\n } else if (diff < 0) {\n D_8018E690 += (-diff) / 4;\n }\n\n prev = D_8018E694;\n e1 = ((s32 *)arg0)[8];\n v = D_8018E690 - prev + spd;\n D_8018E694 = spd;\n flags = *(u16 *)(e1 + 0x2C);\n D_8018E690 = v;\n *(u16 *)(e1 + 0x2C) = flags | 0x10;\n e2 = ((s32 *)arg0)[8];\n d = __builtin_abs(v);\n *(s16 *)(e2 + 0x1C) = d;\n *(s16 *)(e2 + 0x18) = d;\n *(s16 *)(((s32 *)arg0)[8] + 0x1A) = 0x1000;\n}\n"} {"ts": "2026-09-10 19:11:25", "label": "c51p", "rung": "E", "calib": {"head": "94520756e", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC01_077/ov_SC01_077_jr_8012ACE0.c", "fn": "func_8012E364", "addr": 2148721508, "aliases": null, "header": false, "includers": 0, "nhash_before": "b296e5493b4723e307010a9254ae302b84daa722", "nhash_after": "ac7599b22dca07025fc0949dcdd424e700291629", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.c:func_8012E364", "verdict": "LEVER-FREE", "sites": [{"ord": 0, "kind": "pin", "cls": "A", "detail": "$2", "via": "", "line": 918, "verdict": "NEEDED", "why": "left by the author", "oracle": ""}, {"ord": 1, "kind": "pin", "cls": "A", "detail": "$2", "via": "", "line": 922, "verdict": "NEEDED", "why": "left by the author", "oracle": ""}], "compiles": 1, "seconds": 0.286, "objects": ["build/src/ov_SC01_077/ov_SC01_077_jr_8012ACE0.o"], "before_text": "void func_8012E364(s32 arg0_)\n{\n s32 arg0;\n register s32 prev __asm__(\"$5\"); // !FAKE: pin $5 \u2014 NEEDED DIFFERS (P36 rung B tus1)\n register u16 flags __asm__(\"$2\"); // !FAKE: pin $2 \u2014 NEEDED DIFFERS (P36 rung B tus1)\n s32 a;\n s32 diff;\n s32 v;\n register s32 d __asm__(\"$2\"); // !FAKE: pin $2 \u2014 NEEDED DIFFERS (P36 rung B tus1)\n s32 spd;\n s32 e1;\n s32 e2;\n\n arg0 = arg0_;\n *(s16 *)(arg0 + 0x5C) = 0;\n a = D_80126CE0;\n if (a == 0) {\n D_801D9498 = 0x1000;\n D_801D949C = 0x1000;\n }\n a = ((0x90 - a) << 12) / 0x90;\n *(s32 *)(arg0 + 0x1C) += 1;\n spd = 0x1000;\n\n diff = D_801D9498 - a;\n if (diff > 0) {\n D_801D9498 -= diff >> 2;\n } else if (diff < 0) {\n D_801D9498 += (-diff) / 4;\n }\n\n prev = D_801D949C;\n e1 = *(s32 *)(arg0 + 0x20);\n v = D_801D9498 - prev + spd;\n D_801D949C = spd;\n flags = *(u16 *)(e1 + 0x2C);\n D_801D9498 = v;\n *(u16 *)(e1 + 0x2C) = flags | 0x10;\n\n e2 = *(s32 *)(arg0 + 0x20);\n d = __builtin_abs(v);\n *(s16 *)(e2 + 0x1C) = d;\n *(s16 *)(e2 + 0x18) = d;\n *(s16 *)(*(s32 *)(arg0 + 0x20) + 0x1A) = 0x1000;\n}\n", "after_text": "void func_8012E364(s32 arg0_)\n{\n\n extern s16 D_80126CE0;\n extern s32 D_801D9498;\n extern s32 D_801D949C;\n s32 arg0;\n s32 prev;\n register u16 flags __asm__(\"$2\"); // !FAKE: pin $2 \u2014 holds $2 across the D_801D9498 chain, so the $2 suggestion d's pin gives v (local-alloc.c:1822) fails in block_alloc's suggested-reg pass (:1472) (P36 S103 c51 minimum-lever)\n s32 a;\n s32 diff;\n s32 v;\n register s32 d __asm__(\"$2\"); // !FAKE: pin $2 \u2014 combine_regs (local-alloc.c:1722) otherwise ties d into v, which dies at the abs: abssi2 dest==src arm, nop for move (P36 S103 c51 minimum-lever)\n s32 spd;\n s32 e1;\n s32 e2;\n\n arg0 = arg0_;\n *(s16 *)(arg0 + 0x5C) = 0;\n a = D_80126CE0;\n if (a == 0) {\n D_801D9498 = 0x1000;\n D_801D949C = 0x1000;\n }\n a = ((0x90 - a) << 12) / 0x90;\n *(s32 *)(arg0 + 0x1C) += 1;\n spd = 0x1000;\n\n diff = D_801D9498 - a;\n if (diff > 0) {\n D_801D9498 -= diff >> 2;\n } else if (diff < 0) {\n D_801D9498 += (-diff) / 4;\n }\n\n prev = D_801D949C;\n e1 = ((s32 *)arg0)[8];\n v = D_801D9498 - prev + spd;\n D_801D949C = spd;\n flags = *(u16 *)(e1 + 0x2C);\n D_801D9498 = v;\n *(u16 *)(e1 + 0x2C) = flags | 0x10;\n e2 = ((s32 *)arg0)[8];\n d = __builtin_abs(v);\n *(s16 *)(e2 + 0x1C) = d;\n *(s16 *)(e2 + 0x18) = d;\n *(s16 *)(((s32 *)arg0)[8] + 0x1A) = 0x1000;\n}\n"} +{"ts": "2026-09-10 21:01:11", "label": "s104_all_part1", "rung": "E", "calib": {"head": "16411105e", "stamp": "15956e4a96c4"}, "tu": "src/md_SC04_027/md_SC04_027.c", "fn": "func_801E8A80", "addr": 2149485184, "aliases": null, "header": false, "includers": 0, "nhash_before": "98a9b1e0f834723ba7631febf44746bf2246e9e7", "nhash_after": "471e23444511f3e78d1f2ddcdc71ea27bdf5c5c2", "source": "delever_regen R12 width flag s32->s16 @9", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.193, "objects": ["build/src/md_SC04_027/md_SC04_027.o"], "before_text": "s32 func_801E8A80(s32 ot, u8 *s, s16 c) {\n\n extern u16 D_8011511A;\n extern u8 D_801EBAEC[];\n extern s32 *D_801EBA64[];\n u8 sp18[72];\n s32 sp60[5];\n s32 sp78[8];\n s32 flag;\n s32 dim;\n s32 dim2;\n register s32 dim3 __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n s32 t;\n s16 i;\n s16 k;\n s32 *p;\n u8 *bp;\n s16 *q;\n s32 r;\n s32 mode;\n\n if (c == 0) {\n flag = 0;\n } else {\n flag = -(D_8011511A != c) & 0xFF;\n }\n\n t = *(s32 *)(s + 0x14);\n if (t < 0) {\n func_80024054((u8 *)t, sp18);\n ot = func_800D2650(ot, sp18, *(s16 *)(s + 0x10), *(s16 *)(s + 0x12), 1,\n flag ? 0x585858 : 0x808080);\n } else {\n p = D_801EBA64[t];\n for (k = 0; k < D_801EBAEC[*(s32 *)(s + 0x14)]; k++) {\n bp = sp18;\n dim = flag;\n for (i = 0; i < 5; i++) {\n if (i == 0) {\n sp60[0] = (((s16 *)p)[0] + *(s16 *)(s + 0x10)) & 0xFFFF |\n ((((s16 *)p)[1] + *(s16 *)(s + 0x12)) << 16);\n } else {\n *(s32 *)(bp + 0x48 + i * 4) = p[i];\n }\n }\n mode = dim ? 3 : 2;\n do {\n ot = func_800D27DC(mode, ot, sp60, 1, 0);\n } while (0);\n p += 5;\n }\n }\n\n i = 0;\n q = *(s16 **)(s + 0x18);\n dim2 = flag;\n for (;;) {\n r = func_801E8D70(*(s32 *)(s + 0x1C), *(s16 *)s, c, i++, sp78);\n if (r == 0) {\n break;\n }\n if (r < 0) {\n func_80024054((u8 *)r, sp18);\n if (dim2 != 0) {\n sp78[0] = 0x585858;\n }\n ot = func_800D2650(ot, sp18, q[0], q[1], 1, sp78[0]);\n } else {\n p = D_801EBA64[r];\n *p = (u16)q[0] | (q[1] << 16);\n ot = func_800D27DC(dim2 ? 3 : 2, ot, p, 1, 0);\n }\n q += 2;\n }\n\n dim3 = flag;\n return func_800D29F8(dim3,\n func_800D27DC(dim3 != 0, ot, (void *)*(s32 *)(s + 4),\n *(s16 *)(s + 0xC), 0),\n (void *)*(s32 *)(s + 8), *(s16 *)(s + 0xE), 0);\n}\n", "after_text": "s32 func_801E8A80(s32 ot, u8 *s, s16 c) {\n\n extern u16 D_8011511A;\n extern u8 D_801EBAEC[];\n extern s32 *D_801EBA64[];\n u8 sp18[72];\n s32 sp60[5];\n s32 sp78[8];\n s16 flag;\n s32 dim;\n s32 dim2;\n s32 dim3;\n s32 t;\n s16 i;\n s16 k;\n s32 *p;\n u8 *bp;\n s16 *q;\n s32 r;\n s32 mode;\n\n if (c == 0) {\n flag = 0;\n } else {\n flag = -(D_8011511A != c) & 0xFF;\n }\n\n t = *(s32 *)(s + 0x14);\n if (t < 0) {\n func_80024054((u8 *)t, sp18);\n ot = func_800D2650(ot, sp18, *(s16 *)(s + 0x10), *(s16 *)(s + 0x12), 1,\n flag ? 0x585858 : 0x808080);\n } else {\n p = D_801EBA64[t];\n for (k = 0; k < D_801EBAEC[*(s32 *)(s + 0x14)]; k++) {\n bp = sp18;\n dim = flag;\n for (i = 0; i < 5; i++) {\n if (i == 0) {\n sp60[0] = (((s16 *)p)[0] + *(s16 *)(s + 0x10)) & 0xFFFF |\n ((((s16 *)p)[1] + *(s16 *)(s + 0x12)) << 16);\n } else {\n *(s32 *)(bp + 0x48 + i * 4) = p[i];\n }\n }\n mode = dim ? 3 : 2;\n do {\n ot = func_800D27DC(mode, ot, sp60, 1, 0);\n } while (0);\n p += 5;\n }\n }\n\n i = 0;\n q = *(s16 **)(s + 0x18);\n dim2 = flag;\n for (;;) {\n r = func_801E8D70(*(s32 *)(s + 0x1C), *(s16 *)s, c, i++, sp78);\n if (r == 0) {\n break;\n }\n if (r < 0) {\n func_80024054((u8 *)r, sp18);\n if (dim2 != 0) {\n sp78[0] = 0x585858;\n }\n ot = func_800D2650(ot, sp18, q[0], q[1], 1, sp78[0]);\n } else {\n p = D_801EBA64[r];\n *p = (u16)q[0] | (q[1] << 16);\n ot = func_800D27DC(dim2 ? 3 : 2, ot, p, 1, 0);\n }\n q += 2;\n }\n\n dim3 = flag;\n return func_800D29F8(dim3,\n func_800D27DC(dim3 != 0, ot, (void *)*(s32 *)(s + 4),\n *(s16 *)(s + 0xC), 0),\n (void *)*(s32 *)(s + 8), *(s16 *)(s + 0xE), 0);\n}\n"} +{"ts": "2026-09-10 21:01:50", "label": "s104_all_part1p", "rung": "E", "calib": {"head": "16411105e", "stamp": "15956e4a96c4"}, "tu": "src/md_SC03_076/md_SC03_076.c", "fn": "func_801F03C0", "addr": 2149516224, "aliases": null, "header": false, "includers": 0, "nhash_before": "98a9b1e0f834723ba7631febf44746bf2246e9e7", "nhash_after": "471e23444511f3e78d1f2ddcdc71ea27bdf5c5c2", "source": "propagate:src/md_SC04_027/md_SC04_027.c:func_801E8A80", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 2.399, "objects": ["build/src/md_SC03_076/md_SC03_076.o"], "before_text": "s32 func_801F03C0(s32 ot, u8 *s, s16 c) {\n\n extern u16 D_8011511A;\n extern u8 D_801F341C[];\n extern s32 *D_801F3394[];\n u8 sp18[72];\n s32 sp60[5];\n s32 sp78[8];\n s32 flag;\n s32 dim;\n s32 dim2;\n register s32 dim3 __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n s32 t;\n s16 i;\n s16 k;\n s32 *p;\n u8 *bp;\n s16 *q;\n s32 r;\n s32 mode;\n\n if (c == 0) {\n flag = 0;\n } else {\n flag = -(D_8011511A != c) & 0xFF;\n }\n\n t = *(s32 *)(s + 0x14);\n if (t < 0) {\n func_80024054((u8 *)t, sp18);\n ot = func_800D2650(ot, sp18, *(s16 *)(s + 0x10), *(s16 *)(s + 0x12), 1,\n flag ? 0x585858 : 0x808080);\n } else {\n p = D_801F3394[t];\n for (k = 0; k < D_801F341C[*(s32 *)(s + 0x14)]; k++) {\n bp = sp18;\n dim = flag;\n for (i = 0; i < 5; i++) {\n if (i == 0) {\n sp60[0] = (((s16 *)p)[0] + *(s16 *)(s + 0x10)) & 0xFFFF |\n ((((s16 *)p)[1] + *(s16 *)(s + 0x12)) << 16);\n } else {\n *(s32 *)(bp + 0x48 + i * 4) = p[i];\n }\n }\n mode = dim ? 3 : 2;\n do {\n ot = func_800D27DC(mode, ot, sp60, 1, 0);\n } while (0);\n p += 5;\n }\n }\n\n i = 0;\n q = *(s16 **)(s + 0x18);\n dim2 = flag;\n for (;;) {\n r = func_801F06B0(*(s32 *)(s + 0x1C), *(s16 *)s, c, i++, sp78);\n if (r == 0) {\n break;\n }\n if (r < 0) {\n func_80024054((u8 *)r, sp18);\n if (dim2 != 0) {\n sp78[0] = 0x585858;\n }\n ot = func_800D2650(ot, sp18, q[0], q[1], 1, sp78[0]);\n } else {\n p = D_801F3394[r];\n *p = (u16)q[0] | (q[1] << 16);\n ot = func_800D27DC(dim2 ? 3 : 2, ot, p, 1, 0);\n }\n q += 2;\n }\n\n dim3 = flag;\n return func_800D29F8(dim3,\n func_800D27DC(dim3 != 0, ot, (void *)*(s32 *)(s + 4),\n *(s16 *)(s + 0xC), 0),\n (void *)*(s32 *)(s + 8), *(s16 *)(s + 0xE), 0);\n}\n", "after_text": "s32 func_801F03C0(s32 ot, u8 *s, s16 c) {\n\n extern u16 D_8011511A;\n extern u8 D_801F341C[];\n extern s32 *D_801F3394[];\n u8 sp18[72];\n s32 sp60[5];\n s32 sp78[8];\n s16 flag;\n s32 dim;\n s32 dim2;\n s32 dim3;\n s32 t;\n s16 i;\n s16 k;\n s32 *p;\n u8 *bp;\n s16 *q;\n s32 r;\n s32 mode;\n\n if (c == 0) {\n flag = 0;\n } else {\n flag = -(D_8011511A != c) & 0xFF;\n }\n\n t = *(s32 *)(s + 0x14);\n if (t < 0) {\n func_80024054((u8 *)t, sp18);\n ot = func_800D2650(ot, sp18, *(s16 *)(s + 0x10), *(s16 *)(s + 0x12), 1,\n flag ? 0x585858 : 0x808080);\n } else {\n p = D_801F3394[t];\n for (k = 0; k < D_801F341C[*(s32 *)(s + 0x14)]; k++) {\n bp = sp18;\n dim = flag;\n for (i = 0; i < 5; i++) {\n if (i == 0) {\n sp60[0] = (((s16 *)p)[0] + *(s16 *)(s + 0x10)) & 0xFFFF |\n ((((s16 *)p)[1] + *(s16 *)(s + 0x12)) << 16);\n } else {\n *(s32 *)(bp + 0x48 + i * 4) = p[i];\n }\n }\n mode = dim ? 3 : 2;\n do {\n ot = func_800D27DC(mode, ot, sp60, 1, 0);\n } while (0);\n p += 5;\n }\n }\n\n i = 0;\n q = *(s16 **)(s + 0x18);\n dim2 = flag;\n for (;;) {\n r = func_801F06B0(*(s32 *)(s + 0x1C), *(s16 *)s, c, i++, sp78);\n if (r == 0) {\n break;\n }\n if (r < 0) {\n func_80024054((u8 *)r, sp18);\n if (dim2 != 0) {\n sp78[0] = 0x585858;\n }\n ot = func_800D2650(ot, sp18, q[0], q[1], 1, sp78[0]);\n } else {\n p = D_801F3394[r];\n *p = (u16)q[0] | (q[1] << 16);\n ot = func_800D27DC(dim2 ? 3 : 2, ot, p, 1, 0);\n }\n q += 2;\n }\n\n dim3 = flag;\n return func_800D29F8(dim3,\n func_800D27DC(dim3 != 0, ot, (void *)*(s32 *)(s + 4),\n *(s16 *)(s + 0xC), 0),\n (void *)*(s32 *)(s + 8), *(s16 *)(s + 0xE), 0);\n}\n"} +{"ts": "2026-09-10 21:01:55", "label": "s104_all_part1p", "rung": "E", "calib": {"head": "16411105e", "stamp": "15956e4a96c4"}, "tu": "src/md_SC03_135/md_SC03_135.c", "fn": "func_801E3540", "addr": 2149463360, "aliases": null, "header": false, "includers": 0, "nhash_before": "98a9b1e0f834723ba7631febf44746bf2246e9e7", "nhash_after": "471e23444511f3e78d1f2ddcdc71ea27bdf5c5c2", "source": "propagate:src/md_SC04_027/md_SC04_027.c:func_801E8A80", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.432, "objects": ["build/src/md_SC03_135/md_SC03_135.o"], "before_text": "s32 func_801E3540(s32 ot, u8 *s, s16 c) {\n\n extern u16 D_8011511A;\n extern u8 D_801E6584[];\n extern s32 *D_801E64FC[];\n u8 sp18[72];\n s32 sp60[5];\n s32 sp78[8];\n s32 flag;\n s32 dim;\n s32 dim2;\n register s32 dim3 __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n s32 t;\n s16 i;\n s16 k;\n s32 *p;\n u8 *bp;\n s16 *q;\n s32 r;\n s32 mode;\n\n if (c == 0) {\n flag = 0;\n } else {\n flag = -(D_8011511A != c) & 0xFF;\n }\n\n t = *(s32 *)(s + 0x14);\n if (t < 0) {\n func_80024054((u8 *)t, sp18);\n ot = func_800D2650(ot, sp18, *(s16 *)(s + 0x10), *(s16 *)(s + 0x12), 1,\n flag ? 0x585858 : 0x808080);\n } else {\n p = D_801E64FC[t];\n for (k = 0; k < D_801E6584[*(s32 *)(s + 0x14)]; k++) {\n bp = sp18;\n dim = flag;\n for (i = 0; i < 5; i++) {\n if (i == 0) {\n sp60[0] = (((s16 *)p)[0] + *(s16 *)(s + 0x10)) & 0xFFFF |\n ((((s16 *)p)[1] + *(s16 *)(s + 0x12)) << 16);\n } else {\n *(s32 *)(bp + 0x48 + i * 4) = p[i];\n }\n }\n mode = dim ? 3 : 2;\n do {\n ot = func_800D27DC(mode, ot, sp60, 1, 0);\n } while (0);\n p += 5;\n }\n }\n\n i = 0;\n q = *(s16 **)(s + 0x18);\n dim2 = flag;\n for (;;) {\n r = func_801E3830(*(s32 *)(s + 0x1C), *(s16 *)s, c, i++, sp78);\n if (r == 0) {\n break;\n }\n if (r < 0) {\n func_80024054((u8 *)r, sp18);\n if (dim2 != 0) {\n sp78[0] = 0x585858;\n }\n ot = func_800D2650(ot, sp18, q[0], q[1], 1, sp78[0]);\n } else {\n p = D_801E64FC[r];\n *p = (u16)q[0] | (q[1] << 16);\n ot = func_800D27DC(dim2 ? 3 : 2, ot, p, 1, 0);\n }\n q += 2;\n }\n\n dim3 = flag;\n return func_800D29F8(dim3,\n func_800D27DC(dim3 != 0, ot, (void *)*(s32 *)(s + 4),\n *(s16 *)(s + 0xC), 0),\n (void *)*(s32 *)(s + 8), *(s16 *)(s + 0xE), 0);\n}\n", "after_text": "s32 func_801E3540(s32 ot, u8 *s, s16 c) {\n\n extern u16 D_8011511A;\n extern u8 D_801E6584[];\n extern s32 *D_801E64FC[];\n u8 sp18[72];\n s32 sp60[5];\n s32 sp78[8];\n s16 flag;\n s32 dim;\n s32 dim2;\n s32 dim3;\n s32 t;\n s16 i;\n s16 k;\n s32 *p;\n u8 *bp;\n s16 *q;\n s32 r;\n s32 mode;\n\n if (c == 0) {\n flag = 0;\n } else {\n flag = -(D_8011511A != c) & 0xFF;\n }\n\n t = *(s32 *)(s + 0x14);\n if (t < 0) {\n func_80024054((u8 *)t, sp18);\n ot = func_800D2650(ot, sp18, *(s16 *)(s + 0x10), *(s16 *)(s + 0x12), 1,\n flag ? 0x585858 : 0x808080);\n } else {\n p = D_801E64FC[t];\n for (k = 0; k < D_801E6584[*(s32 *)(s + 0x14)]; k++) {\n bp = sp18;\n dim = flag;\n for (i = 0; i < 5; i++) {\n if (i == 0) {\n sp60[0] = (((s16 *)p)[0] + *(s16 *)(s + 0x10)) & 0xFFFF |\n ((((s16 *)p)[1] + *(s16 *)(s + 0x12)) << 16);\n } else {\n *(s32 *)(bp + 0x48 + i * 4) = p[i];\n }\n }\n mode = dim ? 3 : 2;\n do {\n ot = func_800D27DC(mode, ot, sp60, 1, 0);\n } while (0);\n p += 5;\n }\n }\n\n i = 0;\n q = *(s16 **)(s + 0x18);\n dim2 = flag;\n for (;;) {\n r = func_801E3830(*(s32 *)(s + 0x1C), *(s16 *)s, c, i++, sp78);\n if (r == 0) {\n break;\n }\n if (r < 0) {\n func_80024054((u8 *)r, sp18);\n if (dim2 != 0) {\n sp78[0] = 0x585858;\n }\n ot = func_800D2650(ot, sp18, q[0], q[1], 1, sp78[0]);\n } else {\n p = D_801E64FC[r];\n *p = (u16)q[0] | (q[1] << 16);\n ot = func_800D27DC(dim2 ? 3 : 2, ot, p, 1, 0);\n }\n q += 2;\n }\n\n dim3 = flag;\n return func_800D29F8(dim3,\n func_800D27DC(dim3 != 0, ot, (void *)*(s32 *)(s + 4),\n *(s16 *)(s + 0xC), 0),\n (void *)*(s32 *)(s + 8), *(s16 *)(s + 0xE), 0);\n}\n"} +{"ts": "2026-09-10 21:01:55", "label": "s104_all_part1p", "rung": "E", "calib": {"head": "16411105e", "stamp": "15956e4a96c4"}, "tu": "src/md_SC05_026/md_SC05_026.c", "fn": "func_801EE8E0", "addr": 2149509344, "aliases": null, "header": false, "includers": 0, "nhash_before": "98a9b1e0f834723ba7631febf44746bf2246e9e7", "nhash_after": "471e23444511f3e78d1f2ddcdc71ea27bdf5c5c2", "source": "propagate:src/md_SC04_027/md_SC04_027.c:func_801E8A80", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.154, "objects": ["build/src/md_SC05_026/md_SC05_026.o"], "before_text": "s32 func_801EE8E0(s32 ot, u8 *s, s16 c) {\n\n extern u16 D_8011511A;\n extern u8 D_801F1974[];\n extern s32 *D_801F18EC[];\n u8 sp18[72];\n s32 sp60[5];\n s32 sp78[8];\n s32 flag;\n s32 dim;\n s32 dim2;\n register s32 dim3 __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n s32 t;\n s16 i;\n s16 k;\n s32 *p;\n u8 *bp;\n s16 *q;\n s32 r;\n s32 mode;\n\n if (c == 0) {\n flag = 0;\n } else {\n flag = -(D_8011511A != c) & 0xFF;\n }\n\n t = *(s32 *)(s + 0x14);\n if (t < 0) {\n func_80024054((u8 *)t, sp18);\n ot = func_800D2650(ot, sp18, *(s16 *)(s + 0x10), *(s16 *)(s + 0x12), 1,\n flag ? 0x585858 : 0x808080);\n } else {\n p = D_801F18EC[t];\n for (k = 0; k < D_801F1974[*(s32 *)(s + 0x14)]; k++) {\n bp = sp18;\n dim = flag;\n for (i = 0; i < 5; i++) {\n if (i == 0) {\n sp60[0] = (((s16 *)p)[0] + *(s16 *)(s + 0x10)) & 0xFFFF |\n ((((s16 *)p)[1] + *(s16 *)(s + 0x12)) << 16);\n } else {\n *(s32 *)(bp + 0x48 + i * 4) = p[i];\n }\n }\n mode = dim ? 3 : 2;\n do {\n ot = func_800D27DC(mode, ot, sp60, 1, 0);\n } while (0);\n p += 5;\n }\n }\n\n i = 0;\n q = *(s16 **)(s + 0x18);\n dim2 = flag;\n for (;;) {\n r = func_801EEBD0(*(s32 *)(s + 0x1C), *(s16 *)s, c, i++, sp78);\n if (r == 0) {\n break;\n }\n if (r < 0) {\n func_80024054((u8 *)r, sp18);\n if (dim2 != 0) {\n sp78[0] = 0x585858;\n }\n ot = func_800D2650(ot, sp18, q[0], q[1], 1, sp78[0]);\n } else {\n p = D_801F18EC[r];\n *p = (u16)q[0] | (q[1] << 16);\n ot = func_800D27DC(dim2 ? 3 : 2, ot, p, 1, 0);\n }\n q += 2;\n }\n\n dim3 = flag;\n return func_800D29F8(dim3,\n func_800D27DC(dim3 != 0, ot, (void *)*(s32 *)(s + 4),\n *(s16 *)(s + 0xC), 0),\n (void *)*(s32 *)(s + 8), *(s16 *)(s + 0xE), 0);\n}\n", "after_text": "s32 func_801EE8E0(s32 ot, u8 *s, s16 c) {\n\n extern u16 D_8011511A;\n extern u8 D_801F1974[];\n extern s32 *D_801F18EC[];\n u8 sp18[72];\n s32 sp60[5];\n s32 sp78[8];\n s16 flag;\n s32 dim;\n s32 dim2;\n s32 dim3;\n s32 t;\n s16 i;\n s16 k;\n s32 *p;\n u8 *bp;\n s16 *q;\n s32 r;\n s32 mode;\n\n if (c == 0) {\n flag = 0;\n } else {\n flag = -(D_8011511A != c) & 0xFF;\n }\n\n t = *(s32 *)(s + 0x14);\n if (t < 0) {\n func_80024054((u8 *)t, sp18);\n ot = func_800D2650(ot, sp18, *(s16 *)(s + 0x10), *(s16 *)(s + 0x12), 1,\n flag ? 0x585858 : 0x808080);\n } else {\n p = D_801F18EC[t];\n for (k = 0; k < D_801F1974[*(s32 *)(s + 0x14)]; k++) {\n bp = sp18;\n dim = flag;\n for (i = 0; i < 5; i++) {\n if (i == 0) {\n sp60[0] = (((s16 *)p)[0] + *(s16 *)(s + 0x10)) & 0xFFFF |\n ((((s16 *)p)[1] + *(s16 *)(s + 0x12)) << 16);\n } else {\n *(s32 *)(bp + 0x48 + i * 4) = p[i];\n }\n }\n mode = dim ? 3 : 2;\n do {\n ot = func_800D27DC(mode, ot, sp60, 1, 0);\n } while (0);\n p += 5;\n }\n }\n\n i = 0;\n q = *(s16 **)(s + 0x18);\n dim2 = flag;\n for (;;) {\n r = func_801EEBD0(*(s32 *)(s + 0x1C), *(s16 *)s, c, i++, sp78);\n if (r == 0) {\n break;\n }\n if (r < 0) {\n func_80024054((u8 *)r, sp18);\n if (dim2 != 0) {\n sp78[0] = 0x585858;\n }\n ot = func_800D2650(ot, sp18, q[0], q[1], 1, sp78[0]);\n } else {\n p = D_801F18EC[r];\n *p = (u16)q[0] | (q[1] << 16);\n ot = func_800D27DC(dim2 ? 3 : 2, ot, p, 1, 0);\n }\n q += 2;\n }\n\n dim3 = flag;\n return func_800D29F8(dim3,\n func_800D27DC(dim3 != 0, ot, (void *)*(s32 *)(s + 4),\n *(s16 *)(s + 0xC), 0),\n (void *)*(s32 *)(s + 8), *(s16 *)(s + 0xE), 0);\n}\n"} +{"ts": "2026-09-10 21:01:57", "label": "s104_all_part1", "rung": "E", "calib": {"head": "16411105e", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC03_001/ov_SC03_001_jr_8018A3A8.c", "fn": "func_8018AEE8", "addr": 2149101288, "aliases": null, "header": false, "includers": 0, "nhash_before": "bfe22fe907865521ec2f0e4ef5d37bc7b4016b6c", "nhash_after": "9110ea28a08ef0f901b6e09de1e5a9989bb6b361", "source": "delever_regen R12 width byteVal s32->s16 @22", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.129, "objects": ["build/src/ov_SC03_001/ov_SC03_001_jr_8018A3A8.o"], "before_text": "s32 func_8018AEE8(void) {\n\n extern s32 func_80014ED4(s32 a0);\n extern s32 func_80015018(s32 a0);\n extern s16 func_8014168C(s16 a0);\n extern s32 func_8018C000(s32 a0, s16 a1);\n extern void func_8002D4C8(s32 a0, s32 a1);\n extern void func_801898E4(void);\n\n extern s32 D_801EF1E0;\n extern u16 D_8011511A;\n extern u16 D_80115120;\n extern u16 D_80115122;\n extern u8 D_80115138[];\n extern u8 D_80115140[];\n extern u8 D_8011514E;\n extern u8 D_80115143;\n\n s32 flags;\n s32 pad;\n s16 effectVal;\n s32 byteVal;\n s16 changed;\n u16 *p;\n u8 *pcur;\n u8 *pmax;\n s16 ret;\n s32 v;\n u8 b;\n u8 bb;\n u8 m;\n s16 d;\n register s32 zr __asm__(\"$0\"); // !FAKE: pin $0 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n\n changed = 0;\n flags = func_80014ED4(0);\n if ((u16)flags != 0) {\n D_801EF1E0 = 0;\n }\n pad = func_80015018(0);\n p = &D_8011511A;\n effectVal = func_8014168C(*(s16 *)p);\n byteVal = D_80115138[*p];\n\n if (flags & 0x40) {\n ret = func_8018C000(byteVal, effectVal);\n {\n s16 ret2 = ret;\n return ret & -(ret2 != 0);\n }\n } else if (flags & 0x10) {\n pad = byteVal + zr;\n if (pad < 7) {\n return -1;\n }\n func_8002D4C8(0x473, 0);\n if (pad != 0xD) {\n *p = 0;\n } else {\n *p = 1;\n }\n return 0;\n } else {\n pcur = (u8 *)&D_8011511A + (*p * 2 + 0x2E);\n pmax = (u8 *)&D_8011511A + (*p * 2 + 0x3E);\n\n if ((u16)pad != 0) {\n if ((u16)pad == D_80115120) {\n if (--D_80115122 == 0) {\n flags = pad & 0xF000;\n D_80115122 = 3;\n }\n } else {\n D_80115120 = pad;\n D_80115122 = 8;\n }\n } else {\n D_80115120 = 0;\n D_80115122 = 0xC;\n }\n\n if (flags & 0x1000) {\n v = pcur[0] - 1;\n pcur[0] = v;\n changed = 1;\n if ((u8)v >= 0x80) {\n if (byteVal < 10) {\n pcur[0] = pmax[0] - 1;\n } else {\n pcur[0] = 0;\n changed = 0;\n }\n }\n }\n if (flags & 0x4000) {\n b = pcur[0];\n v = b + 1;\n pcur[0] = v;\n changed = 1;\n if ((u8)v >= pmax[0]) {\n if (byteVal < 10) {\n pcur[0] = 0;\n } else {\n pcur[0] = b;\n changed = 0;\n }\n }\n }\n\n if (byteVal == 7 || byteVal == 8) {\n if (flags & 0x8000) {\n v = pcur[1] - 1;\n pcur[1] = v;\n changed = 1;\n if ((u8)v > 0x7F) {\n pcur[1] = pmax[1] - 1;\n }\n }\n if (flags & 0x2000) {\n v = pcur[1] + 1;\n pcur[1] = v;\n changed = 1;\n if (pmax[1] <= (u8)v) {\n pcur[1] = 0;\n }\n }\n } else {\n u16 idx2;\n bb = pcur[0];\n idx2 = D_8011511A;\n m = D_80115140[idx2];\n d = (s8)bb - (s8)m;\n if (d >= 6) {\n D_80115140[idx2] = bb - 5;\n } else if (d < 0) {\n D_80115140[idx2] = bb;\n }\n }\n\n if (changed != 0) {\n func_8002D4C8(0x45A, 0);\n if (byteVal + zr == 0xC) {\n D_8011514E = 0;\n D_80115143 = 0;\n func_801898E4();\n }\n }\n return 0;\n }\n}\n", "after_text": "s32 func_8018AEE8(void) {\n\n extern s32 func_80014ED4(s32 a0);\n extern s32 func_80015018(s32 a0);\n extern s16 func_8014168C(s16 a0);\n extern s32 func_8018C000(s32 a0, s16 a1);\n extern void func_8002D4C8(s32 a0, s32 a1);\n extern void func_801898E4(void);\n\n extern s32 D_801EF1E0;\n extern u16 D_8011511A;\n extern u16 D_80115120;\n extern u16 D_80115122;\n extern u8 D_80115138[];\n extern u8 D_80115140[];\n extern u8 D_8011514E;\n extern u8 D_80115143;\n\n s32 flags;\n s32 pad;\n s16 effectVal;\n s16 byteVal;\n s16 changed;\n u16 *p;\n u8 *pcur;\n u8 *pmax;\n s16 ret;\n s32 v;\n u8 b;\n u8 bb;\n u8 m;\n s16 d;\n\n changed = 0;\n flags = func_80014ED4(0);\n if ((u16)flags != 0) {\n D_801EF1E0 = 0;\n }\n pad = func_80015018(0);\n p = &D_8011511A;\n effectVal = func_8014168C(*(s16 *)p);\n byteVal = D_80115138[*p];\n\n if (flags & 0x40) {\n ret = func_8018C000(byteVal, effectVal);\n {\n s16 ret2 = ret;\n return ret & -(ret2 != 0);\n }\n } else if (flags & 0x10) {\n pad = byteVal + 0;\n if (pad < 7) {\n return -1;\n }\n func_8002D4C8(0x473, 0);\n if (pad != 0xD) {\n *p = 0;\n } else {\n *p = 1;\n }\n return 0;\n } else {\n pcur = (u8 *)&D_8011511A + (*p * 2 + 0x2E);\n pmax = (u8 *)&D_8011511A + (*p * 2 + 0x3E);\n\n if ((u16)pad != 0) {\n if ((u16)pad == D_80115120) {\n if (--D_80115122 == 0) {\n flags = pad & 0xF000;\n D_80115122 = 3;\n }\n } else {\n D_80115120 = pad;\n D_80115122 = 8;\n }\n } else {\n D_80115120 = 0;\n D_80115122 = 0xC;\n }\n\n if (flags & 0x1000) {\n v = pcur[0] - 1;\n pcur[0] = v;\n changed = 1;\n if ((u8)v >= 0x80) {\n if (byteVal < 10) {\n pcur[0] = pmax[0] - 1;\n } else {\n pcur[0] = 0;\n changed = 0;\n }\n }\n }\n if (flags & 0x4000) {\n b = pcur[0];\n v = b + 1;\n pcur[0] = v;\n changed = 1;\n if ((u8)v >= pmax[0]) {\n if (byteVal < 10) {\n pcur[0] = 0;\n } else {\n pcur[0] = b;\n changed = 0;\n }\n }\n }\n\n if (byteVal == 7 || byteVal == 8) {\n if (flags & 0x8000) {\n v = pcur[1] - 1;\n pcur[1] = v;\n changed = 1;\n if ((u8)v > 0x7F) {\n pcur[1] = pmax[1] - 1;\n }\n }\n if (flags & 0x2000) {\n v = pcur[1] + 1;\n pcur[1] = v;\n changed = 1;\n if (pmax[1] <= (u8)v) {\n pcur[1] = 0;\n }\n }\n } else {\n u16 idx2;\n bb = pcur[0];\n idx2 = D_8011511A;\n m = D_80115140[idx2];\n d = (s8)bb - (s8)m;\n if (d >= 6) {\n D_80115140[idx2] = bb - 5;\n } else if (d < 0) {\n D_80115140[idx2] = bb;\n }\n }\n\n if (changed != 0) {\n func_8002D4C8(0x45A, 0);\n if (byteVal + 0 == 0xC) {\n D_8011514E = 0;\n D_80115143 = 0;\n func_801898E4();\n }\n }\n return 0;\n }\n}\n"} +{"ts": "2026-09-10 21:02:28", "label": "s104_all_part1p", "rung": "E", "calib": {"head": "16411105e", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC03_124/ov_SC03_124_jr_80187010.c", "fn": "func_80187B50", "addr": 2149088080, "aliases": null, "header": false, "includers": 0, "nhash_before": "bfe22fe907865521ec2f0e4ef5d37bc7b4016b6c", "nhash_after": "9110ea28a08ef0f901b6e09de1e5a9989bb6b361", "source": "propagate:src/ov_SC03_001/ov_SC03_001_jr_8018A3A8.c:func_8018AEE8", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.113, "objects": ["build/src/ov_SC03_124/ov_SC03_124_jr_80187010.o"], "before_text": "s32 func_80187B50(void) {\n\n extern s32 func_80014ED4(s32 a0);\n extern s32 func_80015018(s32 a0);\n extern s16 func_8014168C(s16 a0);\n extern s32 func_80188C68(s32 a0, s16 a1);\n extern void func_8002D4C8(s32 a0, s32 a1);\n extern void func_8018654C(void);\n\n extern s32 D_801E2358;\n extern u16 D_8011511A;\n extern u16 D_80115120;\n extern u16 D_80115122;\n extern u8 D_80115138[];\n extern u8 D_80115140[];\n extern u8 D_8011514E;\n extern u8 D_80115143;\n\n s32 flags;\n s32 pad;\n s16 effectVal;\n s32 byteVal;\n s16 changed;\n u16 *p;\n u8 *pcur;\n u8 *pmax;\n s16 ret;\n s32 v;\n u8 b;\n u8 bb;\n u8 m;\n s16 d;\n register s32 zr __asm__(\"$0\"); // !FAKE: pin $0 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n\n changed = 0;\n flags = func_80014ED4(0);\n if ((u16)flags != 0) {\n D_801E2358 = 0;\n }\n pad = func_80015018(0);\n p = &D_8011511A;\n effectVal = func_8014168C(*(s16 *)p);\n byteVal = D_80115138[*p];\n\n if (flags & 0x40) {\n ret = func_80188C68(byteVal, effectVal);\n {\n s16 ret2 = ret;\n return ret & -(ret2 != 0);\n }\n } else if (flags & 0x10) {\n pad = byteVal + zr;\n if (pad < 7) {\n return -1;\n }\n func_8002D4C8(0x473, 0);\n if (pad != 0xD) {\n *p = 0;\n } else {\n *p = 1;\n }\n return 0;\n } else {\n pcur = (u8 *)&D_8011511A + (*p * 2 + 0x2E);\n pmax = (u8 *)&D_8011511A + (*p * 2 + 0x3E);\n\n if ((u16)pad != 0) {\n if ((u16)pad == D_80115120) {\n if (--D_80115122 == 0) {\n flags = pad & 0xF000;\n D_80115122 = 3;\n }\n } else {\n D_80115120 = pad;\n D_80115122 = 8;\n }\n } else {\n D_80115120 = 0;\n D_80115122 = 0xC;\n }\n\n if (flags & 0x1000) {\n v = pcur[0] - 1;\n pcur[0] = v;\n changed = 1;\n if ((u8)v >= 0x80) {\n if (byteVal < 10) {\n pcur[0] = pmax[0] - 1;\n } else {\n pcur[0] = 0;\n changed = 0;\n }\n }\n }\n if (flags & 0x4000) {\n b = pcur[0];\n v = b + 1;\n pcur[0] = v;\n changed = 1;\n if ((u8)v >= pmax[0]) {\n if (byteVal < 10) {\n pcur[0] = 0;\n } else {\n pcur[0] = b;\n changed = 0;\n }\n }\n }\n\n if (byteVal == 7 || byteVal == 8) {\n if (flags & 0x8000) {\n v = pcur[1] - 1;\n pcur[1] = v;\n changed = 1;\n if ((u8)v > 0x7F) {\n pcur[1] = pmax[1] - 1;\n }\n }\n if (flags & 0x2000) {\n v = pcur[1] + 1;\n pcur[1] = v;\n changed = 1;\n if (pmax[1] <= (u8)v) {\n pcur[1] = 0;\n }\n }\n } else {\n u16 idx2;\n bb = pcur[0];\n idx2 = D_8011511A;\n m = D_80115140[idx2];\n d = (s8)bb - (s8)m;\n if (d >= 6) {\n D_80115140[idx2] = bb - 5;\n } else if (d < 0) {\n D_80115140[idx2] = bb;\n }\n }\n\n if (changed != 0) {\n func_8002D4C8(0x45A, 0);\n if (byteVal + zr == 0xC) {\n D_8011514E = 0;\n D_80115143 = 0;\n func_8018654C();\n }\n }\n return 0;\n }\n}\n", "after_text": "s32 func_80187B50(void) {\n\n extern s32 func_80014ED4(s32 a0);\n extern s32 func_80015018(s32 a0);\n extern s16 func_8014168C(s16 a0);\n extern s32 func_80188C68(s32 a0, s16 a1);\n extern void func_8002D4C8(s32 a0, s32 a1);\n extern void func_8018654C(void);\n\n extern s32 D_801E2358;\n extern u16 D_8011511A;\n extern u16 D_80115120;\n extern u16 D_80115122;\n extern u8 D_80115138[];\n extern u8 D_80115140[];\n extern u8 D_8011514E;\n extern u8 D_80115143;\n\n s32 flags;\n s32 pad;\n s16 effectVal;\n s16 byteVal;\n s16 changed;\n u16 *p;\n u8 *pcur;\n u8 *pmax;\n s16 ret;\n s32 v;\n u8 b;\n u8 bb;\n u8 m;\n s16 d;\n\n changed = 0;\n flags = func_80014ED4(0);\n if ((u16)flags != 0) {\n D_801E2358 = 0;\n }\n pad = func_80015018(0);\n p = &D_8011511A;\n effectVal = func_8014168C(*(s16 *)p);\n byteVal = D_80115138[*p];\n\n if (flags & 0x40) {\n ret = func_80188C68(byteVal, effectVal);\n {\n s16 ret2 = ret;\n return ret & -(ret2 != 0);\n }\n } else if (flags & 0x10) {\n pad = byteVal + 0;\n if (pad < 7) {\n return -1;\n }\n func_8002D4C8(0x473, 0);\n if (pad != 0xD) {\n *p = 0;\n } else {\n *p = 1;\n }\n return 0;\n } else {\n pcur = (u8 *)&D_8011511A + (*p * 2 + 0x2E);\n pmax = (u8 *)&D_8011511A + (*p * 2 + 0x3E);\n\n if ((u16)pad != 0) {\n if ((u16)pad == D_80115120) {\n if (--D_80115122 == 0) {\n flags = pad & 0xF000;\n D_80115122 = 3;\n }\n } else {\n D_80115120 = pad;\n D_80115122 = 8;\n }\n } else {\n D_80115120 = 0;\n D_80115122 = 0xC;\n }\n\n if (flags & 0x1000) {\n v = pcur[0] - 1;\n pcur[0] = v;\n changed = 1;\n if ((u8)v >= 0x80) {\n if (byteVal < 10) {\n pcur[0] = pmax[0] - 1;\n } else {\n pcur[0] = 0;\n changed = 0;\n }\n }\n }\n if (flags & 0x4000) {\n b = pcur[0];\n v = b + 1;\n pcur[0] = v;\n changed = 1;\n if ((u8)v >= pmax[0]) {\n if (byteVal < 10) {\n pcur[0] = 0;\n } else {\n pcur[0] = b;\n changed = 0;\n }\n }\n }\n\n if (byteVal == 7 || byteVal == 8) {\n if (flags & 0x8000) {\n v = pcur[1] - 1;\n pcur[1] = v;\n changed = 1;\n if ((u8)v > 0x7F) {\n pcur[1] = pmax[1] - 1;\n }\n }\n if (flags & 0x2000) {\n v = pcur[1] + 1;\n pcur[1] = v;\n changed = 1;\n if (pmax[1] <= (u8)v) {\n pcur[1] = 0;\n }\n }\n } else {\n u16 idx2;\n bb = pcur[0];\n idx2 = D_8011511A;\n m = D_80115140[idx2];\n d = (s8)bb - (s8)m;\n if (d >= 6) {\n D_80115140[idx2] = bb - 5;\n } else if (d < 0) {\n D_80115140[idx2] = bb;\n }\n }\n\n if (changed != 0) {\n func_8002D4C8(0x45A, 0);\n if (byteVal + 0 == 0xC) {\n D_8011514E = 0;\n D_80115143 = 0;\n func_8018654C();\n }\n }\n return 0;\n }\n}\n"} +{"ts": "2026-09-10 21:02:28", "label": "s104_all_part1p", "rung": "E", "calib": {"head": "16411105e", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC05_017/ov_SC05_017_jr_801875E8.c", "fn": "func_80188128", "addr": 2149089576, "aliases": null, "header": false, "includers": 0, "nhash_before": "bfe22fe907865521ec2f0e4ef5d37bc7b4016b6c", "nhash_after": "9110ea28a08ef0f901b6e09de1e5a9989bb6b361", "source": "propagate:src/ov_SC03_001/ov_SC03_001_jr_8018A3A8.c:func_8018AEE8", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.12, "objects": ["build/src/ov_SC05_017/ov_SC05_017_jr_801875E8.o"], "before_text": "s32 func_80188128(void) {\n\n extern s32 func_80014ED4(s32 a0);\n extern s32 func_80015018(s32 a0);\n extern s16 func_8014168C(s16 a0);\n extern s32 func_80189240(s32 a0, s16 a1);\n extern void func_8002D4C8(s32 a0, s32 a1);\n extern void func_80186B24(void);\n\n extern s32 D_801ED560;\n extern u16 D_8011511A;\n extern u16 D_80115120;\n extern u16 D_80115122;\n extern u8 D_80115138[];\n extern u8 D_80115140[];\n extern u8 D_8011514E;\n extern u8 D_80115143;\n\n s32 flags;\n s32 pad;\n s16 effectVal;\n s32 byteVal;\n s16 changed;\n u16 *p;\n u8 *pcur;\n u8 *pmax;\n s16 ret;\n s32 v;\n u8 b;\n u8 bb;\n u8 m;\n s16 d;\n register s32 zr __asm__(\"$0\"); // !FAKE: pin $0 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n\n changed = 0;\n flags = func_80014ED4(0);\n if ((u16)flags != 0) {\n D_801ED560 = 0;\n }\n pad = func_80015018(0);\n p = &D_8011511A;\n effectVal = func_8014168C(*(s16 *)p);\n byteVal = D_80115138[*p];\n\n if (flags & 0x40) {\n ret = func_80189240(byteVal, effectVal);\n {\n s16 ret2 = ret;\n return ret & -(ret2 != 0);\n }\n } else if (flags & 0x10) {\n pad = byteVal + zr;\n if (pad < 7) {\n return -1;\n }\n func_8002D4C8(0x473, 0);\n if (pad != 0xD) {\n *p = 0;\n } else {\n *p = 1;\n }\n return 0;\n } else {\n pcur = (u8 *)&D_8011511A + (*p * 2 + 0x2E);\n pmax = (u8 *)&D_8011511A + (*p * 2 + 0x3E);\n\n if ((u16)pad != 0) {\n if ((u16)pad == D_80115120) {\n if (--D_80115122 == 0) {\n flags = pad & 0xF000;\n D_80115122 = 3;\n }\n } else {\n D_80115120 = pad;\n D_80115122 = 8;\n }\n } else {\n D_80115120 = 0;\n D_80115122 = 0xC;\n }\n\n if (flags & 0x1000) {\n v = pcur[0] - 1;\n pcur[0] = v;\n changed = 1;\n if ((u8)v >= 0x80) {\n if (byteVal < 10) {\n pcur[0] = pmax[0] - 1;\n } else {\n pcur[0] = 0;\n changed = 0;\n }\n }\n }\n if (flags & 0x4000) {\n b = pcur[0];\n v = b + 1;\n pcur[0] = v;\n changed = 1;\n if ((u8)v >= pmax[0]) {\n if (byteVal < 10) {\n pcur[0] = 0;\n } else {\n pcur[0] = b;\n changed = 0;\n }\n }\n }\n\n if (byteVal == 7 || byteVal == 8) {\n if (flags & 0x8000) {\n v = pcur[1] - 1;\n pcur[1] = v;\n changed = 1;\n if ((u8)v > 0x7F) {\n pcur[1] = pmax[1] - 1;\n }\n }\n if (flags & 0x2000) {\n v = pcur[1] + 1;\n pcur[1] = v;\n changed = 1;\n if (pmax[1] <= (u8)v) {\n pcur[1] = 0;\n }\n }\n } else {\n u16 idx2;\n bb = pcur[0];\n idx2 = D_8011511A;\n m = D_80115140[idx2];\n d = (s8)bb - (s8)m;\n if (d >= 6) {\n D_80115140[idx2] = bb - 5;\n } else if (d < 0) {\n D_80115140[idx2] = bb;\n }\n }\n\n if (changed != 0) {\n func_8002D4C8(0x45A, 0);\n if (byteVal + zr == 0xC) {\n D_8011514E = 0;\n D_80115143 = 0;\n func_80186B24();\n }\n }\n return 0;\n }\n}\n", "after_text": "s32 func_80188128(void) {\n\n extern s32 func_80014ED4(s32 a0);\n extern s32 func_80015018(s32 a0);\n extern s16 func_8014168C(s16 a0);\n extern s32 func_80189240(s32 a0, s16 a1);\n extern void func_8002D4C8(s32 a0, s32 a1);\n extern void func_80186B24(void);\n\n extern s32 D_801ED560;\n extern u16 D_8011511A;\n extern u16 D_80115120;\n extern u16 D_80115122;\n extern u8 D_80115138[];\n extern u8 D_80115140[];\n extern u8 D_8011514E;\n extern u8 D_80115143;\n\n s32 flags;\n s32 pad;\n s16 effectVal;\n s16 byteVal;\n s16 changed;\n u16 *p;\n u8 *pcur;\n u8 *pmax;\n s16 ret;\n s32 v;\n u8 b;\n u8 bb;\n u8 m;\n s16 d;\n\n changed = 0;\n flags = func_80014ED4(0);\n if ((u16)flags != 0) {\n D_801ED560 = 0;\n }\n pad = func_80015018(0);\n p = &D_8011511A;\n effectVal = func_8014168C(*(s16 *)p);\n byteVal = D_80115138[*p];\n\n if (flags & 0x40) {\n ret = func_80189240(byteVal, effectVal);\n {\n s16 ret2 = ret;\n return ret & -(ret2 != 0);\n }\n } else if (flags & 0x10) {\n pad = byteVal + 0;\n if (pad < 7) {\n return -1;\n }\n func_8002D4C8(0x473, 0);\n if (pad != 0xD) {\n *p = 0;\n } else {\n *p = 1;\n }\n return 0;\n } else {\n pcur = (u8 *)&D_8011511A + (*p * 2 + 0x2E);\n pmax = (u8 *)&D_8011511A + (*p * 2 + 0x3E);\n\n if ((u16)pad != 0) {\n if ((u16)pad == D_80115120) {\n if (--D_80115122 == 0) {\n flags = pad & 0xF000;\n D_80115122 = 3;\n }\n } else {\n D_80115120 = pad;\n D_80115122 = 8;\n }\n } else {\n D_80115120 = 0;\n D_80115122 = 0xC;\n }\n\n if (flags & 0x1000) {\n v = pcur[0] - 1;\n pcur[0] = v;\n changed = 1;\n if ((u8)v >= 0x80) {\n if (byteVal < 10) {\n pcur[0] = pmax[0] - 1;\n } else {\n pcur[0] = 0;\n changed = 0;\n }\n }\n }\n if (flags & 0x4000) {\n b = pcur[0];\n v = b + 1;\n pcur[0] = v;\n changed = 1;\n if ((u8)v >= pmax[0]) {\n if (byteVal < 10) {\n pcur[0] = 0;\n } else {\n pcur[0] = b;\n changed = 0;\n }\n }\n }\n\n if (byteVal == 7 || byteVal == 8) {\n if (flags & 0x8000) {\n v = pcur[1] - 1;\n pcur[1] = v;\n changed = 1;\n if ((u8)v > 0x7F) {\n pcur[1] = pmax[1] - 1;\n }\n }\n if (flags & 0x2000) {\n v = pcur[1] + 1;\n pcur[1] = v;\n changed = 1;\n if (pmax[1] <= (u8)v) {\n pcur[1] = 0;\n }\n }\n } else {\n u16 idx2;\n bb = pcur[0];\n idx2 = D_8011511A;\n m = D_80115140[idx2];\n d = (s8)bb - (s8)m;\n if (d >= 6) {\n D_80115140[idx2] = bb - 5;\n } else if (d < 0) {\n D_80115140[idx2] = bb;\n }\n }\n\n if (changed != 0) {\n func_8002D4C8(0x45A, 0);\n if (byteVal + 0 == 0xC) {\n D_8011514E = 0;\n D_80115143 = 0;\n func_80186B24();\n }\n }\n return 0;\n }\n}\n"} +{"ts": "2026-09-10 21:02:29", "label": "s104_all_part1p", "rung": "E", "calib": {"head": "16411105e", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC04_018/ov_SC04_018_jr_801878E8.c", "fn": "func_80188428", "addr": 2149090344, "aliases": null, "header": false, "includers": 0, "nhash_before": "bfe22fe907865521ec2f0e4ef5d37bc7b4016b6c", "nhash_after": "9110ea28a08ef0f901b6e09de1e5a9989bb6b361", "source": "propagate:src/ov_SC03_001/ov_SC03_001_jr_8018A3A8.c:func_8018AEE8", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.242, "objects": ["build/src/ov_SC04_018/ov_SC04_018_jr_801878E8.o", "build/src/ov_SC04_019/ov_SC04_019_jr_801878E8.o"], "before_text": "s32 func_80188428(void) {\n\n extern s32 func_80014ED4(s32 a0);\n extern s32 func_80015018(s32 a0);\n extern s16 func_8014168C(s16 a0);\n extern s32 func_80189540(s32 a0, s16 a1);\n extern void func_8002D4C8(s32 a0, s32 a1);\n extern void func_80186E24(void);\n\n extern s32 D_801E7700;\n extern u16 D_8011511A;\n extern u16 D_80115120;\n extern u16 D_80115122;\n extern u8 D_80115138[];\n extern u8 D_80115140[];\n extern u8 D_8011514E;\n extern u8 D_80115143;\n\n s32 flags;\n s32 pad;\n s16 effectVal;\n s32 byteVal;\n s16 changed;\n u16 *p;\n u8 *pcur;\n u8 *pmax;\n s16 ret;\n s32 v;\n u8 b;\n u8 bb;\n u8 m;\n s16 d;\n register s32 zr __asm__(\"$0\"); // !FAKE: pin $0 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n\n changed = 0;\n flags = func_80014ED4(0);\n if ((u16)flags != 0) {\n D_801E7700 = 0;\n }\n pad = func_80015018(0);\n p = &D_8011511A;\n effectVal = func_8014168C(*(s16 *)p);\n byteVal = D_80115138[*p];\n\n if (flags & 0x40) {\n ret = func_80189540(byteVal, effectVal);\n {\n s16 ret2 = ret;\n return ret & -(ret2 != 0);\n }\n } else if (flags & 0x10) {\n pad = byteVal + zr;\n if (pad < 7) {\n return -1;\n }\n func_8002D4C8(0x473, 0);\n if (pad != 0xD) {\n *p = 0;\n } else {\n *p = 1;\n }\n return 0;\n } else {\n pcur = (u8 *)&D_8011511A + (*p * 2 + 0x2E);\n pmax = (u8 *)&D_8011511A + (*p * 2 + 0x3E);\n\n if ((u16)pad != 0) {\n if ((u16)pad == D_80115120) {\n if (--D_80115122 == 0) {\n flags = pad & 0xF000;\n D_80115122 = 3;\n }\n } else {\n D_80115120 = pad;\n D_80115122 = 8;\n }\n } else {\n D_80115120 = 0;\n D_80115122 = 0xC;\n }\n\n if (flags & 0x1000) {\n v = pcur[0] - 1;\n pcur[0] = v;\n changed = 1;\n if ((u8)v >= 0x80) {\n if (byteVal < 10) {\n pcur[0] = pmax[0] - 1;\n } else {\n pcur[0] = 0;\n changed = 0;\n }\n }\n }\n if (flags & 0x4000) {\n b = pcur[0];\n v = b + 1;\n pcur[0] = v;\n changed = 1;\n if ((u8)v >= pmax[0]) {\n if (byteVal < 10) {\n pcur[0] = 0;\n } else {\n pcur[0] = b;\n changed = 0;\n }\n }\n }\n\n if (byteVal == 7 || byteVal == 8) {\n if (flags & 0x8000) {\n v = pcur[1] - 1;\n pcur[1] = v;\n changed = 1;\n if ((u8)v > 0x7F) {\n pcur[1] = pmax[1] - 1;\n }\n }\n if (flags & 0x2000) {\n v = pcur[1] + 1;\n pcur[1] = v;\n changed = 1;\n if (pmax[1] <= (u8)v) {\n pcur[1] = 0;\n }\n }\n } else {\n u16 idx2;\n bb = pcur[0];\n idx2 = D_8011511A;\n m = D_80115140[idx2];\n d = (s8)bb - (s8)m;\n if (d >= 6) {\n D_80115140[idx2] = bb - 5;\n } else if (d < 0) {\n D_80115140[idx2] = bb;\n }\n }\n\n if (changed != 0) {\n func_8002D4C8(0x45A, 0);\n if (byteVal + zr == 0xC) {\n D_8011514E = 0;\n D_80115143 = 0;\n func_80186E24();\n }\n }\n return 0;\n }\n}\n", "after_text": "s32 func_80188428(void) {\n\n extern s32 func_80014ED4(s32 a0);\n extern s32 func_80015018(s32 a0);\n extern s16 func_8014168C(s16 a0);\n extern s32 func_80189540(s32 a0, s16 a1);\n extern void func_8002D4C8(s32 a0, s32 a1);\n extern void func_80186E24(void);\n\n extern s32 D_801E7700;\n extern u16 D_8011511A;\n extern u16 D_80115120;\n extern u16 D_80115122;\n extern u8 D_80115138[];\n extern u8 D_80115140[];\n extern u8 D_8011514E;\n extern u8 D_80115143;\n\n s32 flags;\n s32 pad;\n s16 effectVal;\n s16 byteVal;\n s16 changed;\n u16 *p;\n u8 *pcur;\n u8 *pmax;\n s16 ret;\n s32 v;\n u8 b;\n u8 bb;\n u8 m;\n s16 d;\n\n changed = 0;\n flags = func_80014ED4(0);\n if ((u16)flags != 0) {\n D_801E7700 = 0;\n }\n pad = func_80015018(0);\n p = &D_8011511A;\n effectVal = func_8014168C(*(s16 *)p);\n byteVal = D_80115138[*p];\n\n if (flags & 0x40) {\n ret = func_80189540(byteVal, effectVal);\n {\n s16 ret2 = ret;\n return ret & -(ret2 != 0);\n }\n } else if (flags & 0x10) {\n pad = byteVal + 0;\n if (pad < 7) {\n return -1;\n }\n func_8002D4C8(0x473, 0);\n if (pad != 0xD) {\n *p = 0;\n } else {\n *p = 1;\n }\n return 0;\n } else {\n pcur = (u8 *)&D_8011511A + (*p * 2 + 0x2E);\n pmax = (u8 *)&D_8011511A + (*p * 2 + 0x3E);\n\n if ((u16)pad != 0) {\n if ((u16)pad == D_80115120) {\n if (--D_80115122 == 0) {\n flags = pad & 0xF000;\n D_80115122 = 3;\n }\n } else {\n D_80115120 = pad;\n D_80115122 = 8;\n }\n } else {\n D_80115120 = 0;\n D_80115122 = 0xC;\n }\n\n if (flags & 0x1000) {\n v = pcur[0] - 1;\n pcur[0] = v;\n changed = 1;\n if ((u8)v >= 0x80) {\n if (byteVal < 10) {\n pcur[0] = pmax[0] - 1;\n } else {\n pcur[0] = 0;\n changed = 0;\n }\n }\n }\n if (flags & 0x4000) {\n b = pcur[0];\n v = b + 1;\n pcur[0] = v;\n changed = 1;\n if ((u8)v >= pmax[0]) {\n if (byteVal < 10) {\n pcur[0] = 0;\n } else {\n pcur[0] = b;\n changed = 0;\n }\n }\n }\n\n if (byteVal == 7 || byteVal == 8) {\n if (flags & 0x8000) {\n v = pcur[1] - 1;\n pcur[1] = v;\n changed = 1;\n if ((u8)v > 0x7F) {\n pcur[1] = pmax[1] - 1;\n }\n }\n if (flags & 0x2000) {\n v = pcur[1] + 1;\n pcur[1] = v;\n changed = 1;\n if (pmax[1] <= (u8)v) {\n pcur[1] = 0;\n }\n }\n } else {\n u16 idx2;\n bb = pcur[0];\n idx2 = D_8011511A;\n m = D_80115140[idx2];\n d = (s8)bb - (s8)m;\n if (d >= 6) {\n D_80115140[idx2] = bb - 5;\n } else if (d < 0) {\n D_80115140[idx2] = bb;\n }\n }\n\n if (changed != 0) {\n func_8002D4C8(0x45A, 0);\n if (byteVal + 0 == 0xC) {\n D_8011514E = 0;\n D_80115143 = 0;\n func_80186E24();\n }\n }\n return 0;\n }\n}\n"} +{"ts": "2026-09-10 21:02:31", "label": "s104_all_part1", "rung": "E", "calib": {"head": "16411105e", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC05_006/ov_SC05_006_jr_8017BEBC.c", "fn": "func_8017EFA4", "addr": 2149052324, "aliases": null, "header": false, "includers": 0, "nhash_before": "15caa9df2333f5b1a08fb166d3eeaeab333393cf", "nhash_after": "76c0bd7bde0a8d1d24b6d4252fe8d888124188f3", "source": "delever_regen R12 width s1 s32->s16 @18", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.184, "objects": ["build/src/ov_SC05_006/ov_SC05_006_jr_8017BEBC.o"], "before_text": "void func_8017EFA4(void *a0)\n{\n extern void func_8012C1B8(void);\n extern void func_8012CAE4(void *a0);\n extern void func_8001C214(s32 a0, s32 a1);\n extern s32 func_80132EF4(s32 a0, s32 a1);\n extern s32 func_8012AD50(void *a0);\n extern void func_8017F16C(void *a0);\n extern s32 rand(void);\n extern u16 D_80126B5E;\n extern u16 D_80126B62;\n extern u16 D_80126B66;\n\n register s32 *tbl __asm__(\"$18\"); // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus8)\n s32 v0;\n s32 v1;\n s32 a1;\n s32 s1;\n\n tbl = *(s32 **)(*(s32 *)((s32)a0 + 0x64) + 0xDC);\n\n s1 = (rand() & 1) + 1;\n\n v0 = ((s32 (*)(void))func_8012C1B8)();\n *(s32 *)((s32)a0 + 0x20) = v0;\n if (v0 == 0\n || tbl == 0\n || (a1 = tbl[s1]) == 0) {\n func_8012CAE4(a0);\n return;\n }\n\n func_8001C214(v0, a1);\n\n *(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x2C) |= 0x10;\n\n {\n s32 spread = (rand() & 0x3F0) + 0xA00;\n v1 = *(s32 *)((s32)a0 + 0x20);\n *(u16 *)(v1 + 0x1C) = spread;\n *(u16 *)(v1 + 0x1A) = spread;\n *(u16 *)(v1 + 0x18) = spread;\n }\n\n {\n s32 spread2 = rand() & 0xFF0;\n *(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x12) = spread2;\n }\n\n *(u16 *)((s32)a0 + 0xFE) = D_80126B5E;\n *(u16 *)((s32)a0 + 0x6) = D_80126B5E;\n *(u16 *)((s32)a0 + 0xA) = D_80126B62;\n *(u16 *)((s32)a0 + 0x100) = D_80126B66;\n *(u16 *)((s32)a0 + 0xE) = D_80126B66;\n\n *(u16 *)((s32)a0 + 0xE2) = (rand() & 0x1C) + 0x18;\n\n *(s32 *)((s32)a0 + 0x14) = 0xFFE80000;\n *(s32 *)((s32)a0 + 0x48) = 0x8000;\n *(s32 *)((s32)a0 + 0x18) = 0x50000;\n\n *(u16 *)((s32)a0 + 0x106) = rand() & 0xF0;\n *(u16 *)((s32)a0 + 0x108) = rand() & 0xF0;\n\n func_8017F16C(a0);\n\n if (s1 != 1) {\n v1 = func_80132EF4((s32)a0, 0x22);\n if (v1 != 0) {\n *(u16 *)(v1 + 0x34) = 0x3001;\n *(s32 *)(v1 + 0x14) = 0xFFFC0000;\n }\n }\n\n func_8012AD50(a0);\n}\n", "after_text": "void func_8017EFA4(void *a0)\n{\n extern void func_8012C1B8(void);\n extern void func_8012CAE4(void *a0);\n extern void func_8001C214(s32 a0, s32 a1);\n extern s32 func_80132EF4(s32 a0, s32 a1);\n extern s32 func_8012AD50(void *a0);\n extern void func_8017F16C(void *a0);\n extern s32 rand(void);\n extern u16 D_80126B5E;\n extern u16 D_80126B62;\n extern u16 D_80126B66;\n\n s32 *tbl;\n s32 v0;\n s32 v1;\n s32 a1;\n s16 s1;\n\n tbl = *(s32 **)(*(s32 *)((s32)a0 + 0x64) + 0xDC);\n\n s1 = (rand() & 1) + 1;\n\n v0 = ((s32 (*)(void))func_8012C1B8)();\n *(s32 *)((s32)a0 + 0x20) = v0;\n if (v0 == 0\n || tbl == 0\n || (a1 = tbl[s1]) == 0) {\n func_8012CAE4(a0);\n return;\n }\n\n func_8001C214(v0, a1);\n\n *(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x2C) |= 0x10;\n\n {\n s32 spread = (rand() & 0x3F0) + 0xA00;\n v1 = *(s32 *)((s32)a0 + 0x20);\n *(u16 *)(v1 + 0x1C) = spread;\n *(u16 *)(v1 + 0x1A) = spread;\n *(u16 *)(v1 + 0x18) = spread;\n }\n\n {\n s32 spread2 = rand() & 0xFF0;\n *(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x12) = spread2;\n }\n\n *(u16 *)((s32)a0 + 0xFE) = D_80126B5E;\n *(u16 *)((s32)a0 + 0x6) = D_80126B5E;\n *(u16 *)((s32)a0 + 0xA) = D_80126B62;\n *(u16 *)((s32)a0 + 0x100) = D_80126B66;\n *(u16 *)((s32)a0 + 0xE) = D_80126B66;\n\n *(u16 *)((s32)a0 + 0xE2) = (rand() & 0x1C) + 0x18;\n\n *(s32 *)((s32)a0 + 0x14) = 0xFFE80000;\n *(s32 *)((s32)a0 + 0x48) = 0x8000;\n *(s32 *)((s32)a0 + 0x18) = 0x50000;\n\n *(u16 *)((s32)a0 + 0x106) = rand() & 0xF0;\n *(u16 *)((s32)a0 + 0x108) = rand() & 0xF0;\n\n func_8017F16C(a0);\n\n if (s1 != 1) {\n v1 = func_80132EF4((s32)a0, 0x22);\n if (v1 != 0) {\n *(u16 *)(v1 + 0x34) = 0x3001;\n *(s32 *)(v1 + 0x14) = 0xFFFC0000;\n }\n }\n\n func_8012AD50(a0);\n}\n"} +{"ts": "2026-09-10 21:03:02", "label": "s104_all_part1p", "rung": "E", "calib": {"head": "16411105e", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC03_024/ov_SC03_024_jr_80183BF8.c", "fn": "func_80186A58", "addr": 2149083736, "aliases": null, "header": false, "includers": 0, "nhash_before": "15caa9df2333f5b1a08fb166d3eeaeab333393cf", "nhash_after": "76c0bd7bde0a8d1d24b6d4252fe8d888124188f3", "source": "propagate:src/ov_SC05_006/ov_SC05_006_jr_8017BEBC.c:func_8017EFA4", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.189, "objects": ["build/src/ov_SC03_024/ov_SC03_024_jr_80183BF8.o"], "before_text": "void func_80186A58(void *a0)\n{\n extern void func_8012C1B8(void);\n extern void func_8012CAE4(void *a0);\n extern void func_8001C214(s32 a0, s32 a1);\n extern s32 func_80132EF4(s32 a0, s32 a1);\n extern s32 func_8012AD50(void *a0);\n extern void func_80186C20(void *a0);\n extern s32 rand(void);\n extern u16 D_80126B5E;\n extern u16 D_80126B62;\n extern u16 D_80126B66;\n\n register s32 *tbl __asm__(\"$18\"); // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n s32 v0;\n s32 v1;\n s32 a1;\n s32 s1;\n\n tbl = *(s32 **)(*(s32 *)((s32)a0 + 0x64) + 0xDC);\n\n s1 = (rand() & 1) + 1;\n\n v0 = ((s32 (*)(void))func_8012C1B8)();\n *(s32 *)((s32)a0 + 0x20) = v0;\n if (v0 == 0\n || tbl == 0\n || (a1 = tbl[s1]) == 0) {\n func_8012CAE4(a0);\n return;\n }\n\n func_8001C214(v0, a1);\n\n *(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x2C) |= 0x10;\n\n {\n s32 spread = (rand() & 0x3F0) + 0xA00;\n v1 = *(s32 *)((s32)a0 + 0x20);\n *(u16 *)(v1 + 0x1C) = spread;\n *(u16 *)(v1 + 0x1A) = spread;\n *(u16 *)(v1 + 0x18) = spread;\n }\n\n {\n s32 spread2 = rand() & 0xFF0;\n *(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x12) = spread2;\n }\n\n *(u16 *)((s32)a0 + 0xFE) = D_80126B5E;\n *(u16 *)((s32)a0 + 0x6) = D_80126B5E;\n *(u16 *)((s32)a0 + 0xA) = D_80126B62;\n *(u16 *)((s32)a0 + 0x100) = D_80126B66;\n *(u16 *)((s32)a0 + 0xE) = D_80126B66;\n\n *(u16 *)((s32)a0 + 0xE2) = (rand() & 0x1C) + 0x18;\n\n *(s32 *)((s32)a0 + 0x14) = 0xFFE80000;\n *(s32 *)((s32)a0 + 0x48) = 0x8000;\n *(s32 *)((s32)a0 + 0x18) = 0x50000;\n\n *(u16 *)((s32)a0 + 0x106) = rand() & 0xF0;\n *(u16 *)((s32)a0 + 0x108) = rand() & 0xF0;\n\n func_80186C20(a0);\n\n if (s1 != 1) {\n v1 = func_80132EF4((s32)a0, 0x22);\n if (v1 != 0) {\n *(u16 *)(v1 + 0x34) = 0x3001;\n *(s32 *)(v1 + 0x14) = 0xFFFC0000;\n }\n }\n\n func_8012AD50(a0);\n}\n", "after_text": "void func_80186A58(void *a0)\n{\n extern void func_8012C1B8(void);\n extern void func_8012CAE4(void *a0);\n extern void func_8001C214(s32 a0, s32 a1);\n extern s32 func_80132EF4(s32 a0, s32 a1);\n extern s32 func_8012AD50(void *a0);\n extern void func_80186C20(void *a0);\n extern s32 rand(void);\n extern u16 D_80126B5E;\n extern u16 D_80126B62;\n extern u16 D_80126B66;\n\n s32 *tbl;\n s32 v0;\n s32 v1;\n s32 a1;\n s16 s1;\n\n tbl = *(s32 **)(*(s32 *)((s32)a0 + 0x64) + 0xDC);\n\n s1 = (rand() & 1) + 1;\n\n v0 = ((s32 (*)(void))func_8012C1B8)();\n *(s32 *)((s32)a0 + 0x20) = v0;\n if (v0 == 0\n || tbl == 0\n || (a1 = tbl[s1]) == 0) {\n func_8012CAE4(a0);\n return;\n }\n\n func_8001C214(v0, a1);\n\n *(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x2C) |= 0x10;\n\n {\n s32 spread = (rand() & 0x3F0) + 0xA00;\n v1 = *(s32 *)((s32)a0 + 0x20);\n *(u16 *)(v1 + 0x1C) = spread;\n *(u16 *)(v1 + 0x1A) = spread;\n *(u16 *)(v1 + 0x18) = spread;\n }\n\n {\n s32 spread2 = rand() & 0xFF0;\n *(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x12) = spread2;\n }\n\n *(u16 *)((s32)a0 + 0xFE) = D_80126B5E;\n *(u16 *)((s32)a0 + 0x6) = D_80126B5E;\n *(u16 *)((s32)a0 + 0xA) = D_80126B62;\n *(u16 *)((s32)a0 + 0x100) = D_80126B66;\n *(u16 *)((s32)a0 + 0xE) = D_80126B66;\n\n *(u16 *)((s32)a0 + 0xE2) = (rand() & 0x1C) + 0x18;\n\n *(s32 *)((s32)a0 + 0x14) = 0xFFE80000;\n *(s32 *)((s32)a0 + 0x48) = 0x8000;\n *(s32 *)((s32)a0 + 0x18) = 0x50000;\n\n *(u16 *)((s32)a0 + 0x106) = rand() & 0xF0;\n *(u16 *)((s32)a0 + 0x108) = rand() & 0xF0;\n\n func_80186C20(a0);\n\n if (s1 != 1) {\n v1 = func_80132EF4((s32)a0, 0x22);\n if (v1 != 0) {\n *(u16 *)(v1 + 0x34) = 0x3001;\n *(s32 *)(v1 + 0x14) = 0xFFFC0000;\n }\n }\n\n func_8012AD50(a0);\n}\n"} +{"ts": "2026-09-10 21:03:02", "label": "s104_all_part1p", "rung": "E", "calib": {"head": "16411105e", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC05_009/ov_SC05_009_jr_8017BEBC.c", "fn": "func_8017E0F4", "addr": 2149048564, "aliases": null, "header": false, "includers": 0, "nhash_before": "15caa9df2333f5b1a08fb166d3eeaeab333393cf", "nhash_after": "76c0bd7bde0a8d1d24b6d4252fe8d888124188f3", "source": "propagate:src/ov_SC05_006/ov_SC05_006_jr_8017BEBC.c:func_8017EFA4", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.167, "objects": ["build/src/ov_SC05_009/ov_SC05_009_jr_8017BEBC.o"], "before_text": "void func_8017E0F4(void *a0)\n{\n extern void func_8012C1B8(void);\n extern void func_8012CAE4(void *a0);\n extern void func_8001C214(s32 a0, s32 a1);\n extern s32 func_80132EF4(s32 a0, s32 a1);\n extern s32 func_8012AD50(void *a0);\n extern void func_8017E2BC(void *a0);\n extern s32 rand(void);\n extern u16 D_80126B5E;\n extern u16 D_80126B62;\n extern u16 D_80126B66;\n\n register s32 *tbl __asm__(\"$18\"); // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n s32 v0;\n s32 v1;\n s32 a1;\n s32 s1;\n\n tbl = *(s32 **)(*(s32 *)((s32)a0 + 0x64) + 0xDC);\n\n s1 = (rand() & 1) + 1;\n\n v0 = ((s32 (*)(void))func_8012C1B8)();\n *(s32 *)((s32)a0 + 0x20) = v0;\n if (v0 == 0\n || tbl == 0\n || (a1 = tbl[s1]) == 0) {\n func_8012CAE4(a0);\n return;\n }\n\n func_8001C214(v0, a1);\n\n *(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x2C) |= 0x10;\n\n {\n s32 spread = (rand() & 0x3F0) + 0xA00;\n v1 = *(s32 *)((s32)a0 + 0x20);\n *(u16 *)(v1 + 0x1C) = spread;\n *(u16 *)(v1 + 0x1A) = spread;\n *(u16 *)(v1 + 0x18) = spread;\n }\n\n {\n s32 spread2 = rand() & 0xFF0;\n *(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x12) = spread2;\n }\n\n *(u16 *)((s32)a0 + 0xFE) = D_80126B5E;\n *(u16 *)((s32)a0 + 0x6) = D_80126B5E;\n *(u16 *)((s32)a0 + 0xA) = D_80126B62;\n *(u16 *)((s32)a0 + 0x100) = D_80126B66;\n *(u16 *)((s32)a0 + 0xE) = D_80126B66;\n\n *(u16 *)((s32)a0 + 0xE2) = (rand() & 0x1C) + 0x18;\n\n *(s32 *)((s32)a0 + 0x14) = 0xFFE80000;\n *(s32 *)((s32)a0 + 0x48) = 0x8000;\n *(s32 *)((s32)a0 + 0x18) = 0x50000;\n\n *(u16 *)((s32)a0 + 0x106) = rand() & 0xF0;\n *(u16 *)((s32)a0 + 0x108) = rand() & 0xF0;\n\n func_8017E2BC(a0);\n\n if (s1 != 1) {\n v1 = func_80132EF4((s32)a0, 0x22);\n if (v1 != 0) {\n *(u16 *)(v1 + 0x34) = 0x3001;\n *(s32 *)(v1 + 0x14) = 0xFFFC0000;\n }\n }\n\n func_8012AD50(a0);\n}\n", "after_text": "void func_8017E0F4(void *a0)\n{\n extern void func_8012C1B8(void);\n extern void func_8012CAE4(void *a0);\n extern void func_8001C214(s32 a0, s32 a1);\n extern s32 func_80132EF4(s32 a0, s32 a1);\n extern s32 func_8012AD50(void *a0);\n extern void func_8017E2BC(void *a0);\n extern s32 rand(void);\n extern u16 D_80126B5E;\n extern u16 D_80126B62;\n extern u16 D_80126B66;\n\n s32 *tbl;\n s32 v0;\n s32 v1;\n s32 a1;\n s16 s1;\n\n tbl = *(s32 **)(*(s32 *)((s32)a0 + 0x64) + 0xDC);\n\n s1 = (rand() & 1) + 1;\n\n v0 = ((s32 (*)(void))func_8012C1B8)();\n *(s32 *)((s32)a0 + 0x20) = v0;\n if (v0 == 0\n || tbl == 0\n || (a1 = tbl[s1]) == 0) {\n func_8012CAE4(a0);\n return;\n }\n\n func_8001C214(v0, a1);\n\n *(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x2C) |= 0x10;\n\n {\n s32 spread = (rand() & 0x3F0) + 0xA00;\n v1 = *(s32 *)((s32)a0 + 0x20);\n *(u16 *)(v1 + 0x1C) = spread;\n *(u16 *)(v1 + 0x1A) = spread;\n *(u16 *)(v1 + 0x18) = spread;\n }\n\n {\n s32 spread2 = rand() & 0xFF0;\n *(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x12) = spread2;\n }\n\n *(u16 *)((s32)a0 + 0xFE) = D_80126B5E;\n *(u16 *)((s32)a0 + 0x6) = D_80126B5E;\n *(u16 *)((s32)a0 + 0xA) = D_80126B62;\n *(u16 *)((s32)a0 + 0x100) = D_80126B66;\n *(u16 *)((s32)a0 + 0xE) = D_80126B66;\n\n *(u16 *)((s32)a0 + 0xE2) = (rand() & 0x1C) + 0x18;\n\n *(s32 *)((s32)a0 + 0x14) = 0xFFE80000;\n *(s32 *)((s32)a0 + 0x48) = 0x8000;\n *(s32 *)((s32)a0 + 0x18) = 0x50000;\n\n *(u16 *)((s32)a0 + 0x106) = rand() & 0xF0;\n *(u16 *)((s32)a0 + 0x108) = rand() & 0xF0;\n\n func_8017E2BC(a0);\n\n if (s1 != 1) {\n v1 = func_80132EF4((s32)a0, 0x22);\n if (v1 != 0) {\n *(u16 *)(v1 + 0x34) = 0x3001;\n *(s32 *)(v1 + 0x14) = 0xFFFC0000;\n }\n }\n\n func_8012AD50(a0);\n}\n"} +{"ts": "2026-09-10 21:03:04", "label": "s104_all_part1", "rung": "E", "calib": {"head": "16411105e", "stamp": "15956e4a96c4"}, "tu": "src/ov_MAIN_012/ov_MAIN_012_jr_801555F4.c", "fn": "func_80156044", "addr": 2148884548, "aliases": null, "header": false, "includers": 0, "nhash_before": "124b52e9344062804a770ed9e7be7d50000c8a15", "nhash_after": "f319c38885aa3e4e694c0625b53175997c369828", "source": "delever_regen R15 sink @28 (iVar3,puVar2)", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.21, "objects": ["build/src/ov_MAIN_012/ov_MAIN_012_jr_801555F4.o"], "before_text": "void func_80156044(int param_1, int param_2)\n{\n extern u32 func_8015616C(s32 a0, u16 a1);\n extern void func_80156670(s32, s32, s32, s32, s32, u16);\n extern void func_801567BC(s32 a0);\n extern void func_80156848(s32, s32);\n extern void func_80156A88(s32 a0, s32 a1);\n extern s32 func_801565C0(void);\n extern u8 D_801803A8;\n extern u8 D_801803BC;\n extern u8 D_80180240;\n\n register s32 puVar2 __asm__(\"$2\"); // !FAKE: pin $2 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n register s32 iVar3 __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n u8 *puVar4;\n s32 uVar1;\n\n if (((u32)param_2) & 0x10000) {\n iVar3 = (((u32)param_2) & 0xffff) * 0x14;\n puVar2 = (s32)&D_801803A8;\n } else if (((u32)param_2) & 0x20000) {\n iVar3 = (((u32)param_2) & 0xffff) * 0x14;\n puVar2 = (s32)&D_801803BC;\n } else {\n iVar3 = (((u32)param_2) & 0xffff) * 0x14;\n puVar2 = (s32)&D_80180240;\n }\n puVar4 = (u8 *)(iVar3 + puVar2);\n uVar1 = func_8015616C(((s32)param_1), *(u16 *)puVar4) & 0xffff;\n if (*(u8 *)(((s32)param_1) + 0x1a8) != 0) {\n ((void (*)(s32, s32, s32, s32, s32, s32))func_80156670)(((s32)param_1), *(s32 *)puVar4, uVar1, *(s32 *)(puVar4 + 4),\n *(u8 *)(puVar4 + 0xA), *(u16 *)(puVar4 + 0x12));\n if (*(u8 *)(puVar4 + 0x10) != 0) {\n func_801567BC(((s32)param_1));\n }\n ((void (*)(s32, s32, s32))func_80156848)(((s32)param_1), (s32)puVar4, uVar1);\n func_80156A88(((s32)param_1), (s32)puVar4);\n if (((s32 (*)(s32))func_801565C0)(((s32)param_1)) != 0) {\n *(u8 *)(((s32)param_1) + 0x1c0) = 1;\n }\n }\n}\n", "after_text": "void func_80156044(int param_1, int param_2)\n{\n extern u32 func_8015616C(s32 a0, u16 a1);\n extern void func_80156670(s32, s32, s32, s32, s32, u16);\n extern void func_801567BC(s32 a0);\n extern void func_80156848(s32, s32);\n extern void func_80156A88(s32 a0, s32 a1);\n extern s32 func_801565C0(void);\n extern u8 D_801803A8;\n extern u8 D_801803BC;\n extern u8 D_80180240;\n\n u8 *puVar4;\n s32 uVar1;\n\n if (((u32)param_2) & 0x10000) {\n puVar4 = (u8 *)(((((u32)param_2) & 0xffff) * 0x14) + ((s32)&D_801803A8));\n } else if (((u32)param_2) & 0x20000) {\n puVar4 = (u8 *)(((((u32)param_2) & 0xffff) * 0x14) + ((s32)&D_801803BC));\n } else {\n puVar4 = (u8 *)(((((u32)param_2) & 0xffff) * 0x14) + ((s32)&D_80180240));\n }\n uVar1 = func_8015616C(((s32)param_1), *(u16 *)puVar4) & 0xffff;\n if (*(u8 *)(((s32)param_1) + 0x1a8) != 0) {\n ((void (*)(s32, s32, s32, s32, s32, s32))func_80156670)(((s32)param_1), *(s32 *)puVar4, uVar1, *(s32 *)(puVar4 + 4),\n *(u8 *)(puVar4 + 0xA), *(u16 *)(puVar4 + 0x12));\n if (*(u8 *)(puVar4 + 0x10) != 0) {\n func_801567BC(((s32)param_1));\n }\n ((void (*)(s32, s32, s32))func_80156848)(((s32)param_1), (s32)puVar4, uVar1);\n func_80156A88(((s32)param_1), (s32)puVar4);\n if (((s32 (*)(s32))func_801565C0)(((s32)param_1)) != 0) {\n *(u8 *)(((s32)param_1) + 0x1c0) = 1;\n }\n }\n}\n"} +{"ts": "2026-09-10 21:03:37", "label": "s104_all_part1p", "rung": "E", "calib": {"head": "16411105e", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC02_037/ov_SC02_037_jr_801555F4.c", "fn": "func_80156044", "addr": 2148884548, "aliases": null, "header": false, "includers": 0, "nhash_before": "124b52e9344062804a770ed9e7be7d50000c8a15", "nhash_after": "f319c38885aa3e4e694c0625b53175997c369828", "source": "propagate:src/ov_MAIN_012/ov_MAIN_012_jr_801555F4.c:func_80156044", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.179, "objects": ["build/src/ov_SC02_037/ov_SC02_037_jr_801555F4.o"], "before_text": "void func_80156044(int param_1, int param_2)\n{\n extern u32 func_8015616C(s32 a0, u16 a1);\n extern void func_80156670(s32, s32, s32, s32, s32, u16);\n extern void func_801567BC(s32 a0);\n extern void func_80156848(s32, s32);\n extern void func_80156A88(s32 a0, s32 a1);\n extern s32 func_801565C0(void);\n extern u8 D_80185C34;\n extern u8 D_80185C48;\n extern u8 D_80185ACC;\n\n register s32 puVar2 __asm__(\"$2\"); // !FAKE: pin $2 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n register s32 iVar3 __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n u8 *puVar4;\n s32 uVar1;\n\n if (((u32)param_2) & 0x10000) {\n iVar3 = (((u32)param_2) & 0xffff) * 0x14;\n puVar2 = (s32)&D_80185C34;\n } else if (((u32)param_2) & 0x20000) {\n iVar3 = (((u32)param_2) & 0xffff) * 0x14;\n puVar2 = (s32)&D_80185C48;\n } else {\n iVar3 = (((u32)param_2) & 0xffff) * 0x14;\n puVar2 = (s32)&D_80185ACC;\n }\n puVar4 = (u8 *)(iVar3 + puVar2);\n uVar1 = func_8015616C(((s32)param_1), *(u16 *)puVar4) & 0xffff;\n if (*(u8 *)(((s32)param_1) + 0x1a8) != 0) {\n ((void (*)(s32, s32, s32, s32, s32, s32))func_80156670)(((s32)param_1), *(s32 *)puVar4, uVar1, *(s32 *)(puVar4 + 4),\n *(u8 *)(puVar4 + 0xA), *(u16 *)(puVar4 + 0x12));\n if (*(u8 *)(puVar4 + 0x10) != 0) {\n func_801567BC(((s32)param_1));\n }\n ((void (*)(s32, s32, s32))func_80156848)(((s32)param_1), (s32)puVar4, uVar1);\n func_80156A88(((s32)param_1), (s32)puVar4);\n if (((s32 (*)(s32))func_801565C0)(((s32)param_1)) != 0) {\n *(u8 *)(((s32)param_1) + 0x1c0) = 1;\n }\n }\n}\n", "after_text": "void func_80156044(int param_1, int param_2)\n{\n extern u32 func_8015616C(s32 a0, u16 a1);\n extern void func_80156670(s32, s32, s32, s32, s32, u16);\n extern void func_801567BC(s32 a0);\n extern void func_80156848(s32, s32);\n extern void func_80156A88(s32 a0, s32 a1);\n extern s32 func_801565C0(void);\n extern u8 D_80185C34;\n extern u8 D_80185C48;\n extern u8 D_80185ACC;\n\n u8 *puVar4;\n s32 uVar1;\n\n if (((u32)param_2) & 0x10000) {\n puVar4 = (u8 *)(((((u32)param_2) & 0xffff) * 0x14) + ((s32)&D_80185C34));\n } else if (((u32)param_2) & 0x20000) {\n puVar4 = (u8 *)(((((u32)param_2) & 0xffff) * 0x14) + ((s32)&D_80185C48));\n } else {\n puVar4 = (u8 *)(((((u32)param_2) & 0xffff) * 0x14) + ((s32)&D_80185ACC));\n }\n uVar1 = func_8015616C(((s32)param_1), *(u16 *)puVar4) & 0xffff;\n if (*(u8 *)(((s32)param_1) + 0x1a8) != 0) {\n ((void (*)(s32, s32, s32, s32, s32, s32))func_80156670)(((s32)param_1), *(s32 *)puVar4, uVar1, *(s32 *)(puVar4 + 4),\n *(u8 *)(puVar4 + 0xA), *(u16 *)(puVar4 + 0x12));\n if (*(u8 *)(puVar4 + 0x10) != 0) {\n func_801567BC(((s32)param_1));\n }\n ((void (*)(s32, s32, s32))func_80156848)(((s32)param_1), (s32)puVar4, uVar1);\n func_80156A88(((s32)param_1), (s32)puVar4);\n if (((s32 (*)(s32))func_801565C0)(((s32)param_1)) != 0) {\n *(u8 *)(((s32)param_1) + 0x1c0) = 1;\n }\n }\n}\n"} +{"ts": "2026-09-10 21:03:37", "label": "s104_all_part1p", "rung": "E", "calib": {"head": "16411105e", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC03_107/ov_SC03_107_jr_801555F4.c", "fn": "func_80156044", "addr": 2148884548, "aliases": null, "header": false, "includers": 0, "nhash_before": "124b52e9344062804a770ed9e7be7d50000c8a15", "nhash_after": "f319c38885aa3e4e694c0625b53175997c369828", "source": "propagate:src/ov_MAIN_012/ov_MAIN_012_jr_801555F4.c:func_80156044", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.189, "objects": ["build/src/ov_SC03_107/ov_SC03_107_jr_801555F4.o"], "before_text": "void func_80156044(int param_1, int param_2)\n{\n extern u32 func_8015616C(s32 a0, u16 a1);\n extern void func_80156670(s32, s32, s32, s32, s32, u16);\n extern void func_801567BC(s32 a0);\n extern void func_80156848(s32, s32);\n extern void func_80156A88(s32 a0, s32 a1);\n extern s32 func_801565C0(void);\n extern u8 D_801844D0;\n extern u8 D_801844E4;\n extern u8 D_80184368;\n\n register s32 puVar2 __asm__(\"$2\"); // !FAKE: pin $2 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n register s32 iVar3 __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n u8 *puVar4;\n s32 uVar1;\n\n if (((u32)param_2) & 0x10000) {\n iVar3 = (((u32)param_2) & 0xffff) * 0x14;\n puVar2 = (s32)&D_801844D0;\n } else if (((u32)param_2) & 0x20000) {\n iVar3 = (((u32)param_2) & 0xffff) * 0x14;\n puVar2 = (s32)&D_801844E4;\n } else {\n iVar3 = (((u32)param_2) & 0xffff) * 0x14;\n puVar2 = (s32)&D_80184368;\n }\n puVar4 = (u8 *)(iVar3 + puVar2);\n uVar1 = func_8015616C(((s32)param_1), *(u16 *)puVar4) & 0xffff;\n if (*(u8 *)(((s32)param_1) + 0x1a8) != 0) {\n ((void (*)(s32, s32, s32, s32, s32, s32))func_80156670)(((s32)param_1), *(s32 *)puVar4, uVar1, *(s32 *)(puVar4 + 4),\n *(u8 *)(puVar4 + 0xA), *(u16 *)(puVar4 + 0x12));\n if (*(u8 *)(puVar4 + 0x10) != 0) {\n func_801567BC(((s32)param_1));\n }\n ((void (*)(s32, s32, s32))func_80156848)(((s32)param_1), (s32)puVar4, uVar1);\n func_80156A88(((s32)param_1), (s32)puVar4);\n if (((s32 (*)(s32))func_801565C0)(((s32)param_1)) != 0) {\n *(u8 *)(((s32)param_1) + 0x1c0) = 1;\n }\n }\n}\n", "after_text": "void func_80156044(int param_1, int param_2)\n{\n extern u32 func_8015616C(s32 a0, u16 a1);\n extern void func_80156670(s32, s32, s32, s32, s32, u16);\n extern void func_801567BC(s32 a0);\n extern void func_80156848(s32, s32);\n extern void func_80156A88(s32 a0, s32 a1);\n extern s32 func_801565C0(void);\n extern u8 D_801844D0;\n extern u8 D_801844E4;\n extern u8 D_80184368;\n\n u8 *puVar4;\n s32 uVar1;\n\n if (((u32)param_2) & 0x10000) {\n puVar4 = (u8 *)(((((u32)param_2) & 0xffff) * 0x14) + ((s32)&D_801844D0));\n } else if (((u32)param_2) & 0x20000) {\n puVar4 = (u8 *)(((((u32)param_2) & 0xffff) * 0x14) + ((s32)&D_801844E4));\n } else {\n puVar4 = (u8 *)(((((u32)param_2) & 0xffff) * 0x14) + ((s32)&D_80184368));\n }\n uVar1 = func_8015616C(((s32)param_1), *(u16 *)puVar4) & 0xffff;\n if (*(u8 *)(((s32)param_1) + 0x1a8) != 0) {\n ((void (*)(s32, s32, s32, s32, s32, s32))func_80156670)(((s32)param_1), *(s32 *)puVar4, uVar1, *(s32 *)(puVar4 + 4),\n *(u8 *)(puVar4 + 0xA), *(u16 *)(puVar4 + 0x12));\n if (*(u8 *)(puVar4 + 0x10) != 0) {\n func_801567BC(((s32)param_1));\n }\n ((void (*)(s32, s32, s32))func_80156848)(((s32)param_1), (s32)puVar4, uVar1);\n func_80156A88(((s32)param_1), (s32)puVar4);\n if (((s32 (*)(s32))func_801565C0)(((s32)param_1)) != 0) {\n *(u8 *)(((s32)param_1) + 0x1c0) = 1;\n }\n }\n}\n"} +{"ts": "2026-09-10 21:03:40", "label": "s104_all_part1", "rung": "E", "calib": {"head": "16411105e", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC06_024/ov_SC06_024_jr_80186F00.c", "fn": "func_8018D674", "addr": 2149111412, "aliases": null, "header": false, "includers": 0, "nhash_before": "c99c649701624a044920722762a5f401f3e4b405", "nhash_after": "aee8e9a3f683903af9df42c8f292d8ad61aea70c", "source": "delever_regen R19 argrestore func_8012B370 +a0 @15", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.44, "objects": ["build/src/ov_SC06_024/ov_SC06_024_jr_80186F00.o"], "before_text": "void func_8018D674(s32 a0)\n{\n s32 t;\n register s32 *a1 asm(\"$5\"); // !FAKE: pin $5 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n u32 v0;\n\n t = *(s32 *)(a0 + 0x1C) - 1;\n *(s32 *)(a0 + 0x1C) = t;\n\n if (t != 0) {\n a1 = *(s32 **)(a0 + 0x20);\n v0 = *(u32 *)(a1 + 0x1);\n v0 ^= 0x80000000;\n *(u32 *)(a1 + 0x1) = v0;\n ((void (*)(void))func_8012B370)();\n\n t = *(s32 *)(a0 + 0x1C);\n if ((t & 0x3) != 0) {\n s32 s0 = func_8012C588(0x281, a0);\n if (s0 != 0) {\n *(s32 *)(s0 + 0x1C) = 2;\n *(s16 *)(s0 + 0x12) = (rand() & 0x1F) - 0x10;\n *(s16 *)(s0 + 0x16) = -((rand() & 0xF) + 0x10);\n *(s16 *)(s0 + 0x1A) = (rand() & 0x1F) - 0x10;\n }\n }\n return;\n }\n\n ((void (*)(void *))func_8012C218)((void *)a0);\n}\n", "after_text": "void func_8018D674(s32 a0)\n{\n s32 t;\n s32 *a1;\n u32 v0;\n\n t = *(s32 *)(a0 + 0x1C) - 1;\n *(s32 *)(a0 + 0x1C) = t;\n\n if (t != 0) {\n a1 = *(s32 **)(a0 + 0x20);\n v0 = *(u32 *)(a1 + 0x1);\n v0 ^= 0x80000000;\n *(u32 *)(a1 + 0x1) = v0;\n ((void (*)(int a0))func_8012B370)(a0);\n\n t = *(s32 *)(a0 + 0x1C);\n if ((t & 0x3) != 0) {\n s32 s0 = func_8012C588(0x281, a0);\n if (s0 != 0) {\n *(s32 *)(s0 + 0x1C) = 2;\n *(s16 *)(s0 + 0x12) = (rand() & 0x1F) - 0x10;\n *(s16 *)(s0 + 0x16) = -((rand() & 0xF) + 0x10);\n *(s16 *)(s0 + 0x1A) = (rand() & 0x1F) - 0x10;\n }\n }\n return;\n }\n\n ((void (*)(void *))func_8012C218)((void *)a0);\n}\n"} +{"ts": "2026-09-10 21:04:10", "label": "s104_all_part1p", "rung": "E", "calib": {"head": "16411105e", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC06_024/ov_SC06_024_jr_80186F00.c", "fn": "func_8018D9B8", "addr": 2149112248, "aliases": null, "header": false, "includers": 0, "nhash_before": "c99c649701624a044920722762a5f401f3e4b405", "nhash_after": "aee8e9a3f683903af9df42c8f292d8ad61aea70c", "source": "propagate:src/ov_SC06_024/ov_SC06_024_jr_80186F00.c:func_8018D674", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.404, "objects": ["build/src/ov_SC06_024/ov_SC06_024_jr_80186F00.o"], "before_text": "void func_8018D9B8(s32 a0)\n{\n s32 t;\n register s32 *a1 asm(\"$5\"); // !FAKE: pin $5 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n u32 v0;\n\n t = *(s32 *)(a0 + 0x1C) - 1;\n *(s32 *)(a0 + 0x1C) = t;\n\n if (t != 0) {\n a1 = *(s32 **)(a0 + 0x20);\n v0 = *(u32 *)(a1 + 0x1);\n v0 ^= 0x80000000;\n *(u32 *)(a1 + 0x1) = v0;\n ((void (*)(void))func_8012B370)();\n\n t = *(s32 *)(a0 + 0x1C);\n if ((t & 0x3) != 0) {\n s32 s0 = func_8012C588(0x281, a0);\n if (s0 != 0) {\n *(s32 *)(s0 + 0x1C) = 2;\n *(s16 *)(s0 + 0x12) = (rand() & 0x1F) - 0x10;\n *(s16 *)(s0 + 0x16) = -((rand() & 0xF) + 0x10);\n *(s16 *)(s0 + 0x1A) = (rand() & 0x1F) - 0x10;\n }\n }\n return;\n }\n\n ((void (*)(void *))func_8012C218)((void *)a0);\n}\n", "after_text": "void func_8018D9B8(s32 a0)\n{\n s32 t;\n s32 *a1;\n u32 v0;\n\n t = *(s32 *)(a0 + 0x1C) - 1;\n *(s32 *)(a0 + 0x1C) = t;\n\n if (t != 0) {\n a1 = *(s32 **)(a0 + 0x20);\n v0 = *(u32 *)(a1 + 0x1);\n v0 ^= 0x80000000;\n *(u32 *)(a1 + 0x1) = v0;\n ((void (*)(int a0))func_8012B370)(a0);\n\n t = *(s32 *)(a0 + 0x1C);\n if ((t & 0x3) != 0) {\n s32 s0 = func_8012C588(0x281, a0);\n if (s0 != 0) {\n *(s32 *)(s0 + 0x1C) = 2;\n *(s16 *)(s0 + 0x12) = (rand() & 0x1F) - 0x10;\n *(s16 *)(s0 + 0x16) = -((rand() & 0xF) + 0x10);\n *(s16 *)(s0 + 0x1A) = (rand() & 0x1F) - 0x10;\n }\n }\n return;\n }\n\n ((void (*)(void *))func_8012C218)((void *)a0);\n}\n"} +{"ts": "2026-09-10 21:04:11", "label": "s104_all_part1p", "rung": "E", "calib": {"head": "16411105e", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC06_024/ov_SC06_024_jr_80186F00.c", "fn": "func_8018DCA8", "addr": 2149113000, "aliases": null, "header": false, "includers": 0, "nhash_before": "c99c649701624a044920722762a5f401f3e4b405", "nhash_after": "aee8e9a3f683903af9df42c8f292d8ad61aea70c", "source": "propagate:src/ov_SC06_024/ov_SC06_024_jr_80186F00.c:func_8018D674", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.378, "objects": ["build/src/ov_SC06_024/ov_SC06_024_jr_80186F00.o"], "before_text": "void func_8018DCA8(s32 a0)\n{\n s32 t;\n register s32 *a1 asm(\"$5\"); // !FAKE: pin $5 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n u32 v0;\n\n t = *(s32 *)(a0 + 0x1C) - 1;\n *(s32 *)(a0 + 0x1C) = t;\n\n if (t != 0) {\n a1 = *(s32 **)(a0 + 0x20);\n v0 = *(u32 *)(a1 + 0x1);\n v0 ^= 0x80000000;\n *(u32 *)(a1 + 0x1) = v0;\n ((void (*)(void))func_8012B370)();\n\n t = *(s32 *)(a0 + 0x1C);\n if ((t & 0x3) != 0) {\n s32 s0 = func_8012C588(0x281, a0);\n if (s0 != 0) {\n *(s32 *)(s0 + 0x1C) = 2;\n *(s16 *)(s0 + 0x12) = (rand() & 0x1F) - 0x10;\n *(s16 *)(s0 + 0x16) = -((rand() & 0xF) + 0x10);\n *(s16 *)(s0 + 0x1A) = (rand() & 0x1F) - 0x10;\n }\n }\n return;\n }\n\n ((void (*)(void *))func_8012C218)((void *)a0);\n}\n", "after_text": "void func_8018DCA8(s32 a0)\n{\n s32 t;\n s32 *a1;\n u32 v0;\n\n t = *(s32 *)(a0 + 0x1C) - 1;\n *(s32 *)(a0 + 0x1C) = t;\n\n if (t != 0) {\n a1 = *(s32 **)(a0 + 0x20);\n v0 = *(u32 *)(a1 + 0x1);\n v0 ^= 0x80000000;\n *(u32 *)(a1 + 0x1) = v0;\n ((void (*)(int a0))func_8012B370)(a0);\n\n t = *(s32 *)(a0 + 0x1C);\n if ((t & 0x3) != 0) {\n s32 s0 = func_8012C588(0x281, a0);\n if (s0 != 0) {\n *(s32 *)(s0 + 0x1C) = 2;\n *(s16 *)(s0 + 0x12) = (rand() & 0x1F) - 0x10;\n *(s16 *)(s0 + 0x16) = -((rand() & 0xF) + 0x10);\n *(s16 *)(s0 + 0x1A) = (rand() & 0x1F) - 0x10;\n }\n }\n return;\n }\n\n ((void (*)(void *))func_8012C218)((void *)a0);\n}\n"} diff --git a/src/md_SC03_076/md_SC03_076.c b/src/md_SC03_076/md_SC03_076.c index 2a8acc3bf..e62f3aad0 100644 --- a/src/md_SC03_076/md_SC03_076.c +++ b/src/md_SC03_076/md_SC03_076.c @@ -709,10 +709,10 @@ s32 func_801F03C0(s32 ot, u8 *s, s16 c) { u8 sp18[72]; s32 sp60[5]; s32 sp78[8]; - s32 flag; + s16 flag; s32 dim; s32 dim2; - register s32 dim3 __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus9) + s32 dim3; s32 t; s16 i; s16 k; diff --git a/src/md_SC03_135/md_SC03_135.c b/src/md_SC03_135/md_SC03_135.c index 7dd69e0fb..168be1136 100644 --- a/src/md_SC03_135/md_SC03_135.c +++ b/src/md_SC03_135/md_SC03_135.c @@ -680,10 +680,10 @@ s32 func_801E3540(s32 ot, u8 *s, s16 c) { u8 sp18[72]; s32 sp60[5]; s32 sp78[8]; - s32 flag; + s16 flag; s32 dim; s32 dim2; - register s32 dim3 __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus9) + s32 dim3; s32 t; s16 i; s16 k; diff --git a/src/md_SC04_027/md_SC04_027.c b/src/md_SC04_027/md_SC04_027.c index a6843d189..862f9d5a6 100644 --- a/src/md_SC04_027/md_SC04_027.c +++ b/src/md_SC04_027/md_SC04_027.c @@ -690,10 +690,10 @@ s32 func_801E8A80(s32 ot, u8 *s, s16 c) { u8 sp18[72]; s32 sp60[5]; s32 sp78[8]; - s32 flag; + s16 flag; s32 dim; s32 dim2; - register s32 dim3 __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus9) + s32 dim3; s32 t; s16 i; s16 k; diff --git a/src/md_SC05_026/md_SC05_026.c b/src/md_SC05_026/md_SC05_026.c index 8101b30cd..ab397d9f5 100644 --- a/src/md_SC05_026/md_SC05_026.c +++ b/src/md_SC05_026/md_SC05_026.c @@ -695,10 +695,10 @@ s32 func_801EE8E0(s32 ot, u8 *s, s16 c) { u8 sp18[72]; s32 sp60[5]; s32 sp78[8]; - s32 flag; + s16 flag; s32 dim; s32 dim2; - register s32 dim3 __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus9) + s32 dim3; s32 t; s16 i; s16 k; diff --git a/src/ov_MAIN_012/ov_MAIN_012_jr_801555F4.c b/src/ov_MAIN_012/ov_MAIN_012_jr_801555F4.c index a29311d2f..c67e27701 100644 --- a/src/ov_MAIN_012/ov_MAIN_012_jr_801555F4.c +++ b/src/ov_MAIN_012/ov_MAIN_012_jr_801555F4.c @@ -2044,22 +2044,16 @@ void func_80156044(int param_1, int param_2) extern u8 D_801803BC; extern u8 D_80180240; - register s32 puVar2 __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus4) - register s32 iVar3 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus4) u8 *puVar4; s32 uVar1; if (((u32)param_2) & 0x10000) { - iVar3 = (((u32)param_2) & 0xffff) * 0x14; - puVar2 = (s32)&D_801803A8; + puVar4 = (u8 *)(((((u32)param_2) & 0xffff) * 0x14) + ((s32)&D_801803A8)); } else if (((u32)param_2) & 0x20000) { - iVar3 = (((u32)param_2) & 0xffff) * 0x14; - puVar2 = (s32)&D_801803BC; + puVar4 = (u8 *)(((((u32)param_2) & 0xffff) * 0x14) + ((s32)&D_801803BC)); } else { - iVar3 = (((u32)param_2) & 0xffff) * 0x14; - puVar2 = (s32)&D_80180240; + puVar4 = (u8 *)(((((u32)param_2) & 0xffff) * 0x14) + ((s32)&D_80180240)); } - puVar4 = (u8 *)(iVar3 + puVar2); uVar1 = func_8015616C(((s32)param_1), *(u16 *)puVar4) & 0xffff; if (*(u8 *)(((s32)param_1) + 0x1a8) != 0) { ((void (*)(s32, s32, s32, s32, s32, s32))func_80156670)(((s32)param_1), *(s32 *)puVar4, uVar1, *(s32 *)(puVar4 + 4), diff --git a/src/ov_SC02_037/ov_SC02_037_jr_801555F4.c b/src/ov_SC02_037/ov_SC02_037_jr_801555F4.c index c3f598d45..d0b8fd817 100644 --- a/src/ov_SC02_037/ov_SC02_037_jr_801555F4.c +++ b/src/ov_SC02_037/ov_SC02_037_jr_801555F4.c @@ -2063,22 +2063,16 @@ void func_80156044(int param_1, int param_2) extern u8 D_80185C48; extern u8 D_80185ACC; - register s32 puVar2 __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus4) - register s32 iVar3 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus4) u8 *puVar4; s32 uVar1; if (((u32)param_2) & 0x10000) { - iVar3 = (((u32)param_2) & 0xffff) * 0x14; - puVar2 = (s32)&D_80185C34; + puVar4 = (u8 *)(((((u32)param_2) & 0xffff) * 0x14) + ((s32)&D_80185C34)); } else if (((u32)param_2) & 0x20000) { - iVar3 = (((u32)param_2) & 0xffff) * 0x14; - puVar2 = (s32)&D_80185C48; + puVar4 = (u8 *)(((((u32)param_2) & 0xffff) * 0x14) + ((s32)&D_80185C48)); } else { - iVar3 = (((u32)param_2) & 0xffff) * 0x14; - puVar2 = (s32)&D_80185ACC; + puVar4 = (u8 *)(((((u32)param_2) & 0xffff) * 0x14) + ((s32)&D_80185ACC)); } - puVar4 = (u8 *)(iVar3 + puVar2); uVar1 = func_8015616C(((s32)param_1), *(u16 *)puVar4) & 0xffff; if (*(u8 *)(((s32)param_1) + 0x1a8) != 0) { ((void (*)(s32, s32, s32, s32, s32, s32))func_80156670)(((s32)param_1), *(s32 *)puVar4, uVar1, *(s32 *)(puVar4 + 4), diff --git a/src/ov_SC03_001/ov_SC03_001_jr_8018A3A8.c b/src/ov_SC03_001/ov_SC03_001_jr_8018A3A8.c index 46e3482d6..87018c138 100644 --- a/src/ov_SC03_001/ov_SC03_001_jr_8018A3A8.c +++ b/src/ov_SC03_001/ov_SC03_001_jr_8018A3A8.c @@ -3541,7 +3541,7 @@ s32 func_8018AEE8(void) { s32 flags; s32 pad; s16 effectVal; - s32 byteVal; + s16 byteVal; s16 changed; u16 *p; u8 *pcur; @@ -3552,7 +3552,6 @@ s32 func_8018AEE8(void) { u8 bb; u8 m; s16 d; - register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus9) changed = 0; flags = func_80014ED4(0); @@ -3571,7 +3570,7 @@ s32 func_8018AEE8(void) { return ret & -(ret2 != 0); } } else if (flags & 0x10) { - pad = byteVal + zr; + pad = byteVal + 0; if (pad < 7) { return -1; } @@ -3661,7 +3660,7 @@ s32 func_8018AEE8(void) { if (changed != 0) { func_8002D4C8(0x45A, 0); - if (byteVal + zr == 0xC) { + if (byteVal + 0 == 0xC) { D_8011514E = 0; D_80115143 = 0; func_801898E4(); diff --git a/src/ov_SC03_024/ov_SC03_024_jr_80183BF8.c b/src/ov_SC03_024/ov_SC03_024_jr_80183BF8.c index 7f89071b3..455e73026 100644 --- a/src/ov_SC03_024/ov_SC03_024_jr_80183BF8.c +++ b/src/ov_SC03_024/ov_SC03_024_jr_80183BF8.c @@ -5312,11 +5312,11 @@ void func_80186A58(void *a0) extern u16 D_80126B62; extern u16 D_80126B66; - register s32 *tbl __asm__("$18"); // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus9) + s32 *tbl; s32 v0; s32 v1; s32 a1; - s32 s1; + s16 s1; tbl = *(s32 **)(*(s32 *)((s32)a0 + 0x64) + 0xDC); diff --git a/src/ov_SC03_107/ov_SC03_107_jr_801555F4.c b/src/ov_SC03_107/ov_SC03_107_jr_801555F4.c index f1dd0e03b..7076d9115 100644 --- a/src/ov_SC03_107/ov_SC03_107_jr_801555F4.c +++ b/src/ov_SC03_107/ov_SC03_107_jr_801555F4.c @@ -2048,22 +2048,16 @@ void func_80156044(int param_1, int param_2) extern u8 D_801844E4; extern u8 D_80184368; - register s32 puVar2 __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus4) - register s32 iVar3 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus4) u8 *puVar4; s32 uVar1; if (((u32)param_2) & 0x10000) { - iVar3 = (((u32)param_2) & 0xffff) * 0x14; - puVar2 = (s32)&D_801844D0; + puVar4 = (u8 *)(((((u32)param_2) & 0xffff) * 0x14) + ((s32)&D_801844D0)); } else if (((u32)param_2) & 0x20000) { - iVar3 = (((u32)param_2) & 0xffff) * 0x14; - puVar2 = (s32)&D_801844E4; + puVar4 = (u8 *)(((((u32)param_2) & 0xffff) * 0x14) + ((s32)&D_801844E4)); } else { - iVar3 = (((u32)param_2) & 0xffff) * 0x14; - puVar2 = (s32)&D_80184368; + puVar4 = (u8 *)(((((u32)param_2) & 0xffff) * 0x14) + ((s32)&D_80184368)); } - puVar4 = (u8 *)(iVar3 + puVar2); uVar1 = func_8015616C(((s32)param_1), *(u16 *)puVar4) & 0xffff; if (*(u8 *)(((s32)param_1) + 0x1a8) != 0) { ((void (*)(s32, s32, s32, s32, s32, s32))func_80156670)(((s32)param_1), *(s32 *)puVar4, uVar1, *(s32 *)(puVar4 + 4), diff --git a/src/ov_SC03_124/ov_SC03_124_jr_80187010.c b/src/ov_SC03_124/ov_SC03_124_jr_80187010.c index ce914bc48..d92629cba 100644 --- a/src/ov_SC03_124/ov_SC03_124_jr_80187010.c +++ b/src/ov_SC03_124/ov_SC03_124_jr_80187010.c @@ -3407,7 +3407,7 @@ s32 func_80187B50(void) { s32 flags; s32 pad; s16 effectVal; - s32 byteVal; + s16 byteVal; s16 changed; u16 *p; u8 *pcur; @@ -3418,7 +3418,6 @@ s32 func_80187B50(void) { u8 bb; u8 m; s16 d; - register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus9) changed = 0; flags = func_80014ED4(0); @@ -3437,7 +3436,7 @@ s32 func_80187B50(void) { return ret & -(ret2 != 0); } } else if (flags & 0x10) { - pad = byteVal + zr; + pad = byteVal + 0; if (pad < 7) { return -1; } @@ -3527,7 +3526,7 @@ s32 func_80187B50(void) { if (changed != 0) { func_8002D4C8(0x45A, 0); - if (byteVal + zr == 0xC) { + if (byteVal + 0 == 0xC) { D_8011514E = 0; D_80115143 = 0; func_8018654C(); diff --git a/src/ov_SC04_018/ov_SC04_018_jr_801878E8.c b/src/ov_SC04_018/ov_SC04_018_jr_801878E8.c index fe888ae0b..0795851ff 100644 --- a/src/ov_SC04_018/ov_SC04_018_jr_801878E8.c +++ b/src/ov_SC04_018/ov_SC04_018_jr_801878E8.c @@ -3481,7 +3481,7 @@ s32 func_80188428(void) { s32 flags; s32 pad; s16 effectVal; - s32 byteVal; + s16 byteVal; s16 changed; u16 *p; u8 *pcur; @@ -3492,7 +3492,6 @@ s32 func_80188428(void) { u8 bb; u8 m; s16 d; - register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus9) changed = 0; flags = func_80014ED4(0); @@ -3511,7 +3510,7 @@ s32 func_80188428(void) { return ret & -(ret2 != 0); } } else if (flags & 0x10) { - pad = byteVal + zr; + pad = byteVal + 0; if (pad < 7) { return -1; } @@ -3601,7 +3600,7 @@ s32 func_80188428(void) { if (changed != 0) { func_8002D4C8(0x45A, 0); - if (byteVal + zr == 0xC) { + if (byteVal + 0 == 0xC) { D_8011514E = 0; D_80115143 = 0; func_80186E24(); diff --git a/src/ov_SC05_006/ov_SC05_006_jr_8017BEBC.c b/src/ov_SC05_006/ov_SC05_006_jr_8017BEBC.c index bc07b6ff6..6145c3f91 100644 --- a/src/ov_SC05_006/ov_SC05_006_jr_8017BEBC.c +++ b/src/ov_SC05_006/ov_SC05_006_jr_8017BEBC.c @@ -4409,11 +4409,11 @@ void func_8017EFA4(void *a0) extern u16 D_80126B62; extern u16 D_80126B66; - register s32 *tbl __asm__("$18"); // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus8) + s32 *tbl; s32 v0; s32 v1; s32 a1; - s32 s1; + s16 s1; tbl = *(s32 **)(*(s32 *)((s32)a0 + 0x64) + 0xDC); diff --git a/src/ov_SC05_009/ov_SC05_009_jr_8017BEBC.c b/src/ov_SC05_009/ov_SC05_009_jr_8017BEBC.c index eb351e42a..b3e47ee32 100644 --- a/src/ov_SC05_009/ov_SC05_009_jr_8017BEBC.c +++ b/src/ov_SC05_009/ov_SC05_009_jr_8017BEBC.c @@ -3597,11 +3597,11 @@ void func_8017E0F4(void *a0) extern u16 D_80126B62; extern u16 D_80126B66; - register s32 *tbl __asm__("$18"); // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus9) + s32 *tbl; s32 v0; s32 v1; s32 a1; - s32 s1; + s16 s1; tbl = *(s32 **)(*(s32 *)((s32)a0 + 0x64) + 0xDC); diff --git a/src/ov_SC05_017/ov_SC05_017_jr_801875E8.c b/src/ov_SC05_017/ov_SC05_017_jr_801875E8.c index 44e782e49..1db8df8dd 100644 --- a/src/ov_SC05_017/ov_SC05_017_jr_801875E8.c +++ b/src/ov_SC05_017/ov_SC05_017_jr_801875E8.c @@ -3405,7 +3405,7 @@ s32 func_80188128(void) { s32 flags; s32 pad; s16 effectVal; - s32 byteVal; + s16 byteVal; s16 changed; u16 *p; u8 *pcur; @@ -3416,7 +3416,6 @@ s32 func_80188128(void) { u8 bb; u8 m; s16 d; - register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus9) changed = 0; flags = func_80014ED4(0); @@ -3435,7 +3434,7 @@ s32 func_80188128(void) { return ret & -(ret2 != 0); } } else if (flags & 0x10) { - pad = byteVal + zr; + pad = byteVal + 0; if (pad < 7) { return -1; } @@ -3525,7 +3524,7 @@ s32 func_80188128(void) { if (changed != 0) { func_8002D4C8(0x45A, 0); - if (byteVal + zr == 0xC) { + if (byteVal + 0 == 0xC) { D_8011514E = 0; D_80115143 = 0; func_80186B24(); diff --git a/src/ov_SC06_024/ov_SC06_024_jr_80186F00.c b/src/ov_SC06_024/ov_SC06_024_jr_80186F00.c index 8296898d4..1589f7e6c 100644 --- a/src/ov_SC06_024/ov_SC06_024_jr_80186F00.c +++ b/src/ov_SC06_024/ov_SC06_024_jr_80186F00.c @@ -7093,7 +7093,7 @@ extern s32 rand(void); void func_8018D674(s32 a0) { s32 t; - register s32 *a1 asm("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus9) + s32 *a1; u32 v0; t = *(s32 *)(a0 + 0x1C) - 1; @@ -7104,7 +7104,7 @@ void func_8018D674(s32 a0) v0 = *(u32 *)(a1 + 0x1); v0 ^= 0x80000000; *(u32 *)(a1 + 0x1) = v0; - ((void (*)(void))func_8012B370)(); + ((void (*)(int a0))func_8012B370)(a0); t = *(s32 *)(a0 + 0x1C); if ((t & 0x3) != 0) { @@ -7256,7 +7256,7 @@ extern s32 rand(void); void func_8018D9B8(s32 a0) { s32 t; - register s32 *a1 asm("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus9) + s32 *a1; u32 v0; t = *(s32 *)(a0 + 0x1C) - 1; @@ -7267,7 +7267,7 @@ void func_8018D9B8(s32 a0) v0 = *(u32 *)(a1 + 0x1); v0 ^= 0x80000000; *(u32 *)(a1 + 0x1) = v0; - ((void (*)(void))func_8012B370)(); + ((void (*)(int a0))func_8012B370)(a0); t = *(s32 *)(a0 + 0x1C); if ((t & 0x3) != 0) { @@ -7414,7 +7414,7 @@ extern s32 rand(void); void func_8018DCA8(s32 a0) { s32 t; - register s32 *a1 asm("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus9) + s32 *a1; u32 v0; t = *(s32 *)(a0 + 0x1C) - 1; @@ -7425,7 +7425,7 @@ void func_8018DCA8(s32 a0) v0 = *(u32 *)(a1 + 0x1); v0 ^= 0x80000000; *(u32 *)(a1 + 0x1) = v0; - ((void (*)(void))func_8012B370)(); + ((void (*)(int a0))func_8012B370)(a0); t = *(s32 *)(a0 + 0x1C); if ((t & 0x3) != 0) {