From 3464a25cd0016d6de484e10ea36093c9ba2a67fe Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Thu, 10 Sep 2026 10:46:06 -0600 Subject: [PATCH] =?UTF-8?q?phase-36:=20T7=20burst=20=E2=80=94=20five=20mor?= =?UTF-8?q?e=20banks=20(631=20bodies)=20and=20two=20concurrency=20defects?= =?UTF-8?q?=20the=20agents=20found?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Banked: func_80136334 (126, all four levers), func_8016B234 (129), func_8015FBE0 (125), func_80143D28 (131), func_8014D820 (126 of 128). 27,984 -> 26,714 sites. lever_census --check: 26,714 pin/asm sites, 26,714 marked !FAKE, 0 UNMARKED — OK THE MISSING CALL ARGUMENT CLASS IS NOW CONFIRMED SIX TIMES, independently, by six agents that never saw each other's work: a7, a8, a11, a12, a13, a25. In every case the source declares a call with fewer arguments than the callee really takes — m2c drops arguments at unprototyped and indirect call sites — and the register pin was hired to fake the instruction the missing argument would have produced. Mechanisms differ and were each proven on bytes: combine.c:1458's added_sets_2 gate; set_preference (global.c:1535/1589) applied ahead of first-fit at :997-1030, the argument copy degenerating to a self-move deleted at toplev.c:3142 / jump.c:424-443 so it costs zero instructions; and reorg.c:3374's liveness half, where restoring the argument adds a use to CALL_INSN_FUNCTION_USAGE (reorg.c:428) so a delay-slot steal is refused. No generator can reach any of it: every family rewrites statements and declarations, none edits a call's argument list. Two concurrency defects, both found by agents rather than by me: - the includers cache wrote through a FIXED temp name, so concurrent processes clobbered each other's os.replace and the loser saw FileNotFoundError, which reads like a compiler crash on the candidate. Now a unique tempfile per process. - the agent brief now mandates PACK/scratch/ for helper scripts and dumps, and says to retry once when a --try failure names something that is not your own text. Three agents had scripts overwritten mid-run by another agent. One valuable negative: func_80178970 does not close, and the agent proved why by construction rather than by exhaustion — only a call or a return writes $v0 in plain C, and a return's hard write is always emitted after its guarding branch, so combine deletes the call-result copy (combine.c:914-917, use_crosses_set_p at :10127-10130; the SMALL_REGISTER_CLASSES arm at :944-957 is not defined for MIPS). Its early-return rewrite still improves the source from 6 to 2 and reads better than the pinned original. --- .run/P36/agents/PROMPT.md | 6 +- .run/P36/census/lever_census.json | 94 ++-- .run/P36/census/lever_census.txt | 22 +- .run/P36/delever/calibration.json | 370 ++++++------- .run/P36/delever/ledger.jsonl | 637 ++++++++++++++++++++++ docs/lever-progress.tsv | 1 + docs/levers.md | 13 +- src/ov_MAIN_012/ov_MAIN_012_jr_8013F350.c | 5 +- src/ov_MAIN_012/ov_MAIN_012_jr_8016AE5C.c | 15 +- src/ov_SC01_000/ov_SC01_000_after.c | 6 +- src/ov_SC01_000/ov_SC01_000_jr_80135D20.c | 20 +- src/ov_SC01_000/ov_SC01_000_jr_80140608.c | 5 +- src/ov_SC01_000/ov_SC01_000_jr_8015C32C.c | 3 +- src/ov_SC01_000/ov_SC01_000_jr_8016AB6C.c | 15 +- src/ov_SC01_001/ov_SC01_001_after.c | 6 +- src/ov_SC01_001/ov_SC01_001_jr_80135D20.c | 20 +- src/ov_SC01_001/ov_SC01_001_jr_80140608.c | 5 +- src/ov_SC01_001/ov_SC01_001_jr_8015C32C.c | 3 +- src/ov_SC01_001/ov_SC01_001_jr_8016AB6C.c | 15 +- src/ov_SC01_004/ov_SC01_004_after.c | 6 +- src/ov_SC01_004/ov_SC01_004_jr_80135D20.c | 20 +- src/ov_SC01_004/ov_SC01_004_jr_80140608.c | 5 +- src/ov_SC01_004/ov_SC01_004_jr_8015C32C.c | 3 +- src/ov_SC01_004/ov_SC01_004_jr_8016AB6C.c | 15 +- src/ov_SC01_005/ov_SC01_005_after.c | 6 +- src/ov_SC01_005/ov_SC01_005_jr_80135D20.c | 20 +- src/ov_SC01_005/ov_SC01_005_jr_80140608.c | 5 +- src/ov_SC01_005/ov_SC01_005_jr_8015C32C.c | 3 +- src/ov_SC01_005/ov_SC01_005_jr_8016AB6C.c | 15 +- src/ov_SC01_008/ov_SC01_008_after.c | 6 +- src/ov_SC01_008/ov_SC01_008_jr_80135D20.c | 20 +- src/ov_SC01_008/ov_SC01_008_jr_80140608.c | 5 +- src/ov_SC01_008/ov_SC01_008_jr_8015C32C.c | 3 +- src/ov_SC01_008/ov_SC01_008_jr_8016AB6C.c | 15 +- src/ov_SC01_009/ov_SC01_009_after.c | 6 +- src/ov_SC01_009/ov_SC01_009_jr_80135D20.c | 20 +- src/ov_SC01_009/ov_SC01_009_jr_80140608.c | 5 +- src/ov_SC01_009/ov_SC01_009_jr_8015C32C.c | 3 +- src/ov_SC01_009/ov_SC01_009_jr_8016AB6C.c | 15 +- src/ov_SC01_074/ov_SC01_074_after.c | 6 +- src/ov_SC01_074/ov_SC01_074_jr_80135D20.c | 20 +- src/ov_SC01_074/ov_SC01_074_jr_80140608.c | 5 +- src/ov_SC01_074/ov_SC01_074_jr_8015C32C.c | 3 +- src/ov_SC01_074/ov_SC01_074_jr_8016AB6C.c | 15 +- src/ov_SC01_077/ov_SC01_077_jr_80135D20.c | 20 +- src/ov_SC01_080/ov_SC01_080_after.c | 6 +- src/ov_SC01_080/ov_SC01_080_jr_80135D20.c | 20 +- src/ov_SC01_080/ov_SC01_080_jr_80140608.c | 5 +- src/ov_SC01_080/ov_SC01_080_jr_8015C32C.c | 3 +- src/ov_SC01_080/ov_SC01_080_jr_8016AB6C.c | 15 +- src/ov_SC01_084/ov_SC01_084_after.c | 6 +- src/ov_SC01_084/ov_SC01_084_jr_80135D20.c | 20 +- src/ov_SC01_084/ov_SC01_084_jr_80140608.c | 5 +- src/ov_SC01_084/ov_SC01_084_jr_8015C32C.c | 3 +- src/ov_SC01_084/ov_SC01_084_jr_8016AB6C.c | 15 +- src/ov_SC02_000/ov_SC02_000_after.c | 6 +- src/ov_SC02_000/ov_SC02_000_jr_80135D20.c | 20 +- src/ov_SC02_000/ov_SC02_000_jr_80140608.c | 5 +- src/ov_SC02_000/ov_SC02_000_jr_8015C32C.c | 3 +- src/ov_SC02_000/ov_SC02_000_jr_8016AB6C.c | 15 +- src/ov_SC02_004/ov_SC02_004_after.c | 6 +- src/ov_SC02_004/ov_SC02_004_jr_80135D20.c | 20 +- src/ov_SC02_004/ov_SC02_004_jr_80140608.c | 5 +- src/ov_SC02_004/ov_SC02_004_jr_8015C32C.c | 3 +- src/ov_SC02_004/ov_SC02_004_jr_8016AB6C.c | 15 +- src/ov_SC02_005/ov_SC02_005_after.c | 6 +- src/ov_SC02_005/ov_SC02_005_jr_80135D20.c | 20 +- src/ov_SC02_005/ov_SC02_005_jr_80140608.c | 5 +- src/ov_SC02_005/ov_SC02_005_jr_8015C32C.c | 3 +- src/ov_SC02_005/ov_SC02_005_jr_8016AB6C.c | 15 +- src/ov_SC02_011/ov_SC02_011_after.c | 6 +- src/ov_SC02_011/ov_SC02_011_jr_80135D20.c | 20 +- src/ov_SC02_011/ov_SC02_011_jr_80140608.c | 5 +- src/ov_SC02_011/ov_SC02_011_jr_8015C32C.c | 3 +- src/ov_SC02_011/ov_SC02_011_jr_8016AB6C.c | 15 +- src/ov_SC02_015/ov_SC02_015_after.c | 6 +- src/ov_SC02_015/ov_SC02_015_jr_80135D20.c | 20 +- src/ov_SC02_015/ov_SC02_015_jr_80140608.c | 5 +- src/ov_SC02_015/ov_SC02_015_jr_8015C32C.c | 3 +- src/ov_SC02_015/ov_SC02_015_jr_8016AB6C.c | 15 +- src/ov_SC02_016/ov_SC02_016_after.c | 6 +- src/ov_SC02_016/ov_SC02_016_jr_80135D20.c | 20 +- src/ov_SC02_016/ov_SC02_016_jr_80140608.c | 5 +- src/ov_SC02_016/ov_SC02_016_jr_8015C32C.c | 3 +- src/ov_SC02_016/ov_SC02_016_jr_8016AB6C.c | 15 +- src/ov_SC02_017/ov_SC02_017_after.c | 6 +- src/ov_SC02_017/ov_SC02_017_jr_80135D20.c | 20 +- src/ov_SC02_017/ov_SC02_017_jr_80140608.c | 5 +- src/ov_SC02_017/ov_SC02_017_jr_8015C32C.c | 3 +- src/ov_SC02_017/ov_SC02_017_jr_8016AB6C.c | 15 +- src/ov_SC02_021/ov_SC02_021_after.c | 6 +- src/ov_SC02_021/ov_SC02_021_jr_80135D20.c | 20 +- src/ov_SC02_021/ov_SC02_021_jr_80140608.c | 5 +- src/ov_SC02_021/ov_SC02_021_jr_8015C32C.c | 3 +- src/ov_SC02_021/ov_SC02_021_jr_8016AB6C.c | 15 +- src/ov_SC02_026/ov_SC02_026_after.c | 6 +- src/ov_SC02_026/ov_SC02_026_jr_80135D20.c | 20 +- src/ov_SC02_026/ov_SC02_026_jr_80140608.c | 5 +- src/ov_SC02_026/ov_SC02_026_jr_8015C32C.c | 3 +- src/ov_SC02_026/ov_SC02_026_jr_8016AB6C.c | 15 +- src/ov_SC02_027/ov_SC02_027_after.c | 6 +- src/ov_SC02_027/ov_SC02_027_jr_80135D20.c | 20 +- src/ov_SC02_027/ov_SC02_027_jr_80140608.c | 5 +- src/ov_SC02_027/ov_SC02_027_jr_8015C32C.c | 3 +- src/ov_SC02_027/ov_SC02_027_jr_8016AB6C.c | 15 +- src/ov_SC02_028/ov_SC02_028_after.c | 6 +- src/ov_SC02_028/ov_SC02_028_jr_80135D20.c | 20 +- src/ov_SC02_028/ov_SC02_028_jr_80140608.c | 5 +- src/ov_SC02_028/ov_SC02_028_jr_8015C32C.c | 3 +- src/ov_SC02_028/ov_SC02_028_jr_8016AB6C.c | 15 +- src/ov_SC02_031/ov_SC02_031_after.c | 6 +- src/ov_SC02_031/ov_SC02_031_jr_80135D20.c | 20 +- src/ov_SC02_031/ov_SC02_031_jr_80140608.c | 5 +- src/ov_SC02_031/ov_SC02_031_jr_8015C32C.c | 3 +- src/ov_SC02_031/ov_SC02_031_jr_8016AB6C.c | 15 +- src/ov_SC02_035/ov_SC02_035_after.c | 6 +- src/ov_SC02_035/ov_SC02_035_jr_80135D20.c | 20 +- src/ov_SC02_035/ov_SC02_035_jr_80140608.c | 5 +- src/ov_SC02_035/ov_SC02_035_jr_8015C32C.c | 3 +- src/ov_SC02_035/ov_SC02_035_jr_8016AB6C.c | 15 +- src/ov_SC02_037/ov_SC02_037_jr_8013F350.c | 5 +- src/ov_SC02_037/ov_SC02_037_jr_8016AE5C.c | 15 +- src/ov_SC02_039/ov_SC02_039_after.c | 6 +- src/ov_SC02_039/ov_SC02_039_jr_80135D20.c | 20 +- src/ov_SC02_039/ov_SC02_039_jr_80140608.c | 5 +- src/ov_SC02_039/ov_SC02_039_jr_8015C32C.c | 3 +- src/ov_SC02_039/ov_SC02_039_jr_8016AB6C.c | 15 +- src/ov_SC02_041/ov_SC02_041_after.c | 6 +- src/ov_SC02_041/ov_SC02_041_jr_80135D20.c | 20 +- src/ov_SC02_041/ov_SC02_041_jr_80140608.c | 5 +- src/ov_SC02_041/ov_SC02_041_jr_8015C32C.c | 3 +- src/ov_SC02_041/ov_SC02_041_jr_8016AB6C.c | 15 +- src/ov_SC03_001/ov_SC03_001_after.c | 6 +- src/ov_SC03_001/ov_SC03_001_jr_80135D20.c | 20 +- src/ov_SC03_001/ov_SC03_001_jr_80140608.c | 5 +- src/ov_SC03_001/ov_SC03_001_jr_8015C32C.c | 3 +- src/ov_SC03_001/ov_SC03_001_jr_8016AB6C.c | 15 +- src/ov_SC03_002/ov_SC03_002_after.c | 6 +- src/ov_SC03_002/ov_SC03_002_jr_80135D20.c | 20 +- src/ov_SC03_002/ov_SC03_002_jr_80140608.c | 5 +- src/ov_SC03_002/ov_SC03_002_jr_8015C32C.c | 3 +- src/ov_SC03_002/ov_SC03_002_jr_8016AB6C.c | 15 +- src/ov_SC03_003/ov_SC03_003_after.c | 6 +- src/ov_SC03_003/ov_SC03_003_jr_80135D20.c | 20 +- src/ov_SC03_003/ov_SC03_003_jr_80140608.c | 5 +- src/ov_SC03_003/ov_SC03_003_jr_8015C32C.c | 3 +- src/ov_SC03_003/ov_SC03_003_jr_8016AB6C.c | 15 +- src/ov_SC03_006/ov_SC03_006_after.c | 6 +- src/ov_SC03_006/ov_SC03_006_jr_80135D20.c | 20 +- src/ov_SC03_006/ov_SC03_006_jr_80140608.c | 5 +- src/ov_SC03_006/ov_SC03_006_jr_8015C32C.c | 3 +- src/ov_SC03_006/ov_SC03_006_jr_8016AB6C.c | 15 +- src/ov_SC03_007/ov_SC03_007_after.c | 6 +- src/ov_SC03_007/ov_SC03_007_jr_80135D20.c | 20 +- src/ov_SC03_007/ov_SC03_007_jr_80140608.c | 5 +- src/ov_SC03_007/ov_SC03_007_jr_8015C32C.c | 3 +- src/ov_SC03_007/ov_SC03_007_jr_8016AB6C.c | 15 +- src/ov_SC03_010/ov_SC03_010_after.c | 6 +- src/ov_SC03_010/ov_SC03_010_jr_80135D20.c | 20 +- src/ov_SC03_010/ov_SC03_010_jr_80140608.c | 5 +- src/ov_SC03_010/ov_SC03_010_jr_8015C32C.c | 3 +- src/ov_SC03_010/ov_SC03_010_jr_8016AB6C.c | 15 +- src/ov_SC03_011/ov_SC03_011_after.c | 6 +- src/ov_SC03_011/ov_SC03_011_jr_80135D20.c | 20 +- src/ov_SC03_011/ov_SC03_011_jr_80140608.c | 5 +- src/ov_SC03_011/ov_SC03_011_jr_8015C32C.c | 3 +- src/ov_SC03_011/ov_SC03_011_jr_8016AB6C.c | 15 +- src/ov_SC03_012/ov_SC03_012_after.c | 6 +- src/ov_SC03_012/ov_SC03_012_jr_80135D20.c | 20 +- src/ov_SC03_012/ov_SC03_012_jr_80140608.c | 5 +- src/ov_SC03_012/ov_SC03_012_jr_8015C32C.c | 3 +- src/ov_SC03_012/ov_SC03_012_jr_8016AB6C.c | 15 +- src/ov_SC03_013/ov_SC03_013_after.c | 6 +- src/ov_SC03_013/ov_SC03_013_jr_80135D20.c | 20 +- src/ov_SC03_013/ov_SC03_013_jr_80140608.c | 5 +- src/ov_SC03_013/ov_SC03_013_jr_8015C32C.c | 3 +- src/ov_SC03_013/ov_SC03_013_jr_8016AB6C.c | 15 +- src/ov_SC03_014/ov_SC03_014_after.c | 6 +- src/ov_SC03_014/ov_SC03_014_jr_80135D20.c | 20 +- src/ov_SC03_014/ov_SC03_014_jr_80140608.c | 5 +- src/ov_SC03_014/ov_SC03_014_jr_8015C32C.c | 3 +- src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.c | 15 +- src/ov_SC03_023/ov_SC03_023_after.c | 6 +- src/ov_SC03_023/ov_SC03_023_jr_80135D20.c | 20 +- src/ov_SC03_023/ov_SC03_023_jr_80140608.c | 5 +- src/ov_SC03_023/ov_SC03_023_jr_8015C32C.c | 3 +- src/ov_SC03_023/ov_SC03_023_jr_8016AB6C.c | 15 +- src/ov_SC03_024/ov_SC03_024_after.c | 6 +- src/ov_SC03_024/ov_SC03_024_jr_80135D20.c | 20 +- src/ov_SC03_024/ov_SC03_024_jr_80140608.c | 5 +- src/ov_SC03_024/ov_SC03_024_jr_8015C32C.c | 3 +- src/ov_SC03_024/ov_SC03_024_jr_8016AB6C.c | 15 +- src/ov_SC03_028/ov_SC03_028_after.c | 6 +- src/ov_SC03_028/ov_SC03_028_jr_80135D20.c | 20 +- src/ov_SC03_028/ov_SC03_028_jr_80140608.c | 5 +- src/ov_SC03_028/ov_SC03_028_jr_8015C32C.c | 3 +- src/ov_SC03_028/ov_SC03_028_jr_8016AB6C.c | 15 +- src/ov_SC03_029/ov_SC03_029_after.c | 6 +- src/ov_SC03_029/ov_SC03_029_jr_80135D20.c | 20 +- src/ov_SC03_029/ov_SC03_029_jr_80140608.c | 5 +- src/ov_SC03_029/ov_SC03_029_jr_8015C32C.c | 3 +- src/ov_SC03_029/ov_SC03_029_jr_8016AB6C.c | 15 +- src/ov_SC03_030/ov_SC03_030_after.c | 6 +- src/ov_SC03_030/ov_SC03_030_jr_80135D20.c | 20 +- src/ov_SC03_030/ov_SC03_030_jr_80140608.c | 5 +- src/ov_SC03_030/ov_SC03_030_jr_8015C32C.c | 3 +- src/ov_SC03_030/ov_SC03_030_jr_8016AB6C.c | 15 +- src/ov_SC03_031/ov_SC03_031_after.c | 6 +- src/ov_SC03_031/ov_SC03_031_jr_80135D20.c | 20 +- src/ov_SC03_031/ov_SC03_031_jr_80140608.c | 5 +- src/ov_SC03_031/ov_SC03_031_jr_8015C32C.c | 3 +- src/ov_SC03_031/ov_SC03_031_jr_8016AB6C.c | 15 +- src/ov_SC03_089/ov_SC03_089_after.c | 6 +- src/ov_SC03_089/ov_SC03_089_jr_80135D20.c | 20 +- src/ov_SC03_089/ov_SC03_089_jr_80140608.c | 5 +- src/ov_SC03_089/ov_SC03_089_jr_8015C32C.c | 3 +- src/ov_SC03_089/ov_SC03_089_jr_8016AB6C.c | 15 +- src/ov_SC03_090/ov_SC03_090_after.c | 6 +- src/ov_SC03_090/ov_SC03_090_jr_80135D20.c | 20 +- src/ov_SC03_090/ov_SC03_090_jr_80140608.c | 5 +- src/ov_SC03_090/ov_SC03_090_jr_8015C32C.c | 3 +- src/ov_SC03_090/ov_SC03_090_jr_8016AB6C.c | 15 +- src/ov_SC03_091/ov_SC03_091_after.c | 6 +- src/ov_SC03_091/ov_SC03_091_jr_80135D20.c | 20 +- src/ov_SC03_091/ov_SC03_091_jr_80140608.c | 5 +- src/ov_SC03_091/ov_SC03_091_jr_8015C32C.c | 3 +- src/ov_SC03_091/ov_SC03_091_jr_8016AB6C.c | 15 +- src/ov_SC03_092/ov_SC03_092_after.c | 6 +- src/ov_SC03_092/ov_SC03_092_jr_80135D20.c | 20 +- src/ov_SC03_092/ov_SC03_092_jr_80140608.c | 5 +- src/ov_SC03_092/ov_SC03_092_jr_8015C32C.c | 3 +- src/ov_SC03_092/ov_SC03_092_jr_8016AB6C.c | 15 +- src/ov_SC03_093/ov_SC03_093_after.c | 6 +- src/ov_SC03_093/ov_SC03_093_jr_80135D20.c | 20 +- src/ov_SC03_093/ov_SC03_093_jr_80140608.c | 5 +- src/ov_SC03_093/ov_SC03_093_jr_8015C32C.c | 3 +- src/ov_SC03_093/ov_SC03_093_jr_8016AB6C.c | 15 +- src/ov_SC03_094/ov_SC03_094_after.c | 6 +- src/ov_SC03_094/ov_SC03_094_jr_80135D20.c | 20 +- src/ov_SC03_094/ov_SC03_094_jr_80140608.c | 5 +- src/ov_SC03_094/ov_SC03_094_jr_8015C32C.c | 3 +- src/ov_SC03_094/ov_SC03_094_jr_8016AB6C.c | 15 +- src/ov_SC03_095/ov_SC03_095_after.c | 6 +- src/ov_SC03_095/ov_SC03_095_jr_80135D20.c | 20 +- src/ov_SC03_095/ov_SC03_095_jr_80140608.c | 5 +- src/ov_SC03_095/ov_SC03_095_jr_8015C32C.c | 3 +- src/ov_SC03_095/ov_SC03_095_jr_8016AB6C.c | 15 +- src/ov_SC03_096/ov_SC03_096_after.c | 6 +- src/ov_SC03_096/ov_SC03_096_jr_80135D20.c | 20 +- src/ov_SC03_096/ov_SC03_096_jr_80140608.c | 5 +- src/ov_SC03_096/ov_SC03_096_jr_8015C32C.c | 3 +- src/ov_SC03_096/ov_SC03_096_jr_8016AB6C.c | 15 +- src/ov_SC03_097/ov_SC03_097_after.c | 6 +- src/ov_SC03_097/ov_SC03_097_jr_80135D20.c | 20 +- src/ov_SC03_097/ov_SC03_097_jr_80140608.c | 5 +- src/ov_SC03_097/ov_SC03_097_jr_8015C32C.c | 3 +- src/ov_SC03_097/ov_SC03_097_jr_8016AB6C.c | 15 +- src/ov_SC03_098/ov_SC03_098_after.c | 6 +- src/ov_SC03_098/ov_SC03_098_jr_80135D20.c | 20 +- src/ov_SC03_098/ov_SC03_098_jr_80140608.c | 5 +- src/ov_SC03_098/ov_SC03_098_jr_8015C32C.c | 3 +- src/ov_SC03_098/ov_SC03_098_jr_8016AB6C.c | 15 +- src/ov_SC03_099/ov_SC03_099_after.c | 6 +- src/ov_SC03_099/ov_SC03_099_jr_80135D20.c | 20 +- src/ov_SC03_099/ov_SC03_099_jr_80140608.c | 5 +- src/ov_SC03_099/ov_SC03_099_jr_8015C32C.c | 3 +- src/ov_SC03_099/ov_SC03_099_jr_8016AB6C.c | 15 +- src/ov_SC03_100/ov_SC03_100_after.c | 6 +- src/ov_SC03_100/ov_SC03_100_jr_80135D20.c | 20 +- src/ov_SC03_100/ov_SC03_100_jr_80140608.c | 5 +- src/ov_SC03_100/ov_SC03_100_jr_8015C32C.c | 3 +- src/ov_SC03_100/ov_SC03_100_jr_8016AB6C.c | 15 +- src/ov_SC03_101/ov_SC03_101_after.c | 6 +- src/ov_SC03_101/ov_SC03_101_jr_80135D20.c | 20 +- src/ov_SC03_101/ov_SC03_101_jr_80140608.c | 5 +- src/ov_SC03_101/ov_SC03_101_jr_8015C32C.c | 3 +- src/ov_SC03_101/ov_SC03_101_jr_8016AB6C.c | 15 +- src/ov_SC03_102/ov_SC03_102_after.c | 6 +- src/ov_SC03_102/ov_SC03_102_jr_80135D20.c | 20 +- src/ov_SC03_102/ov_SC03_102_jr_80140608.c | 5 +- src/ov_SC03_102/ov_SC03_102_jr_8015C32C.c | 3 +- src/ov_SC03_102/ov_SC03_102_jr_8016AB6C.c | 15 +- src/ov_SC03_103/ov_SC03_103_after.c | 6 +- src/ov_SC03_103/ov_SC03_103_jr_80135D20.c | 20 +- src/ov_SC03_103/ov_SC03_103_jr_80140608.c | 5 +- src/ov_SC03_103/ov_SC03_103_jr_8015C32C.c | 3 +- src/ov_SC03_103/ov_SC03_103_jr_8016AB6C.c | 15 +- src/ov_SC03_104/ov_SC03_104_after.c | 6 +- src/ov_SC03_104/ov_SC03_104_jr_80135D20.c | 20 +- src/ov_SC03_104/ov_SC03_104_jr_80140608.c | 5 +- src/ov_SC03_104/ov_SC03_104_jr_8015C32C.c | 3 +- src/ov_SC03_104/ov_SC03_104_jr_8016AB6C.c | 15 +- src/ov_SC03_105/ov_SC03_105_after.c | 6 +- src/ov_SC03_105/ov_SC03_105_jr_80135D20.c | 20 +- src/ov_SC03_105/ov_SC03_105_jr_80140608.c | 5 +- src/ov_SC03_105/ov_SC03_105_jr_8015C32C.c | 3 +- src/ov_SC03_105/ov_SC03_105_jr_8016AB6C.c | 15 +- src/ov_SC03_107/ov_SC03_107_jr_8013F350.c | 5 +- src/ov_SC03_107/ov_SC03_107_jr_8016AE5C.c | 15 +- src/ov_SC03_108/ov_SC03_108_after.c | 6 +- src/ov_SC03_108/ov_SC03_108_jr_80135D20.c | 20 +- src/ov_SC03_108/ov_SC03_108_jr_80140608.c | 5 +- src/ov_SC03_108/ov_SC03_108_jr_8015C32C.c | 3 +- src/ov_SC03_108/ov_SC03_108_jr_8016AB6C.c | 15 +- src/ov_SC03_109/ov_SC03_109_after.c | 6 +- src/ov_SC03_109/ov_SC03_109_jr_80135D20.c | 20 +- src/ov_SC03_109/ov_SC03_109_jr_80140608.c | 5 +- src/ov_SC03_109/ov_SC03_109_jr_8015C32C.c | 3 +- src/ov_SC03_109/ov_SC03_109_jr_8016AB6C.c | 15 +- src/ov_SC03_110/ov_SC03_110_after.c | 6 +- src/ov_SC03_110/ov_SC03_110_jr_80135D20.c | 20 +- src/ov_SC03_110/ov_SC03_110_jr_80140608.c | 5 +- src/ov_SC03_110/ov_SC03_110_jr_8015C32C.c | 3 +- src/ov_SC03_110/ov_SC03_110_jr_8016AB6C.c | 15 +- src/ov_SC03_111/ov_SC03_111_after.c | 6 +- src/ov_SC03_111/ov_SC03_111_jr_80135D20.c | 20 +- src/ov_SC03_111/ov_SC03_111_jr_80140608.c | 5 +- src/ov_SC03_111/ov_SC03_111_jr_8015C32C.c | 3 +- src/ov_SC03_111/ov_SC03_111_jr_8016AB6C.c | 15 +- src/ov_SC03_112/ov_SC03_112_after.c | 6 +- src/ov_SC03_112/ov_SC03_112_jr_80135D20.c | 20 +- src/ov_SC03_112/ov_SC03_112_jr_80140608.c | 5 +- src/ov_SC03_112/ov_SC03_112_jr_8015C32C.c | 3 +- src/ov_SC03_112/ov_SC03_112_jr_8016AB6C.c | 15 +- src/ov_SC03_113/ov_SC03_113_after.c | 6 +- src/ov_SC03_113/ov_SC03_113_jr_80135D20.c | 20 +- src/ov_SC03_113/ov_SC03_113_jr_80140608.c | 5 +- src/ov_SC03_113/ov_SC03_113_jr_8015C32C.c | 3 +- src/ov_SC03_113/ov_SC03_113_jr_8016AB6C.c | 15 +- src/ov_SC03_114/ov_SC03_114_after.c | 6 +- src/ov_SC03_114/ov_SC03_114_jr_80135D20.c | 20 +- src/ov_SC03_114/ov_SC03_114_jr_80140608.c | 5 +- src/ov_SC03_114/ov_SC03_114_jr_8015C32C.c | 3 +- src/ov_SC03_114/ov_SC03_114_jr_8016AB6C.c | 15 +- src/ov_SC03_115/ov_SC03_115_after.c | 6 +- src/ov_SC03_115/ov_SC03_115_jr_80135D20.c | 20 +- src/ov_SC03_115/ov_SC03_115_jr_80140608.c | 5 +- src/ov_SC03_115/ov_SC03_115_jr_8015C32C.c | 3 +- src/ov_SC03_115/ov_SC03_115_jr_8016AB6C.c | 15 +- src/ov_SC03_116/ov_SC03_116_after.c | 6 +- src/ov_SC03_116/ov_SC03_116_jr_80135D20.c | 20 +- src/ov_SC03_116/ov_SC03_116_jr_80140608.c | 5 +- src/ov_SC03_116/ov_SC03_116_jr_8015C32C.c | 3 +- src/ov_SC03_116/ov_SC03_116_jr_8016AB6C.c | 15 +- src/ov_SC03_117/ov_SC03_117_after.c | 6 +- src/ov_SC03_117/ov_SC03_117_jr_80135D20.c | 20 +- src/ov_SC03_117/ov_SC03_117_jr_80140608.c | 5 +- src/ov_SC03_117/ov_SC03_117_jr_8015C32C.c | 3 +- src/ov_SC03_117/ov_SC03_117_jr_8016AB6C.c | 15 +- src/ov_SC03_118/ov_SC03_118_after.c | 6 +- src/ov_SC03_118/ov_SC03_118_jr_80135D20.c | 20 +- src/ov_SC03_118/ov_SC03_118_jr_80140608.c | 5 +- src/ov_SC03_118/ov_SC03_118_jr_8015C32C.c | 3 +- src/ov_SC03_118/ov_SC03_118_jr_8016AB6C.c | 15 +- src/ov_SC03_121/ov_SC03_121_after.c | 6 +- src/ov_SC03_121/ov_SC03_121_jr_80135D20.c | 20 +- src/ov_SC03_121/ov_SC03_121_jr_80140608.c | 5 +- src/ov_SC03_121/ov_SC03_121_jr_8015C32C.c | 3 +- src/ov_SC03_121/ov_SC03_121_jr_8016AB6C.c | 15 +- src/ov_SC03_124/ov_SC03_124_after.c | 6 +- src/ov_SC03_124/ov_SC03_124_jr_80135D20.c | 20 +- src/ov_SC03_124/ov_SC03_124_jr_80140608.c | 5 +- src/ov_SC03_124/ov_SC03_124_jr_8015C32C.c | 3 +- src/ov_SC03_124/ov_SC03_124_jr_8016AB6C.c | 15 +- src/ov_SC03_125/ov_SC03_125_after.c | 6 +- src/ov_SC03_125/ov_SC03_125_jr_80135D20.c | 20 +- src/ov_SC03_125/ov_SC03_125_jr_80140608.c | 5 +- src/ov_SC03_125/ov_SC03_125_jr_8015C32C.c | 3 +- src/ov_SC03_125/ov_SC03_125_jr_8016AB6C.c | 15 +- src/ov_SC04_000/ov_SC04_000_after.c | 6 +- src/ov_SC04_000/ov_SC04_000_jr_80135D20.c | 20 +- src/ov_SC04_000/ov_SC04_000_jr_80140608.c | 5 +- src/ov_SC04_000/ov_SC04_000_jr_8015C32C.c | 3 +- src/ov_SC04_000/ov_SC04_000_jr_8016AB6C.c | 15 +- src/ov_SC04_002/ov_SC04_002_after.c | 6 +- src/ov_SC04_002/ov_SC04_002_jr_80135D20.c | 20 +- src/ov_SC04_002/ov_SC04_002_jr_80140608.c | 5 +- src/ov_SC04_002/ov_SC04_002_jr_8015C32C.c | 3 +- src/ov_SC04_002/ov_SC04_002_jr_8016AB6C.c | 15 +- src/ov_SC04_003/ov_SC04_003_after.c | 6 +- src/ov_SC04_003/ov_SC04_003_jr_80135D20.c | 20 +- src/ov_SC04_003/ov_SC04_003_jr_80140608.c | 5 +- src/ov_SC04_003/ov_SC04_003_jr_8015C32C.c | 3 +- src/ov_SC04_003/ov_SC04_003_jr_8016AB6C.c | 15 +- src/ov_SC04_004/ov_SC04_004_after.c | 6 +- src/ov_SC04_004/ov_SC04_004_jr_80135D20.c | 20 +- src/ov_SC04_004/ov_SC04_004_jr_80140608.c | 5 +- src/ov_SC04_004/ov_SC04_004_jr_8015C32C.c | 3 +- src/ov_SC04_004/ov_SC04_004_jr_8016AB6C.c | 15 +- src/ov_SC04_005/ov_SC04_005_after.c | 6 +- src/ov_SC04_005/ov_SC04_005_jr_80135D20.c | 20 +- src/ov_SC04_005/ov_SC04_005_jr_80140608.c | 5 +- src/ov_SC04_005/ov_SC04_005_jr_8015C32C.c | 3 +- src/ov_SC04_005/ov_SC04_005_jr_8016AB6C.c | 15 +- src/ov_SC04_006/ov_SC04_006_after.c | 6 +- src/ov_SC04_006/ov_SC04_006_jr_80135D20.c | 20 +- src/ov_SC04_006/ov_SC04_006_jr_80140608.c | 5 +- src/ov_SC04_006/ov_SC04_006_jr_8015C32C.c | 3 +- src/ov_SC04_006/ov_SC04_006_jr_8016AB6C.c | 15 +- src/ov_SC04_007/ov_SC04_007_after.c | 6 +- src/ov_SC04_007/ov_SC04_007_jr_80135D20.c | 20 +- src/ov_SC04_007/ov_SC04_007_jr_80140608.c | 5 +- src/ov_SC04_007/ov_SC04_007_jr_8015C32C.c | 3 +- src/ov_SC04_007/ov_SC04_007_jr_8016AB6C.c | 15 +- src/ov_SC04_009/ov_SC04_009_after.c | 6 +- src/ov_SC04_009/ov_SC04_009_jr_80135D20.c | 20 +- src/ov_SC04_009/ov_SC04_009_jr_80140608.c | 5 +- src/ov_SC04_009/ov_SC04_009_jr_8015C32C.c | 3 +- src/ov_SC04_009/ov_SC04_009_jr_8016AB6C.c | 15 +- src/ov_SC04_010/ov_SC04_010_after.c | 6 +- src/ov_SC04_010/ov_SC04_010_jr_80135D20.c | 20 +- src/ov_SC04_010/ov_SC04_010_jr_80140608.c | 5 +- src/ov_SC04_010/ov_SC04_010_jr_8015C32C.c | 3 +- src/ov_SC04_010/ov_SC04_010_jr_8016AB6C.c | 15 +- src/ov_SC04_011/ov_SC04_011_after.c | 6 +- src/ov_SC04_011/ov_SC04_011_jr_80135D20.c | 20 +- src/ov_SC04_011/ov_SC04_011_jr_80140608.c | 5 +- src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c | 3 +- src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c | 15 +- src/ov_SC04_012/ov_SC04_012_after.c | 6 +- src/ov_SC04_012/ov_SC04_012_jr_80135D20.c | 20 +- src/ov_SC04_012/ov_SC04_012_jr_80140608.c | 5 +- src/ov_SC04_012/ov_SC04_012_jr_8015C32C.c | 3 +- src/ov_SC04_012/ov_SC04_012_jr_8016AB6C.c | 15 +- src/ov_SC04_015/ov_SC04_015_after.c | 6 +- src/ov_SC04_015/ov_SC04_015_jr_80135D20.c | 20 +- src/ov_SC04_015/ov_SC04_015_jr_80140608.c | 5 +- src/ov_SC04_015/ov_SC04_015_jr_8015C32C.c | 3 +- src/ov_SC04_015/ov_SC04_015_jr_8016AB6C.c | 15 +- src/ov_SC04_016/ov_SC04_016_after.c | 6 +- src/ov_SC04_016/ov_SC04_016_jr_80135D20.c | 20 +- src/ov_SC04_016/ov_SC04_016_jr_80140608.c | 5 +- src/ov_SC04_016/ov_SC04_016_jr_8015C32C.c | 3 +- src/ov_SC04_016/ov_SC04_016_jr_8016AB6C.c | 15 +- src/ov_SC04_018/ov_SC04_018_after.c | 6 +- src/ov_SC04_018/ov_SC04_018_jr_80135D20.c | 20 +- src/ov_SC04_018/ov_SC04_018_jr_80140608.c | 5 +- src/ov_SC04_018/ov_SC04_018_jr_8015C32C.c | 3 +- src/ov_SC04_018/ov_SC04_018_jr_8016AB6C.c | 15 +- src/ov_SC04_020/ov_SC04_020_after.c | 6 +- src/ov_SC04_020/ov_SC04_020_jr_80135D20.c | 20 +- src/ov_SC04_020/ov_SC04_020_jr_80140608.c | 5 +- src/ov_SC04_020/ov_SC04_020_jr_8015C32C.c | 3 +- src/ov_SC04_020/ov_SC04_020_jr_8016AB6C.c | 15 +- src/ov_SC05_000/ov_SC05_000_after.c | 6 +- src/ov_SC05_000/ov_SC05_000_jr_80135D20.c | 20 +- src/ov_SC05_000/ov_SC05_000_jr_80140608.c | 5 +- src/ov_SC05_000/ov_SC05_000_jr_8015C32C.c | 3 +- src/ov_SC05_000/ov_SC05_000_jr_8016AB6C.c | 15 +- src/ov_SC05_001/ov_SC05_001_after.c | 6 +- src/ov_SC05_001/ov_SC05_001_jr_80135D20.c | 20 +- src/ov_SC05_001/ov_SC05_001_jr_80140608.c | 5 +- src/ov_SC05_001/ov_SC05_001_jr_8015C32C.c | 3 +- src/ov_SC05_001/ov_SC05_001_jr_8016AB6C.c | 15 +- src/ov_SC05_002/ov_SC05_002_after.c | 6 +- src/ov_SC05_002/ov_SC05_002_jr_80135D20.c | 20 +- src/ov_SC05_002/ov_SC05_002_jr_80140608.c | 5 +- src/ov_SC05_002/ov_SC05_002_jr_8015C32C.c | 3 +- src/ov_SC05_002/ov_SC05_002_jr_8016AB6C.c | 15 +- src/ov_SC05_003/ov_SC05_003_after.c | 6 +- src/ov_SC05_003/ov_SC05_003_jr_80135D20.c | 20 +- src/ov_SC05_003/ov_SC05_003_jr_80140608.c | 5 +- src/ov_SC05_003/ov_SC05_003_jr_8015C32C.c | 3 +- src/ov_SC05_003/ov_SC05_003_jr_8016AB6C.c | 15 +- src/ov_SC05_004/ov_SC05_004_after.c | 6 +- src/ov_SC05_004/ov_SC05_004_jr_80135D20.c | 20 +- src/ov_SC05_004/ov_SC05_004_jr_80140608.c | 5 +- src/ov_SC05_004/ov_SC05_004_jr_8015C32C.c | 3 +- src/ov_SC05_004/ov_SC05_004_jr_8016AB6C.c | 15 +- src/ov_SC05_005/ov_SC05_005_after.c | 6 +- src/ov_SC05_005/ov_SC05_005_jr_80135D20.c | 20 +- src/ov_SC05_005/ov_SC05_005_jr_80140608.c | 5 +- src/ov_SC05_005/ov_SC05_005_jr_8015C32C.c | 3 +- src/ov_SC05_005/ov_SC05_005_jr_8016AB6C.c | 15 +- src/ov_SC05_006/ov_SC05_006_after.c | 6 +- src/ov_SC05_006/ov_SC05_006_jr_80135D20.c | 20 +- src/ov_SC05_006/ov_SC05_006_jr_80140608.c | 5 +- src/ov_SC05_006/ov_SC05_006_jr_8015C32C.c | 3 +- src/ov_SC05_006/ov_SC05_006_jr_8016AB6C.c | 15 +- src/ov_SC05_007/ov_SC05_007_after.c | 6 +- src/ov_SC05_007/ov_SC05_007_jr_80135D20.c | 20 +- src/ov_SC05_007/ov_SC05_007_jr_80140608.c | 5 +- src/ov_SC05_007/ov_SC05_007_jr_8015C32C.c | 3 +- src/ov_SC05_007/ov_SC05_007_jr_8016AB6C.c | 15 +- src/ov_SC05_008/ov_SC05_008_after.c | 6 +- src/ov_SC05_008/ov_SC05_008_jr_80135D20.c | 20 +- src/ov_SC05_008/ov_SC05_008_jr_80140608.c | 5 +- src/ov_SC05_008/ov_SC05_008_jr_8015C32C.c | 3 +- src/ov_SC05_008/ov_SC05_008_jr_8016AB6C.c | 15 +- src/ov_SC05_010/ov_SC05_010_after.c | 6 +- src/ov_SC05_010/ov_SC05_010_jr_80135D20.c | 20 +- src/ov_SC05_010/ov_SC05_010_jr_80140608.c | 5 +- src/ov_SC05_010/ov_SC05_010_jr_8015C32C.c | 3 +- src/ov_SC05_010/ov_SC05_010_jr_8016AB6C.c | 15 +- src/ov_SC05_011/ov_SC05_011_after.c | 6 +- src/ov_SC05_011/ov_SC05_011_jr_80135D20.c | 20 +- src/ov_SC05_011/ov_SC05_011_jr_80140608.c | 5 +- src/ov_SC05_011/ov_SC05_011_jr_8015C32C.c | 3 +- src/ov_SC05_011/ov_SC05_011_jr_8016AB6C.c | 15 +- src/ov_SC05_017/ov_SC05_017_after.c | 6 +- src/ov_SC05_017/ov_SC05_017_jr_80135D20.c | 20 +- src/ov_SC05_017/ov_SC05_017_jr_80140608.c | 5 +- src/ov_SC05_017/ov_SC05_017_jr_8015C32C.c | 3 +- src/ov_SC05_017/ov_SC05_017_jr_8016AB6C.c | 15 +- src/ov_SC05_018/ov_SC05_018_after.c | 6 +- src/ov_SC05_018/ov_SC05_018_jr_80135D20.c | 20 +- src/ov_SC05_018/ov_SC05_018_jr_80140608.c | 5 +- src/ov_SC05_018/ov_SC05_018_jr_8015C32C.c | 3 +- src/ov_SC05_018/ov_SC05_018_jr_8016AB6C.c | 15 +- src/ov_SC06_000/ov_SC06_000_after.c | 6 +- src/ov_SC06_000/ov_SC06_000_jr_80135D20.c | 20 +- src/ov_SC06_000/ov_SC06_000_jr_80140608.c | 5 +- src/ov_SC06_000/ov_SC06_000_jr_8015C32C.c | 3 +- src/ov_SC06_000/ov_SC06_000_jr_8016AB6C.c | 15 +- src/ov_SC06_006/ov_SC06_006_after.c | 6 +- src/ov_SC06_006/ov_SC06_006_jr_80135D20.c | 20 +- src/ov_SC06_006/ov_SC06_006_jr_80140608.c | 5 +- src/ov_SC06_006/ov_SC06_006_jr_8015C32C.c | 3 +- src/ov_SC06_006/ov_SC06_006_jr_8016AB6C.c | 15 +- src/ov_SC06_008/ov_SC06_008_after.c | 6 +- src/ov_SC06_008/ov_SC06_008_jr_80135D20.c | 20 +- src/ov_SC06_008/ov_SC06_008_jr_80140608.c | 5 +- src/ov_SC06_008/ov_SC06_008_jr_8015C32C.c | 3 +- src/ov_SC06_008/ov_SC06_008_jr_8016AB6C.c | 15 +- src/ov_SC06_010/ov_SC06_010_after.c | 6 +- src/ov_SC06_010/ov_SC06_010_jr_80135D20.c | 20 +- src/ov_SC06_010/ov_SC06_010_jr_80140608.c | 5 +- src/ov_SC06_010/ov_SC06_010_jr_8015C32C.c | 3 +- src/ov_SC06_010/ov_SC06_010_jr_8016AB6C.c | 15 +- src/ov_SC06_011/ov_SC06_011_after.c | 6 +- src/ov_SC06_011/ov_SC06_011_jr_80135D20.c | 20 +- src/ov_SC06_011/ov_SC06_011_jr_80140608.c | 5 +- src/ov_SC06_011/ov_SC06_011_jr_8015C32C.c | 3 +- src/ov_SC06_011/ov_SC06_011_jr_8016AB6C.c | 15 +- src/ov_SC06_013/ov_SC06_013_after.c | 6 +- src/ov_SC06_013/ov_SC06_013_jr_80135D20.c | 20 +- src/ov_SC06_013/ov_SC06_013_jr_80140608.c | 5 +- src/ov_SC06_013/ov_SC06_013_jr_8015C32C.c | 3 +- src/ov_SC06_013/ov_SC06_013_jr_8016AB6C.c | 15 +- src/ov_SC06_014/ov_SC06_014_after.c | 6 +- src/ov_SC06_014/ov_SC06_014_jr_80135D20.c | 20 +- src/ov_SC06_014/ov_SC06_014_jr_80140608.c | 5 +- src/ov_SC06_014/ov_SC06_014_jr_8015C32C.c | 3 +- src/ov_SC06_014/ov_SC06_014_jr_8016AB6C.c | 15 +- src/ov_SC06_015/ov_SC06_015_after.c | 6 +- src/ov_SC06_015/ov_SC06_015_jr_80135D20.c | 20 +- src/ov_SC06_015/ov_SC06_015_jr_80140608.c | 5 +- src/ov_SC06_015/ov_SC06_015_jr_8015C32C.c | 3 +- src/ov_SC06_015/ov_SC06_015_jr_8016AB6C.c | 15 +- src/ov_SC06_016/ov_SC06_016_after.c | 6 +- src/ov_SC06_016/ov_SC06_016_jr_80135D20.c | 20 +- src/ov_SC06_016/ov_SC06_016_jr_80140608.c | 5 +- src/ov_SC06_016/ov_SC06_016_jr_8015C32C.c | 3 +- src/ov_SC06_016/ov_SC06_016_jr_8016AB6C.c | 15 +- src/ov_SC06_018/ov_SC06_018_after.c | 6 +- src/ov_SC06_018/ov_SC06_018_jr_80135D20.c | 20 +- src/ov_SC06_018/ov_SC06_018_jr_80140608.c | 5 +- src/ov_SC06_018/ov_SC06_018_jr_8015C32C.c | 3 +- src/ov_SC06_018/ov_SC06_018_jr_8016AB6C.c | 15 +- src/ov_SC06_020/ov_SC06_020_after.c | 6 +- src/ov_SC06_020/ov_SC06_020_jr_80135D20.c | 20 +- src/ov_SC06_020/ov_SC06_020_jr_80140608.c | 5 +- src/ov_SC06_020/ov_SC06_020_jr_8015C32C.c | 3 +- src/ov_SC06_020/ov_SC06_020_jr_8016AB6C.c | 15 +- src/ov_SC06_022/ov_SC06_022_after.c | 6 +- src/ov_SC06_022/ov_SC06_022_jr_80135D20.c | 20 +- src/ov_SC06_022/ov_SC06_022_jr_80140608.c | 5 +- src/ov_SC06_022/ov_SC06_022_jr_8015C32C.c | 3 +- src/ov_SC06_022/ov_SC06_022_jr_8016AB6C.c | 15 +- src/ov_SC06_024/ov_SC06_024_after.c | 6 +- src/ov_SC06_024/ov_SC06_024_jr_80135D20.c | 20 +- src/ov_SC06_024/ov_SC06_024_jr_80140608.c | 5 +- src/ov_SC06_024/ov_SC06_024_jr_8015C32C.c | 3 +- src/ov_SC06_024/ov_SC06_024_jr_8016AB6C.c | 15 +- src/ov_SC06_025/ov_SC06_025_after.c | 6 +- src/ov_SC06_025/ov_SC06_025_jr_80135D20.c | 20 +- src/ov_SC06_025/ov_SC06_025_jr_80140608.c | 5 +- src/ov_SC06_025/ov_SC06_025_jr_8015C32C.c | 3 +- src/ov_SC06_025/ov_SC06_025_jr_8016AB6C.c | 15 +- src/ov_SC06_027/ov_SC06_027_after.c | 6 +- src/ov_SC06_027/ov_SC06_027_jr_80135D20.c | 20 +- src/ov_SC06_027/ov_SC06_027_jr_80140608.c | 5 +- src/ov_SC06_027/ov_SC06_027_jr_8015C32C.c | 3 +- src/ov_SC06_027/ov_SC06_027_jr_8016AB6C.c | 15 +- src/ov_SC06_029/ov_SC06_029_after.c | 6 +- src/ov_SC06_029/ov_SC06_029_jr_80135D20.c | 20 +- src/ov_SC06_029/ov_SC06_029_jr_80140608.c | 5 +- src/ov_SC06_029/ov_SC06_029_jr_8015C32C.c | 3 +- src/ov_SC06_029/ov_SC06_029_jr_8016AB6C.c | 15 +- src/ov_SC06_030/ov_SC06_030_after.c | 6 +- src/ov_SC06_030/ov_SC06_030_jr_80135D20.c | 20 +- src/ov_SC06_030/ov_SC06_030_jr_80140608.c | 5 +- src/ov_SC06_030/ov_SC06_030_jr_8015C32C.c | 3 +- src/ov_SC06_030/ov_SC06_030_jr_8016AB6C.c | 15 +- src/ov_SC06_032/ov_SC06_032_after.c | 6 +- src/ov_SC06_032/ov_SC06_032_jr_80135D20.c | 20 +- src/ov_SC06_032/ov_SC06_032_jr_80140608.c | 5 +- src/ov_SC06_032/ov_SC06_032_jr_8015C32C.c | 3 +- src/ov_SC06_032/ov_SC06_032_jr_8016AB6C.c | 15 +- src/ov_SC06_033/ov_SC06_033_after.c | 6 +- src/ov_SC06_033/ov_SC06_033_jr_80135D20.c | 20 +- src/ov_SC06_033/ov_SC06_033_jr_80140608.c | 5 +- src/ov_SC06_033/ov_SC06_033_jr_8015C32C.c | 3 +- src/ov_SC06_033/ov_SC06_033_jr_8016AB6C.c | 15 +- src/ov_SC07_000/ov_SC07_000_after.c | 6 +- src/ov_SC07_000/ov_SC07_000_jr_80135D20.c | 20 +- src/ov_SC07_000/ov_SC07_000_jr_80140608.c | 5 +- src/ov_SC07_000/ov_SC07_000_jr_8015C32C.c | 3 +- src/ov_SC07_000/ov_SC07_000_jr_8016AB6C.c | 15 +- src/ov_SC07_001/ov_SC07_001_after.c | 6 +- src/ov_SC07_001/ov_SC07_001_jr_80135D20.c | 20 +- src/ov_SC07_001/ov_SC07_001_jr_80140608.c | 5 +- src/ov_SC07_001/ov_SC07_001_jr_8015C32C.c | 3 +- src/ov_SC07_001/ov_SC07_001_jr_8016AB6C.c | 15 +- src/ov_SC07_002/ov_SC07_002_after.c | 6 +- src/ov_SC07_002/ov_SC07_002_jr_80135D20.c | 20 +- src/ov_SC07_002/ov_SC07_002_jr_80140608.c | 5 +- src/ov_SC07_002/ov_SC07_002_jr_8015C32C.c | 3 +- src/ov_SC07_002/ov_SC07_002_jr_8016AB6C.c | 15 +- src/ov_SC07_006/ov_SC07_006_jr_80140608.c | 5 +- src/ov_SC07_007/ov_SC07_007_jr_80140608.c | 5 +- src/ov_SC07_008/ov_SC07_008_after.c | 6 +- src/ov_SC07_008/ov_SC07_008_jr_80135D20.c | 20 +- src/ov_SC07_008/ov_SC07_008_jr_80140608.c | 5 +- src/ov_SC07_008/ov_SC07_008_jr_8015C32C.c | 3 +- src/ov_SC07_008/ov_SC07_008_jr_8016AB6C.c | 15 +- src/ov_SC07_009/ov_SC07_009_after.c | 6 +- src/ov_SC07_009/ov_SC07_009_jr_80135D20.c | 20 +- src/ov_SC07_009/ov_SC07_009_jr_80140608.c | 5 +- src/ov_SC07_009/ov_SC07_009_jr_8015C32C.c | 3 +- src/ov_SC07_009/ov_SC07_009_jr_8016AB6C.c | 15 +- src/ov_SC07_010/ov_SC07_010_jr_801457A4.c | 11 +- src/ov_SC07_010/ov_SC07_010_jr_8016AE5C.c | 15 +- src/ov_SC07_011/ov_SC07_011_jr_80140608.c | 5 +- src/shared/ov/func_80136334__6e7f4730.h | 20 +- src/shared/ov/func_80136334__ecfcc6f1.h | 20 +- src/shared/ov/func_80143D28__b958d830.h | 5 +- src/shared/ov/func_80143D28__ebe16725.h | 5 +- src/shared/ov/func_8014D820__9ab0f3b9.h | 6 +- src/shared/ov/func_8014D820__ce76d008.h | 6 +- src/shared/ov/func_8015FBE0__7e0b6b06.h | 3 +- src/shared/ov/func_8015FBE0__dd2ea6e8.h | 3 +- src/shared/ov/func_8016B234__1b494b73.h | 15 +- src/shared/ov/func_8016B234__c187857f.h | 15 +- tools/delever.py | 11 +- 645 files changed, 3714 insertions(+), 3686 deletions(-) diff --git a/.run/P36/agents/PROMPT.md b/.run/P36/agents/PROMPT.md index 94f76de26..0a9b89294 100644 --- a/.run/P36/agents/PROMPT.md +++ b/.run/P36/agents/PROMPT.md @@ -42,7 +42,11 @@ HOW TO WORK (the method we are honing — follow it and report where it fell sho into a family, (e) what you tried that did NOT work and why (byte evidence), (f) where the method above fell short. Every claim about a pass is a hypothesis until `--try` shows the bytes; say which claims you proved and which you did not. 4. Do NOT: run `make`, edit anything under `src/`, `tools/`, `docs/` or `config/`, run any git command that changes state, write - outside PACK. If the bytes will not close, stop at your best score with the mechanism written — a precise reading of why is worth + outside PACK. **This includes your own helper scripts, dumps and probe directories: put them in `PACK/scratch/`, never in the + session scratchpad or any shared `/tmp`-like directory.** Agents run in PARALLEL and share those directories: three agents in + S102's burst had their helper scripts overwritten mid-run by another agent, and two of them scored candidates against ANOTHER + agent's function before `--try`'s echo of the TU and function name gave it away. If a `--try` fails with an error that is not + about your own text (an unrelated header, a function that is not yours), RETRY IT ONCE before believing it. If the bytes will not close, stop at your best score with the mechanism written — a precise reading of why is worth more than a lever put back. Report back: the final score, the move(s) in one line each, the mechanism (pass + `file:line`), the generator proposal in one diff --git a/.run/P36/census/lever_census.json b/.run/P36/census/lever_census.json index 632a1486d..aff1bf6f7 100644 --- a/.run/P36/census/lever_census.json +++ b/.run/P36/census/lever_census.json @@ -54,7 +54,7 @@ }, "kinds": { "asm-body/direct": 13, - "barrier/direct": 4199, + "barrier/direct": 3948, "barrier/via-macro": 2, "gte-lever/direct": 362, "gte-lever/via-macro": 100, @@ -63,8 +63,8 @@ "gte/via-macro": 6658, "instruction/direct": 1558, "instruction/via-macro": 22, - "keepalive/direct": 1443, - "launder/direct": 3876, + "keepalive/direct": 1317, + "launder/direct": 3624, "launder/via-macro": 444, "verbatim-body/direct": 2682 } @@ -72,37 +72,37 @@ "binaries": 218, "classes": { "A": { - "bodies": 6575, - "distinct_bodies": 966, + "bodies": 6063, + "distinct_bodies": 963, "file_scope": 0, - "in_bodies": 15965, + "in_bodies": 15324, "kinds": { - "pin": 15965 + "pin": 15324 }, - "marked": 15965, - "sites": 15965, - "tus": 2363, + "marked": 15324, + "sites": 15324, + "tus": 2355, "unmarked": 0 }, "B": { - "bodies": 8625, - "distinct_bodies": 914, + "bodies": 8248, + "distinct_bodies": 912, "file_scope": 13, - "in_bodies": 21549, + "in_bodies": 20920, "kinds": { "asm-body": 13, - "barrier": 4201, + "barrier": 3950, "gte": 6858, "gte-lever": 462, "gte-unsigned": 3, "instruction": 1580, - "keepalive": 1443, - "launder": 4320, + "keepalive": 1317, + "launder": 4068, "verbatim-body": 2682 }, - "marked": 12285, - "sites": 21562, - "tus": 2126, + "marked": 11656, + "sites": 20933, + "tus": 2120, "unmarked": 9277 }, "C": { @@ -149,7 +149,7 @@ }, "F": { "bodies": 428, - "distinct_bodies": 27, + "distinct_bodies": 28, "file_scope": 0, "in_bodies": 445, "kinds": { @@ -207,9 +207,9 @@ "coverage": { "asm": { "comment_dead": 6792, - "live": 37891, + "live": 36621, "macro_block": 194, - "raw": 44877 + "raw": 43607 }, "attribute": { "comment_dead": 0, @@ -225,9 +225,9 @@ }, "register": { "comment_dead": 8587, - "live": 16015, + "live": 15374, "macro_block": 18, - "raw": 24620 + "raw": 23979 }, "volatile": { "comment_dead": 2480, @@ -237,7 +237,7 @@ } }, "coverage_ok": true, - "elapsed_s": 26.6, + "elapsed_s": 27.5, "generated": "2026-09-10", "gte_levers": { "direct": 362, @@ -248,15 +248,15 @@ "via_macro": 100, "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": "fb6c857f7", + "head": "c6b380fcd", "headers": 3181, "levers_AB": { - "asm": 12019, - "bodies": 8249, - "distinct_bodies": 1275, - "marked": 27984, - "pins": 15965, - "sites": 27984, + "asm": 11390, + "bodies": 7612, + "distinct_bodies": 1271, + "marked": 26714, + "pins": 15324, + "sites": 26714, "unmarked": 0, "what": "register pins + asm statements excluding GTE ops: the classes the phase drives to 0" }, @@ -390,18 +390,18 @@ }, "pins": { "bare_name": 15, - "init": 1757, + "init": 1626, "registers": { "$0": 639, "$10": 144, "$11": 5, - "$12": 406, + "$12": 280, "$13": 6, "$14": 139, "$15": 1, - "$16": 1090, + "$16": 961, "$17": 497, - "$18": 311, + "$18": 180, "$19": 572, "$2": 3129, "$20": 284, @@ -410,11 +410,11 @@ "$23": 144, "$25": 1, "$29": 13, - "$3": 1919, + "$3": 1790, "$4": 2172, "$5": 2178, "$6": 470, - "$7": 704, + "$7": 578, "$8": 429, "$9": 283, "7": 1, @@ -423,30 +423,30 @@ "v0": 2, "v1": 3 }, - "sites": 15965, + "sites": 15324, "sp": 13, "spelling": { - "__asm__": 15887, + "__asm__": 15246, "asm": 78 }, "volatile_qualified": 7, "zero": 639 }, - "src_stamp": "6c5ac5576d493a26", + "src_stamp": "7453bfe885c43cae", "tus": 4121, "unclassified": 0, "union_AD": { - "bodies": 11512, + "bodies": 10875, "by_kind": { "main": 165, "md": 135, - "ov": 10961, + "ov": 10334, "resident": 10, - "shared": 241 + "shared": 231 }, - "copies_in_multi": 10246, - "distinct_bodies": 1560, - "multi_copy_classes": 294 + "copies_in_multi": 9609, + "distinct_bodies": 1556, + "multi_copy_classes": 290 }, "verbatim_excluded": { "functions": 13, diff --git a/.run/P36/census/lever_census.txt b/.run/P36/census/lever_census.txt index 780704e66..660f34f26 100644 --- a/.run/P36/census/lever_census.txt +++ b/.run/P36/census/lever_census.txt @@ -1,25 +1,25 @@ lever_census: 218 binaries · 4,121 TUs + 3,181 headers · coverage OK · unclassified 0 · verbatim excluded 13 fn / 14 sites (manifest 13) - coverage asm raw 44877 = live 37891 + macro-block 194 + comment/dead 6792 - coverage register raw 24620 = live 16015 + macro-block 18 + comment/dead 8587 + coverage asm raw 43607 = live 36621 + macro-block 194 + comment/dead 6792 + coverage register raw 23979 = live 15374 + macro-block 18 + comment/dead 8587 coverage volatile raw 4456 = live 1894 + macro-block 82 + comment/dead 2480 coverage builtin raw 599 = live 445 + macro-block 0 + comment/dead 154 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 15965 15965 0 6575 966 2363 15965 0 {'pin': 15965} - B asm 21562 21549 13 8625 914 2126 12285 9277 {'instruction': 1580, 'keepalive': 1443, 'gte': 6858, 'barrier': 4201, 'launder': 4320, 'gte-lever': 462, 'gte-unsigned': 3, 'asm-body': 13, 'verbatim-body': 2682} - C volatile 1590 1438 152 496 96 610 14 1576 {'cast': 1378, 'decl-file': 152, 'decl-body': 58, 'param': 2} + A pins 15324 15324 0 6063 963 2355 15324 0 {'pin': 15324} + B asm 20933 20920 13 8248 912 2120 11656 9277 {'launder': 4068, 'barrier': 3950, 'keepalive': 1317, 'verbatim-body': 2682, 'instruction': 1580, 'gte': 6858, 'gte-lever': 462, 'gte-unsigned': 3, 'asm-body': 13} + C volatile 1590 1438 152 496 96 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 7428 1005 6423 737 117 2080 0 7428 {'asm-label': 7428} - F builtin 445 445 0 428 27 302 0 445 {'builtin': 445} + F builtin 445 445 0 428 28 302 0 445 {'builtin': 445} G attribute 76 1 75 1 1 40 0 76 {'attribute': 76} - UNION A–D: 11,512 bodies · 1,560 distinct (addresses normalized) · 294 multi-copy classes holding 10,246 bodies · by kind {'ov': 10961, 'shared': 241, 'md': 135, 'main': 165, 'resident': 10} - THE PHASE'S NUMBER (pins + asm statements, GTE excluded): 27,984 sites in 8,249 bodies (1,275 distinct) · marked !FAKE 27,984 · UNMARKED 0 + UNION A–D: 10,875 bodies · 1,556 distinct (addresses normalized) · 290 multi-copy classes holding 9,609 bodies · by kind {'ov': 10334, 'md': 135, 'shared': 231, 'main': 165, 'resident': 10} + THE PHASE'S NUMBER (pins + asm statements, GTE excluded): 26,714 sites in 7,612 bodies (1,271 distinct) · marked !FAKE 26,714 · UNMARKED 0 orphan !FAKE markers (no pin/asm site on the line nor below): 0 GTE levers (clobbers beyond the canonical macro's): 462 sites (100 via a variant macro, 362 direct) · marked 462 · UNMARKED 0 · unsigned GTE statements 3 per-TU asm macro definitions outside the GTE header: 314 {'launder': 154, 'gte': 150, 'instruction': 9, 'barrier': 1} (GTE variants 64) - pins: 15,965 · $0 639 · $sp 13 · with initializer 1,757 · volatile-qualified 7 · bare-name 15 · spellings {'__asm__': 15887, 'asm': 78} + pins: 15,324 · $0 639 · $sp 13 · with initializer 1,626 · volatile-qualified 7 · bare-name 15 · spellings {'__asm__': 15246, 'asm': 78} whole-body asm routines in C shells, manifest PERMANENT (hand asm, NOT levers): 22 routines · 2,682 sites (2,660 private copies + 22 shared headers); asm-bodies NOT permanent (levers): 13 site(s) ['func_8001E378:DECOMPILE-NOW', 'func_80020F34:DECOMPILE-NOW', 'func_800249F0:DECOMPILE-NOW', 'func_80025CBC:DECOMPILE-NOW', 'func_80026514:UNCERTAIN', 'func_800268D0:UNCERTAIN', 'func_80027058:DECOMPILE-NOW', 'func_80027200:DECOMPILE-NOW', 'func_800CBA44:DECOMPILE-NOW', 'func_8017D810:DECOMPILE-NOW', 'func_8017E26C:UNCERTAIN', 'func_80184440:DECOMPILE-NOW', 'func_801A3BCC:DECOMPILE-NOW'] - asm kinds: {'asm-body/direct': 13, 'barrier/direct': 4199, 'barrier/via-macro': 2, 'gte/direct': 200, 'gte/via-macro': 6658, 'gte-lever/direct': 362, 'gte-lever/via-macro': 100, 'gte-unsigned/direct': 3, 'instruction/direct': 1558, 'instruction/via-macro': 22, 'keepalive/direct': 1443, 'launder/direct': 3876, 'launder/via-macro': 444, 'verbatim-body/direct': 2682} + asm kinds: {'asm-body/direct': 13, 'barrier/direct': 3948, 'barrier/via-macro': 2, 'gte/direct': 200, 'gte/via-macro': 6658, 'gte-lever/direct': 362, 'gte-lever/via-macro': 100, 'gte-unsigned/direct': 3, 'instruction/direct': 1558, 'instruction/via-macro': 22, 'keepalive/direct': 1317, 'launder/direct': 3624, 'launder/via-macro': 444, 'verbatim-body/direct': 2682} instruction mnemonics: {'addu': 834, 'move': 406, 'la': 142, 'lh': 134, 'addiu': 22, 'RTP_SND': 22, '.section': 7, 'lui': 4, 'and': 2, 'mult': 1, 'mfhi': 1, 'sll': 1, 'li': 1, 'lw': 1, 'nop': 1, 'srl': 1} gte mnemonics: {'gte_ldv0': 757, 'gte_stlvnl': 593, 'gte_stsxy': 447, 'gte_rtps': 437, 'gte_stflg': 415, 'gte_rtpt': 352, 'gte_SetRotMatrix': 246, 'gte_stsxy3': 236, 'gte_rtv0tr': 228, 'gte_SetTransMatrix': 226, 'gte_ldv3c': 184, 'gte_ldv3': 177, 'gte_ldrgb': 164, 'gte_stsv': 161, 'lwc2': 159, 'gte_stsz4': 149, 'gte_stsz3': 147, 'gte_stszotz': 134, 'gte_ldIR0z': 134, 'gte_ldIRGB': 134, 'gte_dpcl': 134, 'gte_stORGB': 134, 'gte_stsxy3_f3': 111, 'gte_stclmv': 108, 'gte_nclip': 108, 'gte_stopz': 108, 'gte_stsxy3c': 108, 'gte_stsxy3_ft3': 79, 'gte_rtir': 75, 'gte_ldclmv': 72} asm-bearing macro definitions: 314 (20 names, 3 with >1 text) kinds {'launder': 154, 'gte': 150, 'instruction': 9, 'barrier': 1} @@ -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 26.6 s + elapsed 27.5 s diff --git a/.run/P36/delever/calibration.json b/.run/P36/delever/calibration.json index 09c90faa5..f6db340e6 100644 --- a/.run/P36/delever/calibration.json +++ b/.run/P36/delever/calibration.json @@ -1,7 +1,7 @@ { - "head": "fb6c857f7", + "head": "c6b380fcd", "stamp": "b44c5a8a3423", - "generated": "2026-09-10 10:35", + "generated": "2026-09-10 10:40", "aliases": [ "main", "ov_SC03_014", @@ -21,207 +21,207 @@ "main": { "objects": 85, "identical": 85, - "seconds": 7.376999999999999, - "mean_s": 0.087 + "seconds": 7.7330000000000005, + "mean_s": 0.091 }, "ov_SC03_014": { "objects": 32, "identical": 32, - "seconds": 4.6209999999999996, - "mean_s": 0.144 + "seconds": 5.335, + "mean_s": 0.167 }, "ov_SC03_015": { "objects": 32, "identical": 32, - "seconds": 4.533, - "mean_s": 0.142 + "seconds": 5.250999999999999, + "mean_s": 0.164 }, "ov_SC04_011": { "objects": 28, "identical": 28, - "seconds": 3.927, - "mean_s": 0.14 + "seconds": 4.305, + "mean_s": 0.154 } }, "per_object_seconds": { - "build/src/800.o": 0.793, - "build/src/800_b.o": 0.093, - "build/src/800_b_2.o": 0.328, - "build/src/800_b_o0a.o": 0.078, - "build/src/800_c.o": 0.213, - "build/src/800b2.o": 0.086, - "build/src/apicard1.o": 0.087, - "build/src/apicard2.o": 0.087, - "build/src/apicard3.o": 0.075, - "build/src/apicard4.o": 0.069, - "build/src/apicard5.o": 0.088, - "build/src/apicard6.o": 0.099, - "build/src/apicard7.o": 0.082, - "build/src/boot.o": 0.1, - "build/src/gap.o": 0.098, - "build/src/libapi1.o": 0.087, - "build/src/libapi2.o": 0.07, - "build/src/libc2_1.o": 0.074, - "build/src/libc2_2.o": 0.067, - "build/src/libcd1.o": 0.082, - "build/src/libcd2.o": 0.073, - "build/src/libetc.o": 0.075, - "build/src/libgpu.o": 0.076, - "build/src/libgpu2.o": 0.081, - "build/src/libgs1.o": 0.078, - "build/src/libgs2.o": 0.071, - "build/src/libgs3.o": 0.073, - "build/src/libgs4.o": 0.073, - "build/src/libgs5.o": 0.069, - "build/src/libgs6.o": 0.081, - "build/src/libgs7.o": 0.067, - "build/src/libgs8.o": 0.069, - "build/src/libgte1.o": 0.067, - "build/src/libgte10.o": 0.064, - "build/src/libgte11.o": 0.07, - "build/src/libgte12.o": 0.071, - "build/src/libgte13.o": 0.072, - "build/src/libgte14.o": 0.081, - "build/src/libgte15.o": 0.076, - "build/src/libgte16.o": 0.072, - "build/src/libgte17.o": 0.074, - "build/src/libgte18.o": 0.076, - "build/src/libgte19.o": 0.065, - "build/src/libgte2.o": 0.064, - "build/src/libgte20.o": 0.071, - "build/src/libgte21.o": 0.072, + "build/src/800.o": 0.836, + "build/src/800_b.o": 0.114, + "build/src/800_b_2.o": 0.334, + "build/src/800_b_o0a.o": 0.067, + "build/src/800_c.o": 0.211, + "build/src/800b2.o": 0.087, + "build/src/apicard1.o": 0.069, + "build/src/apicard2.o": 0.073, + "build/src/apicard3.o": 0.067, + "build/src/apicard4.o": 0.098, + "build/src/apicard5.o": 0.068, + "build/src/apicard6.o": 0.07, + "build/src/apicard7.o": 0.085, + "build/src/boot.o": 0.114, + "build/src/gap.o": 0.079, + "build/src/libapi1.o": 0.081, + "build/src/libapi2.o": 0.06, + "build/src/libc2_1.o": 0.067, + "build/src/libc2_2.o": 0.064, + "build/src/libcd1.o": 0.08, + "build/src/libcd2.o": 0.066, + "build/src/libetc.o": 0.07, + "build/src/libgpu.o": 0.075, + "build/src/libgpu2.o": 0.076, + "build/src/libgs1.o": 0.065, + "build/src/libgs2.o": 0.069, + "build/src/libgs3.o": 0.078, + "build/src/libgs4.o": 0.068, + "build/src/libgs5.o": 0.072, + "build/src/libgs6.o": 0.092, + "build/src/libgs7.o": 0.07, + "build/src/libgs8.o": 0.073, + "build/src/libgte1.o": 0.094, + "build/src/libgte10.o": 0.069, + "build/src/libgte11.o": 0.072, + "build/src/libgte12.o": 0.081, + "build/src/libgte13.o": 0.073, + "build/src/libgte14.o": 0.077, + "build/src/libgte15.o": 0.07, + "build/src/libgte16.o": 0.074, + "build/src/libgte17.o": 0.079, + "build/src/libgte18.o": 0.077, + "build/src/libgte19.o": 0.073, + "build/src/libgte2.o": 0.075, + "build/src/libgte20.o": 0.085, + "build/src/libgte21.o": 0.08, "build/src/libgte22.o": 0.077, - "build/src/libgte23.o": 0.071, - "build/src/libgte24.o": 0.065, - "build/src/libgte25.o": 0.067, - "build/src/libgte26.o": 0.069, - "build/src/libgte27.o": 0.069, - "build/src/libgte28.o": 0.068, - "build/src/libgte29.o": 0.06, - "build/src/libgte3.o": 0.068, - "build/src/libgte30.o": 0.069, - "build/src/libgte4.o": 0.064, - "build/src/libgte5.o": 0.068, - "build/src/libgte6.o": 0.067, - "build/src/libgte7.o": 0.07, - "build/src/libgte8.o": 0.069, - "build/src/libgte9.o": 0.071, - "build/src/libmcrd1.o": 0.076, - "build/src/libmcrd2.o": 0.067, - "build/src/libpad1.o": 0.078, - "build/src/libpad2.o": 0.07, - "build/src/sgap.o": 0.071, - "build/src/sgap_2.o": 0.067, - "build/src/sgap_3.o": 0.069, - "build/src/sgap_4.o": 0.065, - "build/src/sgap_5.o": 0.065, - "build/src/sgap_6.o": 0.068, - "build/src/sgap_8.o": 0.072, - "build/src/snd1.o": 0.071, - "build/src/snd10.o": 0.064, - "build/src/snd11.o": 0.06, - "build/src/snd12.o": 0.066, - "build/src/snd2.o": 0.075, - "build/src/snd3.o": 0.08, - "build/src/snd4.o": 0.071, - "build/src/snd5.o": 0.068, - "build/src/snd6.o": 0.121, - "build/src/snd7.o": 0.067, - "build/src/snd8.o": 0.067, - "build/src/snd9.o": 0.07, - "build/src/ov_SC03_014/ov_SC03_014.o": 0.131, - "build/src/ov_SC03_014/ov_SC03_014_after.o": 0.513, - "build/src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.o": 0.378, - "build/src/ov_SC03_014/ov_SC03_014_jr_80135888.o": 0.059, - "build/src/ov_SC03_014/ov_SC03_014_jr_80135A4C.o": 0.065, - "build/src/ov_SC03_014/ov_SC03_014_jr_80135D20.o": 0.126, - "build/src/ov_SC03_014/ov_SC03_014_jr_801380E0.o": 0.158, - "build/src/ov_SC03_014/ov_SC03_014_jr_8013C98C.o": 0.11, - "build/src/ov_SC03_014/ov_SC03_014_jr_8013F350.o": 0.081, - "build/src/ov_SC03_014/ov_SC03_014_jr_8013FFD8.o": 0.065, - "build/src/ov_SC03_014/ov_SC03_014_jr_80140608.o": 0.174, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015444C.o": 0.074, - "build/src/ov_SC03_014/ov_SC03_014_jr_80154C24.o": 0.171, - "build/src/ov_SC03_014/ov_SC03_014_jr_801588CC.o": 0.087, - "build/src/ov_SC03_014/ov_SC03_014_jr_80159C84.o": 0.07, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015A3C8.o": 0.073, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015AE2C.o": 0.09, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015C32C.o": 0.495, - "build/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.o": 0.246, - "build/src/ov_SC03_014/ov_SC03_014_jr_80171B4C.o": 0.086, - "build/src/ov_SC03_014/ov_SC03_014_jr_801734BC.o": 0.2, - "build/src/ov_SC03_014/ov_SC03_014_jr_801789AC.o": 0.062, - "build/src/ov_SC03_014/ov_SC03_014_jr_80178D40.o": 0.101, - "build/src/ov_SC03_014/ov_SC03_014_jr_8017A4AC.o": 0.069, + "build/src/libgte23.o": 0.073, + "build/src/libgte24.o": 0.075, + "build/src/libgte25.o": 0.074, + "build/src/libgte26.o": 0.073, + "build/src/libgte27.o": 0.078, + "build/src/libgte28.o": 0.079, + "build/src/libgte29.o": 0.084, + "build/src/libgte3.o": 0.072, + "build/src/libgte30.o": 0.09, + "build/src/libgte4.o": 0.07, + "build/src/libgte5.o": 0.075, + "build/src/libgte6.o": 0.071, + "build/src/libgte7.o": 0.069, + "build/src/libgte8.o": 0.082, + "build/src/libgte9.o": 0.076, + "build/src/libmcrd1.o": 0.089, + "build/src/libmcrd2.o": 0.08, + "build/src/libpad1.o": 0.072, + "build/src/libpad2.o": 0.079, + "build/src/sgap.o": 0.076, + "build/src/sgap_2.o": 0.072, + "build/src/sgap_3.o": 0.07, + "build/src/sgap_4.o": 0.076, + "build/src/sgap_5.o": 0.087, + "build/src/sgap_6.o": 0.074, + "build/src/sgap_8.o": 0.083, + "build/src/snd1.o": 0.085, + "build/src/snd10.o": 0.071, + "build/src/snd11.o": 0.107, + "build/src/snd12.o": 0.083, + "build/src/snd2.o": 0.086, + "build/src/snd3.o": 0.081, + "build/src/snd4.o": 0.077, + "build/src/snd5.o": 0.076, + "build/src/snd6.o": 0.079, + "build/src/snd7.o": 0.086, + "build/src/snd8.o": 0.073, + "build/src/snd9.o": 0.076, + "build/src/ov_SC03_014/ov_SC03_014.o": 0.136, + "build/src/ov_SC03_014/ov_SC03_014_after.o": 0.568, + "build/src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.o": 0.464, + "build/src/ov_SC03_014/ov_SC03_014_jr_80135888.o": 0.068, + "build/src/ov_SC03_014/ov_SC03_014_jr_80135A4C.o": 0.069, + "build/src/ov_SC03_014/ov_SC03_014_jr_80135D20.o": 0.137, + "build/src/ov_SC03_014/ov_SC03_014_jr_801380E0.o": 0.174, + "build/src/ov_SC03_014/ov_SC03_014_jr_8013C98C.o": 0.124, + "build/src/ov_SC03_014/ov_SC03_014_jr_8013F350.o": 0.109, + "build/src/ov_SC03_014/ov_SC03_014_jr_8013FFD8.o": 0.077, + "build/src/ov_SC03_014/ov_SC03_014_jr_80140608.o": 0.198, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015444C.o": 0.109, + "build/src/ov_SC03_014/ov_SC03_014_jr_80154C24.o": 0.189, + "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.089, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015A3C8.o": 0.082, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015AE2C.o": 0.096, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015C32C.o": 0.525, + "build/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.o": 0.317, + "build/src/ov_SC03_014/ov_SC03_014_jr_80171B4C.o": 0.106, + "build/src/ov_SC03_014/ov_SC03_014_jr_801734BC.o": 0.246, + "build/src/ov_SC03_014/ov_SC03_014_jr_801789AC.o": 0.066, + "build/src/ov_SC03_014/ov_SC03_014_jr_80178D40.o": 0.118, + "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.175, - "build/src/ov_SC03_014/ov_SC03_014_jr_8017EB7C.o": 0.192, - "build/src/ov_SC03_014/ov_SC03_014_jr_80184440.o": 0.053, - "build/src/ov_SC03_014/ov_SC03_014_jr_801848E4.o": 0.272, - "build/src/ov_SC03_014/ov_SC03_014_o0b.o": 0.061, - "build/src/ov_SC03_014/ov_SC03_014_o0c.o": 0.054, - "build/src/ov_SC03_014/ov_SC03_014_o0d.o": 0.061, - "build/src/ov_SC03_014/ov_SC03_014_o0e.o": 0.069, - "build/src/ov_SC03_015/ov_SC03_015.o": 0.105, - "build/src/ov_SC03_015/ov_SC03_015_after.o": 0.505, - "build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.382, - "build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.047, - "build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.057, - "build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.117, - "build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.156, - "build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.114, - "build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.081, - "build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.063, - "build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.175, - "build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.075, - "build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.159, - "build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.093, - "build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.063, - "build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.07, - "build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.091, - "build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.451, - "build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.278, - "build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.098, - "build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.204, - "build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.062, - "build/src/ov_SC03_015/ov_SC03_015_jr_80178D40.o": 0.099, - "build/src/ov_SC03_015/ov_SC03_015_jr_8017A4AC.o": 0.067, - "build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.161, - "build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.189, - "build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.058, - "build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.268, - "build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.062, - "build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.058, - "build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.053, - "build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.072, - "build/src/ov_SC04_011/ov_SC04_011.o": 0.126, - "build/src/ov_SC04_011/ov_SC04_011_after.o": 0.421, - "build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.339, - "build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.056, - "build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.052, - "build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.124, - "build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.15, - "build/src/ov_SC04_011/ov_SC04_011_jr_8013C98C.o": 0.114, - "build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.073, + "build/src/ov_SC03_014/ov_SC03_014_jr_8017EB7C.o": 0.238, + "build/src/ov_SC03_014/ov_SC03_014_jr_80184440.o": 0.062, + "build/src/ov_SC03_014/ov_SC03_014_jr_801848E4.o": 0.348, + "build/src/ov_SC03_014/ov_SC03_014_o0b.o": 0.066, + "build/src/ov_SC03_014/ov_SC03_014_o0c.o": 0.06, + "build/src/ov_SC03_014/ov_SC03_014_o0d.o": 0.062, + "build/src/ov_SC03_014/ov_SC03_014_o0e.o": 0.073, + "build/src/ov_SC03_015/ov_SC03_015.o": 0.169, + "build/src/ov_SC03_015/ov_SC03_015_after.o": 0.559, + "build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.438, + "build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.08, + "build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.096, + "build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.151, + "build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.198, + "build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.17, + "build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.108, + "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.195, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.083, + "build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.195, + "build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.11, + "build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.076, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.078, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.104, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.483, + "build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.286, + "build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.112, + "build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.222, + "build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.067, + "build/src/ov_SC03_015/ov_SC03_015_jr_80178D40.o": 0.11, + "build/src/ov_SC03_015/ov_SC03_015_jr_8017A4AC.o": 0.076, + "build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.169, + "build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.215, + "build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.056, + "build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.306, + "build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.063, + "build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.066, + "build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.06, + "build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.076, + "build/src/ov_SC04_011/ov_SC04_011.o": 0.133, + "build/src/ov_SC04_011/ov_SC04_011_after.o": 0.447, + "build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.374, + "build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.057, + "build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.058, + "build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.125, + "build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.171, + "build/src/ov_SC04_011/ov_SC04_011_jr_8013C98C.o": 0.116, + "build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.082, "build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.066, - "build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.169, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.067, - "build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.169, - "build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.087, - "build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.062, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.067, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.096, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.348, - "build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.21, - "build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.1, - "build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.173, - "build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.061, - "build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.094, - "build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.064, - "build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.095, - "build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.437, - "build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.052, - "build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.055 + "build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.192, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.073, + "build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.179, + "build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.102, + "build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.072, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.078, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.102, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.367, + "build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.236, + "build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.118, + "build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.186, + "build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.069, + "build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.098, + "build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.073, + "build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.114, + "build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.491, + "build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.064, + "build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.062 }, "ok": true, - "seconds": 2.3 + "seconds": 2.5 } diff --git a/.run/P36/delever/ledger.jsonl b/.run/P36/delever/ledger.jsonl index f0337be0b..0ed89cc3a 100644 --- a/.run/P36/delever/ledger.jsonl +++ b/.run/P36/delever/ledger.jsonl @@ -22750,3 +22750,640 @@ {"ts": "2026-09-10 10:36:56", "label": "a18p", "rung": "E", "calib": {"head": "fb6c857f7", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC07_009/ov_SC07_009_jr_80140608.c", "fn": "func_80141874", "addr": 2148800628, "aliases": null, "header": false, "includers": 0, "nhash_before": "0b864874586c0fbca6f49bc3522827339765b278", "nhash_after": "1e382bfecdde05a456df494d3f9ff68472bfb92a", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80141874", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.116, "objects": ["build/src/ov_SC07_009/ov_SC07_009_jr_80140608.o"], "before_text": "void func_80141874(void) {\n\n extern u16 D_8011511C;\n extern u16 D_80115116;\n extern void (*D_8017F1A4[])(void);\n register void (*fp)(void) __asm__(\"$2\"); /* pin fn-ptr to $v0 \u2192 store retires early */ // !FAKE: pin $2 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n func_801754A8();\n D_8011511E = func_80014ED4(0);\n D_8011511C = func_80015018(0);\n fp = D_8017F1A4[D_80115112];\n fp();\n func_80141C04();\n D_80115116 += 1;\n}\n", "after_text": "void func_80141874(void) {\n\n extern u16 D_8011511C[];\n extern u16 D_80115116;\n extern void (*D_8017F1A4[])(void);\n func_801754A8();\n D_8011511E = func_80014ED4(0);\n D_8011511C[0] = func_80015018(0);\n D_8017F1A4[D_80115112]();\n func_80141C04();\n D_80115116 += 1;\n}\n"} {"ts": "2026-09-10 10:36:56", "label": "a18p", "rung": "E", "calib": {"head": "fb6c857f7", "stamp": "b44c5a8a3423"}, "tu": "src/shared/ov/func_80141874__1ec890ca.h", "fn": "func_80141874", "addr": 2148800628, "aliases": null, "header": true, "includers": 3, "nhash_before": "0b864874586c0fbca6f49bc3522827339765b278", "nhash_after": "1e382bfecdde05a456df494d3f9ff68472bfb92a", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80141874", "verdict": "LEVER-FREE", "sites": [], "compiles": 3, "seconds": 0.346, "objects": ["build/src/ov_SC03_126/ov_SC03_126_jr_80140608.o", "build/src/ov_SC04_021/ov_SC04_021_jr_80140608.o", "build/src/ov_SC05_019/ov_SC05_019_jr_80140608.o"], "before_text": "void func_80141874(void) {\n\n extern u16 D_8011511C;\n extern u16 D_80115116;\n extern void (*D_80180678[])(void);\n register void (*fp)(void) __asm__(\"$2\"); /* pin fn-ptr to $v0 \u2192 store retires early */ // !FAKE: pin $2 \u2014 NEEDED DIFFERS (P36 rung B headers2)\n func_801754A8();\n D_8011511E = func_80014ED4(0);\n D_8011511C = func_80015018(0);\n fp = D_80180678[D_80115112];\n fp();\n func_80141C04();\n D_80115116 += 1;\n}\n", "after_text": "void func_80141874(void) {\n\n extern u16 D_8011511C[];\n extern u16 D_80115116;\n extern void (*D_80180678[])(void);\n func_801754A8();\n D_8011511E = func_80014ED4(0);\n D_8011511C[0] = func_80015018(0);\n D_80180678[D_80115112]();\n func_80141C04();\n D_80115116 += 1;\n}\n"} {"ts": "2026-09-10 10:36:57", "label": "a18p", "rung": "E", "calib": {"head": "fb6c857f7", "stamp": "b44c5a8a3423"}, "tu": "src/shared/ov/func_80141874__9e298500.h", "fn": "func_80141874", "addr": 2148800628, "aliases": null, "header": true, "includers": 2, "nhash_before": "0b864874586c0fbca6f49bc3522827339765b278", "nhash_after": "1e382bfecdde05a456df494d3f9ff68472bfb92a", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80141874", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.223, "objects": ["build/src/ov_SC04_008/ov_SC04_008_jr_80140608.o", "build/src/ov_SC05_009/ov_SC05_009_jr_80140608.o"], "before_text": "void func_80141874(void) {\n\n extern u16 D_8011511C;\n extern u16 D_80115116;\n extern void (*D_8017FEC4[])(void);\n register void (*fp)(void) __asm__(\"$2\"); /* pin fn-ptr to $v0 \u2192 store retires early */ // !FAKE: pin $2 \u2014 NEEDED DIFFERS (P36 rung B headers2)\n func_801754A8();\n D_8011511E = func_80014ED4(0);\n D_8011511C = func_80015018(0);\n fp = D_8017FEC4[D_80115112];\n fp();\n func_80141C04();\n D_80115116 += 1;\n}\n", "after_text": "void func_80141874(void) {\n\n extern u16 D_8011511C[];\n extern u16 D_80115116;\n extern void (*D_8017FEC4[])(void);\n func_801754A8();\n D_8011511E = func_80014ED4(0);\n D_8011511C[0] = func_80015018(0);\n D_8017FEC4[D_80115112]();\n func_80141C04();\n D_80115116 += 1;\n}\n"} +{"ts": "2026-09-10 10:40:27", "label": "a5", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_011/ov_SC04_011_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "T7 agent a5", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.089, "objects": ["build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung B t3_tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B t3_tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_801909BC)[2];\n d = dx;\n denom = -(*(s16 **)&D_801909C8)[2];\n } else {\n denom = (*(s16 **)&D_801909C8)[2];\n d = (*(s16 **)&D_801909BC)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801909C8;\n u16 *ac = *(u16 **)&D_801909BC;\n b4 = D_801909C4;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801909C0;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801909C4[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B t3_tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_801909C4[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung B t3_tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_801909BC)[2];\n d = dx;\n denom = -(*(s16 **)&D_801909C8)[2];\n } else {\n denom = (*(s16 **)&D_801909C8)[2];\n d = (*(s16 **)&D_801909BC)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801909C8;\n u16 *ac = *(u16 **)&D_801909BC;\n b4 = D_801909C4;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801909C0;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801909C4[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_801909C4[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:28", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_000/ov_SC01_000_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.086, "objects": ["build/src/ov_SC01_000/ov_SC01_000_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8017F198)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017F1A4)[2];\n } else {\n denom = (*(s16 **)&D_8017F1A4)[2];\n d = (*(s16 **)&D_8017F198)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017F1A4;\n u16 *ac = *(u16 **)&D_8017F198;\n b4 = D_8017F1A0;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017F19C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017F1A0[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8017F1A0[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8017F198)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017F1A4)[2];\n } else {\n denom = (*(s16 **)&D_8017F1A4)[2];\n d = (*(s16 **)&D_8017F198)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017F1A4;\n u16 *ac = *(u16 **)&D_8017F198;\n b4 = D_8017F1A0;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017F19C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017F1A0[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8017F1A0[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:28", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_001/ov_SC01_001_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.084, "objects": ["build/src/ov_SC01_001/ov_SC01_001_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80183DE8)[2];\n d = dx;\n denom = -(*(s16 **)&D_80183DF4)[2];\n } else {\n denom = (*(s16 **)&D_80183DF4)[2];\n d = (*(s16 **)&D_80183DE8)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80183DF4;\n u16 *ac = *(u16 **)&D_80183DE8;\n b4 = D_80183DF0;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80183DEC;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80183DF0[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80183DF0[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80183DE8)[2];\n d = dx;\n denom = -(*(s16 **)&D_80183DF4)[2];\n } else {\n denom = (*(s16 **)&D_80183DF4)[2];\n d = (*(s16 **)&D_80183DE8)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80183DF4;\n u16 *ac = *(u16 **)&D_80183DE8;\n b4 = D_80183DF0;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80183DEC;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80183DF0[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80183DF0[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:28", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_004/ov_SC01_004_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.087, "objects": ["build/src/ov_SC01_004/ov_SC01_004_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8017F7AC)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017F7B8)[2];\n } else {\n denom = (*(s16 **)&D_8017F7B8)[2];\n d = (*(s16 **)&D_8017F7AC)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017F7B8;\n u16 *ac = *(u16 **)&D_8017F7AC;\n b4 = D_8017F7B4;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017F7B0;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017F7B4[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8017F7B4[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8017F7AC)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017F7B8)[2];\n } else {\n denom = (*(s16 **)&D_8017F7B8)[2];\n d = (*(s16 **)&D_8017F7AC)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017F7B8;\n u16 *ac = *(u16 **)&D_8017F7AC;\n b4 = D_8017F7B4;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017F7B0;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017F7B4[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8017F7B4[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:28", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_009/ov_SC01_009_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.081, "objects": ["build/src/ov_SC01_009/ov_SC01_009_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80182F08)[2];\n d = dx;\n denom = -(*(s16 **)&D_80182F14)[2];\n } else {\n denom = (*(s16 **)&D_80182F14)[2];\n d = (*(s16 **)&D_80182F08)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80182F14;\n u16 *ac = *(u16 **)&D_80182F08;\n b4 = D_80182F10;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80182F0C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80182F10[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80182F10[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80182F08)[2];\n d = dx;\n denom = -(*(s16 **)&D_80182F14)[2];\n } else {\n denom = (*(s16 **)&D_80182F14)[2];\n d = (*(s16 **)&D_80182F08)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80182F14;\n u16 *ac = *(u16 **)&D_80182F08;\n b4 = D_80182F10;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80182F0C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80182F10[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80182F10[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:28", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_008/ov_SC01_008_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.086, "objects": ["build/src/ov_SC01_008/ov_SC01_008_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8017FD20)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017FD2C)[2];\n } else {\n denom = (*(s16 **)&D_8017FD2C)[2];\n d = (*(s16 **)&D_8017FD20)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017FD2C;\n u16 *ac = *(u16 **)&D_8017FD20;\n b4 = D_8017FD28;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017FD24;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017FD28[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8017FD28[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8017FD20)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017FD2C)[2];\n } else {\n denom = (*(s16 **)&D_8017FD2C)[2];\n d = (*(s16 **)&D_8017FD20)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017FD2C;\n u16 *ac = *(u16 **)&D_8017FD20;\n b4 = D_8017FD28;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017FD24;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017FD28[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8017FD28[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:28", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_077/ov_SC01_077_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.083, "objects": ["build/src/ov_SC01_077/ov_SC01_077_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_801870AC)[2];\n d = dx;\n denom = -(*(s16 **)&D_801870B8)[2];\n } else {\n denom = (*(s16 **)&D_801870B8)[2];\n d = (*(s16 **)&D_801870AC)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801870B8;\n u16 *ac = *(u16 **)&D_801870AC;\n b4 = D_801870B4;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801870B0;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801870B4[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_801870B4[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_801870AC)[2];\n d = dx;\n denom = -(*(s16 **)&D_801870B8)[2];\n } else {\n denom = (*(s16 **)&D_801870B8)[2];\n d = (*(s16 **)&D_801870AC)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801870B8;\n u16 *ac = *(u16 **)&D_801870AC;\n b4 = D_801870B4;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801870B0;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801870B4[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_801870B4[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:29", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_080/ov_SC01_080_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.084, "objects": ["build/src/ov_SC01_080/ov_SC01_080_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80183AE8)[2];\n d = dx;\n denom = -(*(s16 **)&D_80183AF4)[2];\n } else {\n denom = (*(s16 **)&D_80183AF4)[2];\n d = (*(s16 **)&D_80183AE8)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80183AF4;\n u16 *ac = *(u16 **)&D_80183AE8;\n b4 = D_80183AF0;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80183AEC;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80183AF0[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80183AF0[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80183AE8)[2];\n d = dx;\n denom = -(*(s16 **)&D_80183AF4)[2];\n } else {\n denom = (*(s16 **)&D_80183AF4)[2];\n d = (*(s16 **)&D_80183AE8)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80183AF4;\n u16 *ac = *(u16 **)&D_80183AE8;\n b4 = D_80183AF0;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80183AEC;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80183AF0[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80183AF0[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:29", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_074/ov_SC01_074_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.082, "objects": ["build/src/ov_SC01_074/ov_SC01_074_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8017EB88)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017EB94)[2];\n } else {\n denom = (*(s16 **)&D_8017EB94)[2];\n d = (*(s16 **)&D_8017EB88)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017EB94;\n u16 *ac = *(u16 **)&D_8017EB88;\n b4 = D_8017EB90;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017EB8C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017EB90[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8017EB90[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8017EB88)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017EB94)[2];\n } else {\n denom = (*(s16 **)&D_8017EB94)[2];\n d = (*(s16 **)&D_8017EB88)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017EB94;\n u16 *ac = *(u16 **)&D_8017EB88;\n b4 = D_8017EB90;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017EB8C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017EB90[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8017EB90[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:29", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_084/ov_SC01_084_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.085, "objects": ["build/src/ov_SC01_084/ov_SC01_084_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80186DDC)[2];\n d = dx;\n denom = -(*(s16 **)&D_80186DE8)[2];\n } else {\n denom = (*(s16 **)&D_80186DE8)[2];\n d = (*(s16 **)&D_80186DDC)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80186DE8;\n u16 *ac = *(u16 **)&D_80186DDC;\n b4 = D_80186DE4;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80186DE0;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80186DE4[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80186DE4[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80186DDC)[2];\n d = dx;\n denom = -(*(s16 **)&D_80186DE8)[2];\n } else {\n denom = (*(s16 **)&D_80186DE8)[2];\n d = (*(s16 **)&D_80186DDC)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80186DE8;\n u16 *ac = *(u16 **)&D_80186DDC;\n b4 = D_80186DE4;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80186DE0;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80186DE4[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80186DE4[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:29", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_005/ov_SC01_005_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.165, "objects": ["build/src/ov_SC01_005/ov_SC01_005_jr_80135D20.o", "build/src/ov_SC01_006/ov_SC01_006_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80182940)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018294C)[2];\n } else {\n denom = (*(s16 **)&D_8018294C)[2];\n d = (*(s16 **)&D_80182940)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018294C;\n u16 *ac = *(u16 **)&D_80182940;\n b4 = D_80182948;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80182944;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80182948[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80182948[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80182940)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018294C)[2];\n } else {\n denom = (*(s16 **)&D_8018294C)[2];\n d = (*(s16 **)&D_80182940)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018294C;\n u16 *ac = *(u16 **)&D_80182940;\n b4 = D_80182948;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80182944;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80182948[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80182948[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:29", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_004/ov_SC02_004_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.09, "objects": ["build/src/ov_SC02_004/ov_SC02_004_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8017E26C)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017E278)[2];\n } else {\n denom = (*(s16 **)&D_8017E278)[2];\n d = (*(s16 **)&D_8017E26C)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017E278;\n u16 *ac = *(u16 **)&D_8017E26C;\n b4 = D_8017E274;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017E270;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017E274[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8017E274[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8017E26C)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017E278)[2];\n } else {\n denom = (*(s16 **)&D_8017E278)[2];\n d = (*(s16 **)&D_8017E26C)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017E278;\n u16 *ac = *(u16 **)&D_8017E26C;\n b4 = D_8017E274;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017E270;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017E274[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8017E274[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:29", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_005/ov_SC02_005_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.081, "objects": ["build/src/ov_SC02_005/ov_SC02_005_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80190E70)[2];\n d = dx;\n denom = -(*(s16 **)&D_80190E7C)[2];\n } else {\n denom = (*(s16 **)&D_80190E7C)[2];\n d = (*(s16 **)&D_80190E70)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80190E7C;\n u16 *ac = *(u16 **)&D_80190E70;\n b4 = D_80190E78;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80190E74;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80190E78[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80190E78[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80190E70)[2];\n d = dx;\n denom = -(*(s16 **)&D_80190E7C)[2];\n } else {\n denom = (*(s16 **)&D_80190E7C)[2];\n d = (*(s16 **)&D_80190E70)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80190E7C;\n u16 *ac = *(u16 **)&D_80190E70;\n b4 = D_80190E78;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80190E74;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80190E78[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80190E78[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:29", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_015/ov_SC02_015_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.084, "objects": ["build/src/ov_SC02_015/ov_SC02_015_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8017E7D4)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017E7E0)[2];\n } else {\n denom = (*(s16 **)&D_8017E7E0)[2];\n d = (*(s16 **)&D_8017E7D4)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017E7E0;\n u16 *ac = *(u16 **)&D_8017E7D4;\n b4 = D_8017E7DC;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017E7D8;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017E7DC[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8017E7DC[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8017E7D4)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017E7E0)[2];\n } else {\n denom = (*(s16 **)&D_8017E7E0)[2];\n d = (*(s16 **)&D_8017E7D4)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017E7E0;\n u16 *ac = *(u16 **)&D_8017E7D4;\n b4 = D_8017E7DC;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017E7D8;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017E7DC[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8017E7DC[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:30", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_011/ov_SC02_011_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.089, "objects": ["build/src/ov_SC02_011/ov_SC02_011_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_801912C0)[2];\n d = dx;\n denom = -(*(s16 **)&D_801912CC)[2];\n } else {\n denom = (*(s16 **)&D_801912CC)[2];\n d = (*(s16 **)&D_801912C0)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801912CC;\n u16 *ac = *(u16 **)&D_801912C0;\n b4 = D_801912C8;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801912C4;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801912C8[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_801912C8[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_801912C0)[2];\n d = dx;\n denom = -(*(s16 **)&D_801912CC)[2];\n } else {\n denom = (*(s16 **)&D_801912CC)[2];\n d = (*(s16 **)&D_801912C0)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801912CC;\n u16 *ac = *(u16 **)&D_801912C0;\n b4 = D_801912C8;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801912C4;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801912C8[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_801912C8[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:30", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_000/ov_SC02_000_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.167, "objects": ["build/src/ov_SC02_000/ov_SC02_000_jr_80135D20.o", "build/src/ov_SC02_003/ov_SC02_003_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8018B18C)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018B198)[2];\n } else {\n denom = (*(s16 **)&D_8018B198)[2];\n d = (*(s16 **)&D_8018B18C)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018B198;\n u16 *ac = *(u16 **)&D_8018B18C;\n b4 = D_8018B194;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018B190;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018B194[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8018B194[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8018B18C)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018B198)[2];\n } else {\n denom = (*(s16 **)&D_8018B198)[2];\n d = (*(s16 **)&D_8018B18C)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018B198;\n u16 *ac = *(u16 **)&D_8018B18C;\n b4 = D_8018B194;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018B190;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018B194[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8018B194[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:30", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_016/ov_SC02_016_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.085, "objects": ["build/src/ov_SC02_016/ov_SC02_016_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80184A0C)[2];\n d = dx;\n denom = -(*(s16 **)&D_80184A18)[2];\n } else {\n denom = (*(s16 **)&D_80184A18)[2];\n d = (*(s16 **)&D_80184A0C)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80184A18;\n u16 *ac = *(u16 **)&D_80184A0C;\n b4 = D_80184A14;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80184A10;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80184A14[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80184A14[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80184A0C)[2];\n d = dx;\n denom = -(*(s16 **)&D_80184A18)[2];\n } else {\n denom = (*(s16 **)&D_80184A18)[2];\n d = (*(s16 **)&D_80184A0C)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80184A18;\n u16 *ac = *(u16 **)&D_80184A0C;\n b4 = D_80184A14;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80184A10;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80184A14[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80184A14[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:30", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_017/ov_SC02_017_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.087, "objects": ["build/src/ov_SC02_017/ov_SC02_017_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8018AA64)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018AA70)[2];\n } else {\n denom = (*(s16 **)&D_8018AA70)[2];\n d = (*(s16 **)&D_8018AA64)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018AA70;\n u16 *ac = *(u16 **)&D_8018AA64;\n b4 = D_8018AA6C;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018AA68;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018AA6C[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8018AA6C[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8018AA64)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018AA70)[2];\n } else {\n denom = (*(s16 **)&D_8018AA70)[2];\n d = (*(s16 **)&D_8018AA64)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018AA70;\n u16 *ac = *(u16 **)&D_8018AA64;\n b4 = D_8018AA6C;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018AA68;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018AA6C[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8018AA6C[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:30", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_027/ov_SC02_027_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.083, "objects": ["build/src/ov_SC02_027/ov_SC02_027_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8018B7D0)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018B7DC)[2];\n } else {\n denom = (*(s16 **)&D_8018B7DC)[2];\n d = (*(s16 **)&D_8018B7D0)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018B7DC;\n u16 *ac = *(u16 **)&D_8018B7D0;\n b4 = D_8018B7D8;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018B7D4;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018B7D8[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8018B7D8[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8018B7D0)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018B7DC)[2];\n } else {\n denom = (*(s16 **)&D_8018B7DC)[2];\n d = (*(s16 **)&D_8018B7D0)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018B7DC;\n u16 *ac = *(u16 **)&D_8018B7D0;\n b4 = D_8018B7D8;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018B7D4;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018B7D8[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8018B7D8[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:30", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_026/ov_SC02_026_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.087, "objects": ["build/src/ov_SC02_026/ov_SC02_026_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_801866AC)[2];\n d = dx;\n denom = -(*(s16 **)&D_801866B8)[2];\n } else {\n denom = (*(s16 **)&D_801866B8)[2];\n d = (*(s16 **)&D_801866AC)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801866B8;\n u16 *ac = *(u16 **)&D_801866AC;\n b4 = D_801866B4;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801866B0;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801866B4[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_801866B4[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_801866AC)[2];\n d = dx;\n denom = -(*(s16 **)&D_801866B8)[2];\n } else {\n denom = (*(s16 **)&D_801866B8)[2];\n d = (*(s16 **)&D_801866AC)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801866B8;\n u16 *ac = *(u16 **)&D_801866AC;\n b4 = D_801866B4;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801866B0;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801866B4[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_801866B4[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:30", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_021/ov_SC02_021_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.089, "objects": ["build/src/ov_SC02_021/ov_SC02_021_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80180058)[2];\n d = dx;\n denom = -(*(s16 **)&D_80180064)[2];\n } else {\n denom = (*(s16 **)&D_80180064)[2];\n d = (*(s16 **)&D_80180058)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80180064;\n u16 *ac = *(u16 **)&D_80180058;\n b4 = D_80180060;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018005C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80180060[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80180060[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80180058)[2];\n d = dx;\n denom = -(*(s16 **)&D_80180064)[2];\n } else {\n denom = (*(s16 **)&D_80180064)[2];\n d = (*(s16 **)&D_80180058)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80180064;\n u16 *ac = *(u16 **)&D_80180058;\n b4 = D_80180060;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018005C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80180060[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80180060[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:31", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_028/ov_SC02_028_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.082, "objects": ["build/src/ov_SC02_028/ov_SC02_028_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8018B9D4)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018B9E0)[2];\n } else {\n denom = (*(s16 **)&D_8018B9E0)[2];\n d = (*(s16 **)&D_8018B9D4)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018B9E0;\n u16 *ac = *(u16 **)&D_8018B9D4;\n b4 = D_8018B9DC;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018B9D8;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018B9DC[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8018B9DC[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8018B9D4)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018B9E0)[2];\n } else {\n denom = (*(s16 **)&D_8018B9E0)[2];\n d = (*(s16 **)&D_8018B9D4)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018B9E0;\n u16 *ac = *(u16 **)&D_8018B9D4;\n b4 = D_8018B9DC;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018B9D8;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018B9DC[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8018B9DC[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:31", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_035/ov_SC02_035_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.085, "objects": ["build/src/ov_SC02_035/ov_SC02_035_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80184A60)[2];\n d = dx;\n denom = -(*(s16 **)&D_80184A6C)[2];\n } else {\n denom = (*(s16 **)&D_80184A6C)[2];\n d = (*(s16 **)&D_80184A60)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80184A6C;\n u16 *ac = *(u16 **)&D_80184A60;\n b4 = D_80184A68;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80184A64;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80184A68[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80184A68[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80184A60)[2];\n d = dx;\n denom = -(*(s16 **)&D_80184A6C)[2];\n } else {\n denom = (*(s16 **)&D_80184A6C)[2];\n d = (*(s16 **)&D_80184A60)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80184A6C;\n u16 *ac = *(u16 **)&D_80184A60;\n b4 = D_80184A68;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80184A64;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80184A68[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80184A68[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:31", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_039/ov_SC02_039_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.08, "objects": ["build/src/ov_SC02_039/ov_SC02_039_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8017F68C)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017F698)[2];\n } else {\n denom = (*(s16 **)&D_8017F698)[2];\n d = (*(s16 **)&D_8017F68C)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017F698;\n u16 *ac = *(u16 **)&D_8017F68C;\n b4 = D_8017F694;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017F690;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017F694[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8017F694[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8017F68C)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017F698)[2];\n } else {\n denom = (*(s16 **)&D_8017F698)[2];\n d = (*(s16 **)&D_8017F68C)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017F698;\n u16 *ac = *(u16 **)&D_8017F68C;\n b4 = D_8017F694;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017F690;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017F694[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8017F694[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:31", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_031/ov_SC02_031_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.083, "objects": ["build/src/ov_SC02_031/ov_SC02_031_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80185200)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018520C)[2];\n } else {\n denom = (*(s16 **)&D_8018520C)[2];\n d = (*(s16 **)&D_80185200)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018520C;\n u16 *ac = *(u16 **)&D_80185200;\n b4 = D_80185208;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80185204;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80185208[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80185208[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80185200)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018520C)[2];\n } else {\n denom = (*(s16 **)&D_8018520C)[2];\n d = (*(s16 **)&D_80185200)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018520C;\n u16 *ac = *(u16 **)&D_80185200;\n b4 = D_80185208;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80185204;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80185208[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80185208[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:31", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_041/ov_SC02_041_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.083, "objects": ["build/src/ov_SC02_041/ov_SC02_041_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8018535C)[2];\n d = dx;\n denom = -(*(s16 **)&D_80185368)[2];\n } else {\n denom = (*(s16 **)&D_80185368)[2];\n d = (*(s16 **)&D_8018535C)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80185368;\n u16 *ac = *(u16 **)&D_8018535C;\n b4 = D_80185364;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80185360;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80185364[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80185364[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8018535C)[2];\n d = dx;\n denom = -(*(s16 **)&D_80185368)[2];\n } else {\n denom = (*(s16 **)&D_80185368)[2];\n d = (*(s16 **)&D_8018535C)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80185368;\n u16 *ac = *(u16 **)&D_8018535C;\n b4 = D_80185364;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80185360;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80185364[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80185364[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:31", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_001/ov_SC03_001_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.083, "objects": ["build/src/ov_SC03_001/ov_SC03_001_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8018DA9C)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018DAA8)[2];\n } else {\n denom = (*(s16 **)&D_8018DAA8)[2];\n d = (*(s16 **)&D_8018DA9C)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018DAA8;\n u16 *ac = *(u16 **)&D_8018DA9C;\n b4 = D_8018DAA4;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018DAA0;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018DAA4[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8018DAA4[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8018DA9C)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018DAA8)[2];\n } else {\n denom = (*(s16 **)&D_8018DAA8)[2];\n d = (*(s16 **)&D_8018DA9C)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018DAA8;\n u16 *ac = *(u16 **)&D_8018DA9C;\n b4 = D_8018DAA4;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018DAA0;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018DAA4[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8018DAA4[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:31", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_003/ov_SC03_003_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.084, "objects": ["build/src/ov_SC03_003/ov_SC03_003_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8017F854)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017F860)[2];\n } else {\n denom = (*(s16 **)&D_8017F860)[2];\n d = (*(s16 **)&D_8017F854)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017F860;\n u16 *ac = *(u16 **)&D_8017F854;\n b4 = D_8017F85C;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017F858;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017F85C[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8017F85C[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8017F854)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017F860)[2];\n } else {\n denom = (*(s16 **)&D_8017F860)[2];\n d = (*(s16 **)&D_8017F854)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017F860;\n u16 *ac = *(u16 **)&D_8017F854;\n b4 = D_8017F85C;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017F858;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017F85C[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8017F85C[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:31", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_006/ov_SC03_006_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.082, "objects": ["build/src/ov_SC03_006/ov_SC03_006_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8018CB70)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018CB7C)[2];\n } else {\n denom = (*(s16 **)&D_8018CB7C)[2];\n d = (*(s16 **)&D_8018CB70)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018CB7C;\n u16 *ac = *(u16 **)&D_8018CB70;\n b4 = D_8018CB78;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018CB74;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018CB78[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8018CB78[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8018CB70)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018CB7C)[2];\n } else {\n denom = (*(s16 **)&D_8018CB7C)[2];\n d = (*(s16 **)&D_8018CB70)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018CB7C;\n u16 *ac = *(u16 **)&D_8018CB70;\n b4 = D_8018CB78;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018CB74;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018CB78[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8018CB78[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:32", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_002/ov_SC03_002_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.082, "objects": ["build/src/ov_SC03_002/ov_SC03_002_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80185A8C)[2];\n d = dx;\n denom = -(*(s16 **)&D_80185A98)[2];\n } else {\n denom = (*(s16 **)&D_80185A98)[2];\n d = (*(s16 **)&D_80185A8C)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80185A98;\n u16 *ac = *(u16 **)&D_80185A8C;\n b4 = D_80185A94;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80185A90;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80185A94[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80185A94[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80185A8C)[2];\n d = dx;\n denom = -(*(s16 **)&D_80185A98)[2];\n } else {\n denom = (*(s16 **)&D_80185A98)[2];\n d = (*(s16 **)&D_80185A8C)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80185A98;\n u16 *ac = *(u16 **)&D_80185A8C;\n b4 = D_80185A94;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80185A90;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80185A94[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80185A94[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:32", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_007/ov_SC03_007_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.083, "objects": ["build/src/ov_SC03_007/ov_SC03_007_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80187968)[2];\n d = dx;\n denom = -(*(s16 **)&D_80187974)[2];\n } else {\n denom = (*(s16 **)&D_80187974)[2];\n d = (*(s16 **)&D_80187968)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80187974;\n u16 *ac = *(u16 **)&D_80187968;\n b4 = D_80187970;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018796C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80187970[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80187970[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80187968)[2];\n d = dx;\n denom = -(*(s16 **)&D_80187974)[2];\n } else {\n denom = (*(s16 **)&D_80187974)[2];\n d = (*(s16 **)&D_80187968)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80187974;\n u16 *ac = *(u16 **)&D_80187968;\n b4 = D_80187970;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018796C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80187970[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80187970[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:32", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_010/ov_SC03_010_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.085, "objects": ["build/src/ov_SC03_010/ov_SC03_010_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80180488)[2];\n d = dx;\n denom = -(*(s16 **)&D_80180494)[2];\n } else {\n denom = (*(s16 **)&D_80180494)[2];\n d = (*(s16 **)&D_80180488)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80180494;\n u16 *ac = *(u16 **)&D_80180488;\n b4 = D_80180490;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018048C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80180490[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80180490[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80180488)[2];\n d = dx;\n denom = -(*(s16 **)&D_80180494)[2];\n } else {\n denom = (*(s16 **)&D_80180494)[2];\n d = (*(s16 **)&D_80180488)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80180494;\n u16 *ac = *(u16 **)&D_80180488;\n b4 = D_80180490;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018048C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80180490[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80180490[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:32", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_011/ov_SC03_011_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.079, "objects": ["build/src/ov_SC03_011/ov_SC03_011_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_801817F8)[2];\n d = dx;\n denom = -(*(s16 **)&D_80181804)[2];\n } else {\n denom = (*(s16 **)&D_80181804)[2];\n d = (*(s16 **)&D_801817F8)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80181804;\n u16 *ac = *(u16 **)&D_801817F8;\n b4 = D_80181800;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801817FC;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80181800[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80181800[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_801817F8)[2];\n d = dx;\n denom = -(*(s16 **)&D_80181804)[2];\n } else {\n denom = (*(s16 **)&D_80181804)[2];\n d = (*(s16 **)&D_801817F8)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80181804;\n u16 *ac = *(u16 **)&D_801817F8;\n b4 = D_80181800;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801817FC;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80181800[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80181800[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:32", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_012/ov_SC03_012_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.082, "objects": ["build/src/ov_SC03_012/ov_SC03_012_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8017E6D8)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017E6E4)[2];\n } else {\n denom = (*(s16 **)&D_8017E6E4)[2];\n d = (*(s16 **)&D_8017E6D8)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017E6E4;\n u16 *ac = *(u16 **)&D_8017E6D8;\n b4 = D_8017E6E0;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017E6DC;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017E6E0[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8017E6E0[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8017E6D8)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017E6E4)[2];\n } else {\n denom = (*(s16 **)&D_8017E6E4)[2];\n d = (*(s16 **)&D_8017E6D8)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017E6E4;\n u16 *ac = *(u16 **)&D_8017E6D8;\n b4 = D_8017E6E0;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017E6DC;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017E6E0[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8017E6E0[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:32", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_013/ov_SC03_013_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.081, "objects": ["build/src/ov_SC03_013/ov_SC03_013_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_801814C0)[2];\n d = dx;\n denom = -(*(s16 **)&D_801814CC)[2];\n } else {\n denom = (*(s16 **)&D_801814CC)[2];\n d = (*(s16 **)&D_801814C0)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801814CC;\n u16 *ac = *(u16 **)&D_801814C0;\n b4 = D_801814C8;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801814C4;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801814C8[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_801814C8[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_801814C0)[2];\n d = dx;\n denom = -(*(s16 **)&D_801814CC)[2];\n } else {\n denom = (*(s16 **)&D_801814CC)[2];\n d = (*(s16 **)&D_801814C0)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801814CC;\n u16 *ac = *(u16 **)&D_801814C0;\n b4 = D_801814C8;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801814C4;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801814C8[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_801814C8[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:32", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_023/ov_SC03_023_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.084, "objects": ["build/src/ov_SC03_023/ov_SC03_023_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8017F478)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017F484)[2];\n } else {\n denom = (*(s16 **)&D_8017F484)[2];\n d = (*(s16 **)&D_8017F478)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017F484;\n u16 *ac = *(u16 **)&D_8017F478;\n b4 = D_8017F480;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017F47C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017F480[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8017F480[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8017F478)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017F484)[2];\n } else {\n denom = (*(s16 **)&D_8017F484)[2];\n d = (*(s16 **)&D_8017F478)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017F484;\n u16 *ac = *(u16 **)&D_8017F478;\n b4 = D_8017F480;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017F47C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017F480[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8017F480[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:32", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_024/ov_SC03_024_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.081, "objects": ["build/src/ov_SC03_024/ov_SC03_024_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8018749C)[2];\n d = dx;\n denom = -(*(s16 **)&D_801874A8)[2];\n } else {\n denom = (*(s16 **)&D_801874A8)[2];\n d = (*(s16 **)&D_8018749C)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801874A8;\n u16 *ac = *(u16 **)&D_8018749C;\n b4 = D_801874A4;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801874A0;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801874A4[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_801874A4[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8018749C)[2];\n d = dx;\n denom = -(*(s16 **)&D_801874A8)[2];\n } else {\n denom = (*(s16 **)&D_801874A8)[2];\n d = (*(s16 **)&D_8018749C)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801874A8;\n u16 *ac = *(u16 **)&D_8018749C;\n b4 = D_801874A4;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801874A0;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801874A4[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_801874A4[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:33", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_028/ov_SC03_028_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.079, "objects": ["build/src/ov_SC03_028/ov_SC03_028_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8018BF68)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018BF74)[2];\n } else {\n denom = (*(s16 **)&D_8018BF74)[2];\n d = (*(s16 **)&D_8018BF68)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018BF74;\n u16 *ac = *(u16 **)&D_8018BF68;\n b4 = D_8018BF70;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018BF6C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018BF70[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8018BF70[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8018BF68)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018BF74)[2];\n } else {\n denom = (*(s16 **)&D_8018BF74)[2];\n d = (*(s16 **)&D_8018BF68)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018BF74;\n u16 *ac = *(u16 **)&D_8018BF68;\n b4 = D_8018BF70;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018BF6C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018BF70[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8018BF70[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:33", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_029/ov_SC03_029_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.078, "objects": ["build/src/ov_SC03_029/ov_SC03_029_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80187DA0)[2];\n d = dx;\n denom = -(*(s16 **)&D_80187DAC)[2];\n } else {\n denom = (*(s16 **)&D_80187DAC)[2];\n d = (*(s16 **)&D_80187DA0)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80187DAC;\n u16 *ac = *(u16 **)&D_80187DA0;\n b4 = D_80187DA8;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80187DA4;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80187DA8[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80187DA8[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80187DA0)[2];\n d = dx;\n denom = -(*(s16 **)&D_80187DAC)[2];\n } else {\n denom = (*(s16 **)&D_80187DAC)[2];\n d = (*(s16 **)&D_80187DA0)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80187DAC;\n u16 *ac = *(u16 **)&D_80187DA0;\n b4 = D_80187DA8;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80187DA4;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80187DA8[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80187DA8[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:33", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_031/ov_SC03_031_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.078, "objects": ["build/src/ov_SC03_031/ov_SC03_031_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_801828F8)[2];\n d = dx;\n denom = -(*(s16 **)&D_80182904)[2];\n } else {\n denom = (*(s16 **)&D_80182904)[2];\n d = (*(s16 **)&D_801828F8)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80182904;\n u16 *ac = *(u16 **)&D_801828F8;\n b4 = D_80182900;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801828FC;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80182900[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80182900[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_801828F8)[2];\n d = dx;\n denom = -(*(s16 **)&D_80182904)[2];\n } else {\n denom = (*(s16 **)&D_80182904)[2];\n d = (*(s16 **)&D_801828F8)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80182904;\n u16 *ac = *(u16 **)&D_801828F8;\n b4 = D_80182900;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801828FC;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80182900[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80182900[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:33", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_089/ov_SC03_089_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.081, "objects": ["build/src/ov_SC03_089/ov_SC03_089_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80189BF4)[2];\n d = dx;\n denom = -(*(s16 **)&D_80189C00)[2];\n } else {\n denom = (*(s16 **)&D_80189C00)[2];\n d = (*(s16 **)&D_80189BF4)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80189C00;\n u16 *ac = *(u16 **)&D_80189BF4;\n b4 = D_80189BFC;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80189BF8;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80189BFC[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80189BFC[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80189BF4)[2];\n d = dx;\n denom = -(*(s16 **)&D_80189C00)[2];\n } else {\n denom = (*(s16 **)&D_80189C00)[2];\n d = (*(s16 **)&D_80189BF4)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80189C00;\n u16 *ac = *(u16 **)&D_80189BF4;\n b4 = D_80189BFC;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80189BF8;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80189BFC[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80189BFC[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:33", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_030/ov_SC03_030_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.079, "objects": ["build/src/ov_SC03_030/ov_SC03_030_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_801823DC)[2];\n d = dx;\n denom = -(*(s16 **)&D_801823E8)[2];\n } else {\n denom = (*(s16 **)&D_801823E8)[2];\n d = (*(s16 **)&D_801823DC)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801823E8;\n u16 *ac = *(u16 **)&D_801823DC;\n b4 = D_801823E4;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801823E0;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801823E4[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_801823E4[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_801823DC)[2];\n d = dx;\n denom = -(*(s16 **)&D_801823E8)[2];\n } else {\n denom = (*(s16 **)&D_801823E8)[2];\n d = (*(s16 **)&D_801823DC)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801823E8;\n u16 *ac = *(u16 **)&D_801823DC;\n b4 = D_801823E4;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801823E0;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801823E4[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_801823E4[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:33", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_093/ov_SC03_093_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.087, "objects": ["build/src/ov_SC03_093/ov_SC03_093_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80186468)[2];\n d = dx;\n denom = -(*(s16 **)&D_80186474)[2];\n } else {\n denom = (*(s16 **)&D_80186474)[2];\n d = (*(s16 **)&D_80186468)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80186474;\n u16 *ac = *(u16 **)&D_80186468;\n b4 = D_80186470;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018646C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80186470[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80186470[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80186468)[2];\n d = dx;\n denom = -(*(s16 **)&D_80186474)[2];\n } else {\n denom = (*(s16 **)&D_80186474)[2];\n d = (*(s16 **)&D_80186468)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80186474;\n u16 *ac = *(u16 **)&D_80186468;\n b4 = D_80186470;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018646C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80186470[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80186470[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:33", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_091/ov_SC03_091_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.094, "objects": ["build/src/ov_SC03_091/ov_SC03_091_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8018CEC0)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018CECC)[2];\n } else {\n denom = (*(s16 **)&D_8018CECC)[2];\n d = (*(s16 **)&D_8018CEC0)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018CECC;\n u16 *ac = *(u16 **)&D_8018CEC0;\n b4 = D_8018CEC8;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018CEC4;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018CEC8[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8018CEC8[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8018CEC0)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018CECC)[2];\n } else {\n denom = (*(s16 **)&D_8018CECC)[2];\n d = (*(s16 **)&D_8018CEC0)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018CECC;\n u16 *ac = *(u16 **)&D_8018CEC0;\n b4 = D_8018CEC8;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018CEC4;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018CEC8[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8018CEC8[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:33", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_090/ov_SC03_090_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.104, "objects": ["build/src/ov_SC03_090/ov_SC03_090_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8018C018)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018C024)[2];\n } else {\n denom = (*(s16 **)&D_8018C024)[2];\n d = (*(s16 **)&D_8018C018)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018C024;\n u16 *ac = *(u16 **)&D_8018C018;\n b4 = D_8018C020;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018C01C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018C020[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8018C020[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8018C018)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018C024)[2];\n } else {\n denom = (*(s16 **)&D_8018C024)[2];\n d = (*(s16 **)&D_8018C018)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018C024;\n u16 *ac = *(u16 **)&D_8018C018;\n b4 = D_8018C020;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018C01C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018C020[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8018C020[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:34", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_092/ov_SC03_092_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.107, "objects": ["build/src/ov_SC03_092/ov_SC03_092_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80185290)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018529C)[2];\n } else {\n denom = (*(s16 **)&D_8018529C)[2];\n d = (*(s16 **)&D_80185290)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018529C;\n u16 *ac = *(u16 **)&D_80185290;\n b4 = D_80185298;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80185294;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80185298[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80185298[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80185290)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018529C)[2];\n } else {\n denom = (*(s16 **)&D_8018529C)[2];\n d = (*(s16 **)&D_80185290)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018529C;\n u16 *ac = *(u16 **)&D_80185290;\n b4 = D_80185298;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80185294;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80185298[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80185298[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:34", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_014/ov_SC03_014_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.209, "objects": ["build/src/ov_SC03_014/ov_SC03_014_jr_80135D20.o", "build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8018BAFC)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018BB08)[2];\n } else {\n denom = (*(s16 **)&D_8018BB08)[2];\n d = (*(s16 **)&D_8018BAFC)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018BB08;\n u16 *ac = *(u16 **)&D_8018BAFC;\n b4 = D_8018BB04;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018BB00;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018BB04[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8018BB04[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8018BAFC)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018BB08)[2];\n } else {\n denom = (*(s16 **)&D_8018BB08)[2];\n d = (*(s16 **)&D_8018BAFC)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018BB08;\n u16 *ac = *(u16 **)&D_8018BAFC;\n b4 = D_8018BB04;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018BB00;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018BB04[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8018BB04[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:34", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_094/ov_SC03_094_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.106, "objects": ["build/src/ov_SC03_094/ov_SC03_094_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80187E64)[2];\n d = dx;\n denom = -(*(s16 **)&D_80187E70)[2];\n } else {\n denom = (*(s16 **)&D_80187E70)[2];\n d = (*(s16 **)&D_80187E64)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80187E70;\n u16 *ac = *(u16 **)&D_80187E64;\n b4 = D_80187E6C;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80187E68;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80187E6C[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80187E6C[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80187E64)[2];\n d = dx;\n denom = -(*(s16 **)&D_80187E70)[2];\n } else {\n denom = (*(s16 **)&D_80187E70)[2];\n d = (*(s16 **)&D_80187E64)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80187E70;\n u16 *ac = *(u16 **)&D_80187E64;\n b4 = D_80187E6C;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80187E68;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80187E6C[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80187E6C[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:34", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_096/ov_SC03_096_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.1, "objects": ["build/src/ov_SC03_096/ov_SC03_096_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80181044)[2];\n d = dx;\n denom = -(*(s16 **)&D_80181050)[2];\n } else {\n denom = (*(s16 **)&D_80181050)[2];\n d = (*(s16 **)&D_80181044)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80181050;\n u16 *ac = *(u16 **)&D_80181044;\n b4 = D_8018104C;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80181048;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018104C[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8018104C[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80181044)[2];\n d = dx;\n denom = -(*(s16 **)&D_80181050)[2];\n } else {\n denom = (*(s16 **)&D_80181050)[2];\n d = (*(s16 **)&D_80181044)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80181050;\n u16 *ac = *(u16 **)&D_80181044;\n b4 = D_8018104C;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80181048;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018104C[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8018104C[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:34", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_095/ov_SC03_095_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.098, "objects": ["build/src/ov_SC03_095/ov_SC03_095_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_801814C4)[2];\n d = dx;\n denom = -(*(s16 **)&D_801814D0)[2];\n } else {\n denom = (*(s16 **)&D_801814D0)[2];\n d = (*(s16 **)&D_801814C4)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801814D0;\n u16 *ac = *(u16 **)&D_801814C4;\n b4 = D_801814CC;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801814C8;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801814CC[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_801814CC[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_801814C4)[2];\n d = dx;\n denom = -(*(s16 **)&D_801814D0)[2];\n } else {\n denom = (*(s16 **)&D_801814D0)[2];\n d = (*(s16 **)&D_801814C4)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801814D0;\n u16 *ac = *(u16 **)&D_801814C4;\n b4 = D_801814CC;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801814C8;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801814CC[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_801814CC[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:35", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_098/ov_SC03_098_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.101, "objects": ["build/src/ov_SC03_098/ov_SC03_098_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_801858B0)[2];\n d = dx;\n denom = -(*(s16 **)&D_801858BC)[2];\n } else {\n denom = (*(s16 **)&D_801858BC)[2];\n d = (*(s16 **)&D_801858B0)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801858BC;\n u16 *ac = *(u16 **)&D_801858B0;\n b4 = D_801858B8;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801858B4;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801858B8[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_801858B8[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_801858B0)[2];\n d = dx;\n denom = -(*(s16 **)&D_801858BC)[2];\n } else {\n denom = (*(s16 **)&D_801858BC)[2];\n d = (*(s16 **)&D_801858B0)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801858BC;\n u16 *ac = *(u16 **)&D_801858B0;\n b4 = D_801858B8;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801858B4;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801858B8[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_801858B8[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:35", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_097/ov_SC03_097_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.101, "objects": ["build/src/ov_SC03_097/ov_SC03_097_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80186424)[2];\n d = dx;\n denom = -(*(s16 **)&D_80186430)[2];\n } else {\n denom = (*(s16 **)&D_80186430)[2];\n d = (*(s16 **)&D_80186424)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80186430;\n u16 *ac = *(u16 **)&D_80186424;\n b4 = D_8018642C;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80186428;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018642C[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8018642C[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80186424)[2];\n d = dx;\n denom = -(*(s16 **)&D_80186430)[2];\n } else {\n denom = (*(s16 **)&D_80186430)[2];\n d = (*(s16 **)&D_80186424)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80186430;\n u16 *ac = *(u16 **)&D_80186424;\n b4 = D_8018642C;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80186428;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018642C[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8018642C[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:35", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_099/ov_SC03_099_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.102, "objects": ["build/src/ov_SC03_099/ov_SC03_099_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_801839B0)[2];\n d = dx;\n denom = -(*(s16 **)&D_801839BC)[2];\n } else {\n denom = (*(s16 **)&D_801839BC)[2];\n d = (*(s16 **)&D_801839B0)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801839BC;\n u16 *ac = *(u16 **)&D_801839B0;\n b4 = D_801839B8;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801839B4;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801839B8[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_801839B8[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_801839B0)[2];\n d = dx;\n denom = -(*(s16 **)&D_801839BC)[2];\n } else {\n denom = (*(s16 **)&D_801839BC)[2];\n d = (*(s16 **)&D_801839B0)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801839BC;\n u16 *ac = *(u16 **)&D_801839B0;\n b4 = D_801839B8;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801839B4;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801839B8[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_801839B8[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:35", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_100/ov_SC03_100_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.102, "objects": ["build/src/ov_SC03_100/ov_SC03_100_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80184E7C)[2];\n d = dx;\n denom = -(*(s16 **)&D_80184E88)[2];\n } else {\n denom = (*(s16 **)&D_80184E88)[2];\n d = (*(s16 **)&D_80184E7C)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80184E88;\n u16 *ac = *(u16 **)&D_80184E7C;\n b4 = D_80184E84;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80184E80;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80184E84[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80184E84[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80184E7C)[2];\n d = dx;\n denom = -(*(s16 **)&D_80184E88)[2];\n } else {\n denom = (*(s16 **)&D_80184E88)[2];\n d = (*(s16 **)&D_80184E7C)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80184E88;\n u16 *ac = *(u16 **)&D_80184E7C;\n b4 = D_80184E84;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80184E80;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80184E84[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80184E84[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:35", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_101/ov_SC03_101_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.099, "objects": ["build/src/ov_SC03_101/ov_SC03_101_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80183E58)[2];\n d = dx;\n denom = -(*(s16 **)&D_80183E64)[2];\n } else {\n denom = (*(s16 **)&D_80183E64)[2];\n d = (*(s16 **)&D_80183E58)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80183E64;\n u16 *ac = *(u16 **)&D_80183E58;\n b4 = D_80183E60;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80183E5C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80183E60[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80183E60[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80183E58)[2];\n d = dx;\n denom = -(*(s16 **)&D_80183E64)[2];\n } else {\n denom = (*(s16 **)&D_80183E64)[2];\n d = (*(s16 **)&D_80183E58)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80183E64;\n u16 *ac = *(u16 **)&D_80183E58;\n b4 = D_80183E60;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80183E5C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80183E60[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80183E60[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:35", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_103/ov_SC03_103_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.096, "objects": ["build/src/ov_SC03_103/ov_SC03_103_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_801846C0)[2];\n d = dx;\n denom = -(*(s16 **)&D_801846CC)[2];\n } else {\n denom = (*(s16 **)&D_801846CC)[2];\n d = (*(s16 **)&D_801846C0)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801846CC;\n u16 *ac = *(u16 **)&D_801846C0;\n b4 = D_801846C8;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801846C4;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801846C8[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_801846C8[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_801846C0)[2];\n d = dx;\n denom = -(*(s16 **)&D_801846CC)[2];\n } else {\n denom = (*(s16 **)&D_801846CC)[2];\n d = (*(s16 **)&D_801846C0)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801846CC;\n u16 *ac = *(u16 **)&D_801846C0;\n b4 = D_801846C8;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801846C4;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801846C8[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_801846C8[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:36", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_102/ov_SC03_102_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.101, "objects": ["build/src/ov_SC03_102/ov_SC03_102_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80186710)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018671C)[2];\n } else {\n denom = (*(s16 **)&D_8018671C)[2];\n d = (*(s16 **)&D_80186710)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018671C;\n u16 *ac = *(u16 **)&D_80186710;\n b4 = D_80186718;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80186714;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80186718[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80186718[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80186710)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018671C)[2];\n } else {\n denom = (*(s16 **)&D_8018671C)[2];\n d = (*(s16 **)&D_80186710)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018671C;\n u16 *ac = *(u16 **)&D_80186710;\n b4 = D_80186718;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80186714;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80186718[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80186718[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:36", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_104/ov_SC03_104_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.113, "objects": ["build/src/ov_SC03_104/ov_SC03_104_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8018B250)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018B25C)[2];\n } else {\n denom = (*(s16 **)&D_8018B25C)[2];\n d = (*(s16 **)&D_8018B250)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018B25C;\n u16 *ac = *(u16 **)&D_8018B250;\n b4 = D_8018B258;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018B254;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018B258[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8018B258[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8018B250)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018B25C)[2];\n } else {\n denom = (*(s16 **)&D_8018B25C)[2];\n d = (*(s16 **)&D_8018B250)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018B25C;\n u16 *ac = *(u16 **)&D_8018B250;\n b4 = D_8018B258;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018B254;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018B258[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8018B258[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:36", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_108/ov_SC03_108_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.095, "objects": ["build/src/ov_SC03_108/ov_SC03_108_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80181230)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018123C)[2];\n } else {\n denom = (*(s16 **)&D_8018123C)[2];\n d = (*(s16 **)&D_80181230)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018123C;\n u16 *ac = *(u16 **)&D_80181230;\n b4 = D_80181238;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80181234;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80181238[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80181238[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80181230)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018123C)[2];\n } else {\n denom = (*(s16 **)&D_8018123C)[2];\n d = (*(s16 **)&D_80181230)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018123C;\n u16 *ac = *(u16 **)&D_80181230;\n b4 = D_80181238;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80181234;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80181238[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80181238[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:36", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_105/ov_SC03_105_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.086, "objects": ["build/src/ov_SC03_105/ov_SC03_105_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8018A8D8)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018A8E4)[2];\n } else {\n denom = (*(s16 **)&D_8018A8E4)[2];\n d = (*(s16 **)&D_8018A8D8)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018A8E4;\n u16 *ac = *(u16 **)&D_8018A8D8;\n b4 = D_8018A8E0;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018A8DC;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018A8E0[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8018A8E0[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8018A8D8)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018A8E4)[2];\n } else {\n denom = (*(s16 **)&D_8018A8E4)[2];\n d = (*(s16 **)&D_8018A8D8)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018A8E4;\n u16 *ac = *(u16 **)&D_8018A8D8;\n b4 = D_8018A8E0;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018A8DC;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018A8E0[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8018A8E0[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:36", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_109/ov_SC03_109_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.091, "objects": ["build/src/ov_SC03_109/ov_SC03_109_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8017E8DC)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017E8E8)[2];\n } else {\n denom = (*(s16 **)&D_8017E8E8)[2];\n d = (*(s16 **)&D_8017E8DC)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017E8E8;\n u16 *ac = *(u16 **)&D_8017E8DC;\n b4 = D_8017E8E4;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017E8E0;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017E8E4[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8017E8E4[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8017E8DC)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017E8E8)[2];\n } else {\n denom = (*(s16 **)&D_8017E8E8)[2];\n d = (*(s16 **)&D_8017E8DC)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017E8E8;\n u16 *ac = *(u16 **)&D_8017E8DC;\n b4 = D_8017E8E4;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017E8E0;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017E8E4[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8017E8E4[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:36", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_110/ov_SC03_110_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.091, "objects": ["build/src/ov_SC03_110/ov_SC03_110_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_801822FC)[2];\n d = dx;\n denom = -(*(s16 **)&D_80182308)[2];\n } else {\n denom = (*(s16 **)&D_80182308)[2];\n d = (*(s16 **)&D_801822FC)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80182308;\n u16 *ac = *(u16 **)&D_801822FC;\n b4 = D_80182304;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80182300;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80182304[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80182304[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_801822FC)[2];\n d = dx;\n denom = -(*(s16 **)&D_80182308)[2];\n } else {\n denom = (*(s16 **)&D_80182308)[2];\n d = (*(s16 **)&D_801822FC)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80182308;\n u16 *ac = *(u16 **)&D_801822FC;\n b4 = D_80182304;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80182300;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80182304[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80182304[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:36", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_111/ov_SC03_111_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.087, "objects": ["build/src/ov_SC03_111/ov_SC03_111_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80184EB0)[2];\n d = dx;\n denom = -(*(s16 **)&D_80184EBC)[2];\n } else {\n denom = (*(s16 **)&D_80184EBC)[2];\n d = (*(s16 **)&D_80184EB0)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80184EBC;\n u16 *ac = *(u16 **)&D_80184EB0;\n b4 = D_80184EB8;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80184EB4;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80184EB8[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80184EB8[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80184EB0)[2];\n d = dx;\n denom = -(*(s16 **)&D_80184EBC)[2];\n } else {\n denom = (*(s16 **)&D_80184EBC)[2];\n d = (*(s16 **)&D_80184EB0)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80184EBC;\n u16 *ac = *(u16 **)&D_80184EB0;\n b4 = D_80184EB8;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80184EB4;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80184EB8[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80184EB8[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:37", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_115/ov_SC03_115_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.091, "objects": ["build/src/ov_SC03_115/ov_SC03_115_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80180A3C)[2];\n d = dx;\n denom = -(*(s16 **)&D_80180A48)[2];\n } else {\n denom = (*(s16 **)&D_80180A48)[2];\n d = (*(s16 **)&D_80180A3C)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80180A48;\n u16 *ac = *(u16 **)&D_80180A3C;\n b4 = D_80180A44;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80180A40;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80180A44[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80180A44[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80180A3C)[2];\n d = dx;\n denom = -(*(s16 **)&D_80180A48)[2];\n } else {\n denom = (*(s16 **)&D_80180A48)[2];\n d = (*(s16 **)&D_80180A3C)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80180A48;\n u16 *ac = *(u16 **)&D_80180A3C;\n b4 = D_80180A44;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80180A40;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80180A44[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80180A44[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:37", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_112/ov_SC03_112_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.102, "objects": ["build/src/ov_SC03_112/ov_SC03_112_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80185CB8)[2];\n d = dx;\n denom = -(*(s16 **)&D_80185CC4)[2];\n } else {\n denom = (*(s16 **)&D_80185CC4)[2];\n d = (*(s16 **)&D_80185CB8)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80185CC4;\n u16 *ac = *(u16 **)&D_80185CB8;\n b4 = D_80185CC0;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80185CBC;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80185CC0[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80185CC0[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80185CB8)[2];\n d = dx;\n denom = -(*(s16 **)&D_80185CC4)[2];\n } else {\n denom = (*(s16 **)&D_80185CC4)[2];\n d = (*(s16 **)&D_80185CB8)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80185CC4;\n u16 *ac = *(u16 **)&D_80185CB8;\n b4 = D_80185CC0;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80185CBC;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80185CC0[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80185CC0[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:37", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_113/ov_SC03_113_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.082, "objects": ["build/src/ov_SC03_113/ov_SC03_113_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80183368)[2];\n d = dx;\n denom = -(*(s16 **)&D_80183374)[2];\n } else {\n denom = (*(s16 **)&D_80183374)[2];\n d = (*(s16 **)&D_80183368)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80183374;\n u16 *ac = *(u16 **)&D_80183368;\n b4 = D_80183370;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018336C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80183370[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80183370[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80183368)[2];\n d = dx;\n denom = -(*(s16 **)&D_80183374)[2];\n } else {\n denom = (*(s16 **)&D_80183374)[2];\n d = (*(s16 **)&D_80183368)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80183374;\n u16 *ac = *(u16 **)&D_80183368;\n b4 = D_80183370;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018336C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80183370[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80183370[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:37", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_114/ov_SC03_114_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.09, "objects": ["build/src/ov_SC03_114/ov_SC03_114_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8017EFD0)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017EFDC)[2];\n } else {\n denom = (*(s16 **)&D_8017EFDC)[2];\n d = (*(s16 **)&D_8017EFD0)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017EFDC;\n u16 *ac = *(u16 **)&D_8017EFD0;\n b4 = D_8017EFD8;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017EFD4;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017EFD8[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8017EFD8[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8017EFD0)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017EFDC)[2];\n } else {\n denom = (*(s16 **)&D_8017EFDC)[2];\n d = (*(s16 **)&D_8017EFD0)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017EFDC;\n u16 *ac = *(u16 **)&D_8017EFD0;\n b4 = D_8017EFD8;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017EFD4;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017EFD8[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8017EFD8[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:37", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_117/ov_SC03_117_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.091, "objects": ["build/src/ov_SC03_117/ov_SC03_117_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80184E4C)[2];\n d = dx;\n denom = -(*(s16 **)&D_80184E58)[2];\n } else {\n denom = (*(s16 **)&D_80184E58)[2];\n d = (*(s16 **)&D_80184E4C)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80184E58;\n u16 *ac = *(u16 **)&D_80184E4C;\n b4 = D_80184E54;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80184E50;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80184E54[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80184E54[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80184E4C)[2];\n d = dx;\n denom = -(*(s16 **)&D_80184E58)[2];\n } else {\n denom = (*(s16 **)&D_80184E58)[2];\n d = (*(s16 **)&D_80184E4C)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80184E58;\n u16 *ac = *(u16 **)&D_80184E4C;\n b4 = D_80184E54;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80184E50;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80184E54[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80184E54[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:37", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_116/ov_SC03_116_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.081, "objects": ["build/src/ov_SC03_116/ov_SC03_116_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80182E40)[2];\n d = dx;\n denom = -(*(s16 **)&D_80182E4C)[2];\n } else {\n denom = (*(s16 **)&D_80182E4C)[2];\n d = (*(s16 **)&D_80182E40)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80182E4C;\n u16 *ac = *(u16 **)&D_80182E40;\n b4 = D_80182E48;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80182E44;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80182E48[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80182E48[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80182E40)[2];\n d = dx;\n denom = -(*(s16 **)&D_80182E4C)[2];\n } else {\n denom = (*(s16 **)&D_80182E4C)[2];\n d = (*(s16 **)&D_80182E40)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80182E4C;\n u16 *ac = *(u16 **)&D_80182E40;\n b4 = D_80182E48;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80182E44;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80182E48[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80182E48[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:37", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_121/ov_SC03_121_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.091, "objects": ["build/src/ov_SC03_121/ov_SC03_121_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80182714)[2];\n d = dx;\n denom = -(*(s16 **)&D_80182720)[2];\n } else {\n denom = (*(s16 **)&D_80182720)[2];\n d = (*(s16 **)&D_80182714)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80182720;\n u16 *ac = *(u16 **)&D_80182714;\n b4 = D_8018271C;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80182718;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018271C[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8018271C[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80182714)[2];\n d = dx;\n denom = -(*(s16 **)&D_80182720)[2];\n } else {\n denom = (*(s16 **)&D_80182720)[2];\n d = (*(s16 **)&D_80182714)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80182720;\n u16 *ac = *(u16 **)&D_80182714;\n b4 = D_8018271C;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80182718;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018271C[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8018271C[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:37", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_124/ov_SC03_124_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.083, "objects": ["build/src/ov_SC03_124/ov_SC03_124_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8018B140)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018B14C)[2];\n } else {\n denom = (*(s16 **)&D_8018B14C)[2];\n d = (*(s16 **)&D_8018B140)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018B14C;\n u16 *ac = *(u16 **)&D_8018B140;\n b4 = D_8018B148;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018B144;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018B148[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8018B148[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8018B140)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018B14C)[2];\n } else {\n denom = (*(s16 **)&D_8018B14C)[2];\n d = (*(s16 **)&D_8018B140)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018B14C;\n u16 *ac = *(u16 **)&D_8018B140;\n b4 = D_8018B148;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018B144;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018B148[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8018B148[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:38", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_125/ov_SC03_125_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.082, "objects": ["build/src/ov_SC03_125/ov_SC03_125_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80184310)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018431C)[2];\n } else {\n denom = (*(s16 **)&D_8018431C)[2];\n d = (*(s16 **)&D_80184310)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018431C;\n u16 *ac = *(u16 **)&D_80184310;\n b4 = D_80184318;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80184314;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80184318[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80184318[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80184310)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018431C)[2];\n } else {\n denom = (*(s16 **)&D_8018431C)[2];\n d = (*(s16 **)&D_80184310)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018431C;\n u16 *ac = *(u16 **)&D_80184310;\n b4 = D_80184318;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80184314;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80184318[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80184318[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:38", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_000/ov_SC04_000_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.088, "objects": ["build/src/ov_SC04_000/ov_SC04_000_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80183814)[2];\n d = dx;\n denom = -(*(s16 **)&D_80183820)[2];\n } else {\n denom = (*(s16 **)&D_80183820)[2];\n d = (*(s16 **)&D_80183814)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80183820;\n u16 *ac = *(u16 **)&D_80183814;\n b4 = D_8018381C;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80183818;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018381C[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8018381C[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80183814)[2];\n d = dx;\n denom = -(*(s16 **)&D_80183820)[2];\n } else {\n denom = (*(s16 **)&D_80183820)[2];\n d = (*(s16 **)&D_80183814)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80183820;\n u16 *ac = *(u16 **)&D_80183814;\n b4 = D_8018381C;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80183818;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018381C[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8018381C[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:38", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_002/ov_SC04_002_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.084, "objects": ["build/src/ov_SC04_002/ov_SC04_002_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80188980)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018898C)[2];\n } else {\n denom = (*(s16 **)&D_8018898C)[2];\n d = (*(s16 **)&D_80188980)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018898C;\n u16 *ac = *(u16 **)&D_80188980;\n b4 = D_80188988;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80188984;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80188988[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80188988[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80188980)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018898C)[2];\n } else {\n denom = (*(s16 **)&D_8018898C)[2];\n d = (*(s16 **)&D_80188980)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018898C;\n u16 *ac = *(u16 **)&D_80188980;\n b4 = D_80188988;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80188984;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80188988[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80188988[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:38", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_004/ov_SC04_004_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.088, "objects": ["build/src/ov_SC04_004/ov_SC04_004_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80184C50)[2];\n d = dx;\n denom = -(*(s16 **)&D_80184C5C)[2];\n } else {\n denom = (*(s16 **)&D_80184C5C)[2];\n d = (*(s16 **)&D_80184C50)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80184C5C;\n u16 *ac = *(u16 **)&D_80184C50;\n b4 = D_80184C58;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80184C54;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80184C58[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80184C58[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80184C50)[2];\n d = dx;\n denom = -(*(s16 **)&D_80184C5C)[2];\n } else {\n denom = (*(s16 **)&D_80184C5C)[2];\n d = (*(s16 **)&D_80184C50)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80184C5C;\n u16 *ac = *(u16 **)&D_80184C50;\n b4 = D_80184C58;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80184C54;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80184C58[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80184C58[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:38", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_003/ov_SC04_003_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.082, "objects": ["build/src/ov_SC04_003/ov_SC04_003_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8018271C)[2];\n d = dx;\n denom = -(*(s16 **)&D_80182728)[2];\n } else {\n denom = (*(s16 **)&D_80182728)[2];\n d = (*(s16 **)&D_8018271C)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80182728;\n u16 *ac = *(u16 **)&D_8018271C;\n b4 = D_80182724;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80182720;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80182724[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80182724[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8018271C)[2];\n d = dx;\n denom = -(*(s16 **)&D_80182728)[2];\n } else {\n denom = (*(s16 **)&D_80182728)[2];\n d = (*(s16 **)&D_8018271C)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80182728;\n u16 *ac = *(u16 **)&D_8018271C;\n b4 = D_80182724;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80182720;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80182724[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80182724[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:38", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_118/ov_SC03_118_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.178, "objects": ["build/src/ov_SC03_118/ov_SC03_118_jr_80135D20.o", "build/src/ov_SC03_119/ov_SC03_119_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80189EF8)[2];\n d = dx;\n denom = -(*(s16 **)&D_80189F04)[2];\n } else {\n denom = (*(s16 **)&D_80189F04)[2];\n d = (*(s16 **)&D_80189EF8)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80189F04;\n u16 *ac = *(u16 **)&D_80189EF8;\n b4 = D_80189F00;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80189EFC;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80189F00[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80189F00[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80189EF8)[2];\n d = dx;\n denom = -(*(s16 **)&D_80189F04)[2];\n } else {\n denom = (*(s16 **)&D_80189F04)[2];\n d = (*(s16 **)&D_80189EF8)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80189F04;\n u16 *ac = *(u16 **)&D_80189EF8;\n b4 = D_80189F00;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80189EFC;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80189F00[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80189F00[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:39", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_005/ov_SC04_005_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.095, "objects": ["build/src/ov_SC04_005/ov_SC04_005_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80188084)[2];\n d = dx;\n denom = -(*(s16 **)&D_80188090)[2];\n } else {\n denom = (*(s16 **)&D_80188090)[2];\n d = (*(s16 **)&D_80188084)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80188090;\n u16 *ac = *(u16 **)&D_80188084;\n b4 = D_8018808C;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80188088;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018808C[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8018808C[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80188084)[2];\n d = dx;\n denom = -(*(s16 **)&D_80188090)[2];\n } else {\n denom = (*(s16 **)&D_80188090)[2];\n d = (*(s16 **)&D_80188084)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80188090;\n u16 *ac = *(u16 **)&D_80188084;\n b4 = D_8018808C;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80188088;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018808C[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8018808C[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:39", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_006/ov_SC04_006_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.089, "objects": ["build/src/ov_SC04_006/ov_SC04_006_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80180164)[2];\n d = dx;\n denom = -(*(s16 **)&D_80180170)[2];\n } else {\n denom = (*(s16 **)&D_80180170)[2];\n d = (*(s16 **)&D_80180164)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80180170;\n u16 *ac = *(u16 **)&D_80180164;\n b4 = D_8018016C;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80180168;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018016C[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8018016C[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80180164)[2];\n d = dx;\n denom = -(*(s16 **)&D_80180170)[2];\n } else {\n denom = (*(s16 **)&D_80180170)[2];\n d = (*(s16 **)&D_80180164)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80180170;\n u16 *ac = *(u16 **)&D_80180164;\n b4 = D_8018016C;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80180168;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018016C[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8018016C[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:39", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_007/ov_SC04_007_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.08, "objects": ["build/src/ov_SC04_007/ov_SC04_007_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8018611C)[2];\n d = dx;\n denom = -(*(s16 **)&D_80186128)[2];\n } else {\n denom = (*(s16 **)&D_80186128)[2];\n d = (*(s16 **)&D_8018611C)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80186128;\n u16 *ac = *(u16 **)&D_8018611C;\n b4 = D_80186124;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80186120;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80186124[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80186124[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8018611C)[2];\n d = dx;\n denom = -(*(s16 **)&D_80186128)[2];\n } else {\n denom = (*(s16 **)&D_80186128)[2];\n d = (*(s16 **)&D_8018611C)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80186128;\n u16 *ac = *(u16 **)&D_8018611C;\n b4 = D_80186124;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80186120;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80186124[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80186124[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:39", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_009/ov_SC04_009_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.082, "objects": ["build/src/ov_SC04_009/ov_SC04_009_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8017F080)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017F08C)[2];\n } else {\n denom = (*(s16 **)&D_8017F08C)[2];\n d = (*(s16 **)&D_8017F080)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017F08C;\n u16 *ac = *(u16 **)&D_8017F080;\n b4 = D_8017F088;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017F084;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017F088[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8017F088[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8017F080)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017F08C)[2];\n } else {\n denom = (*(s16 **)&D_8017F08C)[2];\n d = (*(s16 **)&D_8017F080)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017F08C;\n u16 *ac = *(u16 **)&D_8017F080;\n b4 = D_8017F088;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017F084;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017F088[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8017F088[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:39", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_012/ov_SC04_012_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.086, "objects": ["build/src/ov_SC04_012/ov_SC04_012_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8017EB90)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017EB9C)[2];\n } else {\n denom = (*(s16 **)&D_8017EB9C)[2];\n d = (*(s16 **)&D_8017EB90)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017EB9C;\n u16 *ac = *(u16 **)&D_8017EB90;\n b4 = D_8017EB98;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017EB94;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017EB98[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8017EB98[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8017EB90)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017EB9C)[2];\n } else {\n denom = (*(s16 **)&D_8017EB9C)[2];\n d = (*(s16 **)&D_8017EB90)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017EB9C;\n u16 *ac = *(u16 **)&D_8017EB90;\n b4 = D_8017EB98;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017EB94;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017EB98[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8017EB98[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:39", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_016/ov_SC04_016_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.086, "objects": ["build/src/ov_SC04_016/ov_SC04_016_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8018058C)[2];\n d = dx;\n denom = -(*(s16 **)&D_80180598)[2];\n } else {\n denom = (*(s16 **)&D_80180598)[2];\n d = (*(s16 **)&D_8018058C)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80180598;\n u16 *ac = *(u16 **)&D_8018058C;\n b4 = D_80180594;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80180590;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80180594[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80180594[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8018058C)[2];\n d = dx;\n denom = -(*(s16 **)&D_80180598)[2];\n } else {\n denom = (*(s16 **)&D_80180598)[2];\n d = (*(s16 **)&D_8018058C)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80180598;\n u16 *ac = *(u16 **)&D_8018058C;\n b4 = D_80180594;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80180590;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80180594[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80180594[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:39", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_015/ov_SC04_015_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.089, "objects": ["build/src/ov_SC04_015/ov_SC04_015_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80184AC8)[2];\n d = dx;\n denom = -(*(s16 **)&D_80184AD4)[2];\n } else {\n denom = (*(s16 **)&D_80184AD4)[2];\n d = (*(s16 **)&D_80184AC8)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80184AD4;\n u16 *ac = *(u16 **)&D_80184AC8;\n b4 = D_80184AD0;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80184ACC;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80184AD0[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80184AD0[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80184AC8)[2];\n d = dx;\n denom = -(*(s16 **)&D_80184AD4)[2];\n } else {\n denom = (*(s16 **)&D_80184AD4)[2];\n d = (*(s16 **)&D_80184AC8)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80184AD4;\n u16 *ac = *(u16 **)&D_80184AC8;\n b4 = D_80184AD0;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80184ACC;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80184AD0[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80184AD0[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:39", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_010/ov_SC04_010_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.086, "objects": ["build/src/ov_SC04_010/ov_SC04_010_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8017E72C)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017E738)[2];\n } else {\n denom = (*(s16 **)&D_8017E738)[2];\n d = (*(s16 **)&D_8017E72C)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017E738;\n u16 *ac = *(u16 **)&D_8017E72C;\n b4 = D_8017E734;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017E730;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017E734[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8017E734[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8017E72C)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017E738)[2];\n } else {\n denom = (*(s16 **)&D_8017E738)[2];\n d = (*(s16 **)&D_8017E72C)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017E738;\n u16 *ac = *(u16 **)&D_8017E72C;\n b4 = D_8017E734;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017E730;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017E734[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8017E734[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:40", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_000/ov_SC05_000_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.083, "objects": ["build/src/ov_SC05_000/ov_SC05_000_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8017E81C)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017E828)[2];\n } else {\n denom = (*(s16 **)&D_8017E828)[2];\n d = (*(s16 **)&D_8017E81C)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017E828;\n u16 *ac = *(u16 **)&D_8017E81C;\n b4 = D_8017E824;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017E820;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017E824[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8017E824[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8017E81C)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017E828)[2];\n } else {\n denom = (*(s16 **)&D_8017E828)[2];\n d = (*(s16 **)&D_8017E81C)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017E828;\n u16 *ac = *(u16 **)&D_8017E81C;\n b4 = D_8017E824;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017E820;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017E824[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8017E824[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:40", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_002/ov_SC05_002_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.086, "objects": ["build/src/ov_SC05_002/ov_SC05_002_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_801807B8)[2];\n d = dx;\n denom = -(*(s16 **)&D_801807C4)[2];\n } else {\n denom = (*(s16 **)&D_801807C4)[2];\n d = (*(s16 **)&D_801807B8)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801807C4;\n u16 *ac = *(u16 **)&D_801807B8;\n b4 = D_801807C0;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801807BC;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801807C0[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_801807C0[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_801807B8)[2];\n d = dx;\n denom = -(*(s16 **)&D_801807C4)[2];\n } else {\n denom = (*(s16 **)&D_801807C4)[2];\n d = (*(s16 **)&D_801807B8)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801807C4;\n u16 *ac = *(u16 **)&D_801807B8;\n b4 = D_801807C0;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801807BC;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801807C0[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_801807C0[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:40", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_020/ov_SC04_020_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.082, "objects": ["build/src/ov_SC04_020/ov_SC04_020_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_801838DC)[2];\n d = dx;\n denom = -(*(s16 **)&D_801838E8)[2];\n } else {\n denom = (*(s16 **)&D_801838E8)[2];\n d = (*(s16 **)&D_801838DC)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801838E8;\n u16 *ac = *(u16 **)&D_801838DC;\n b4 = D_801838E4;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801838E0;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801838E4[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_801838E4[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_801838DC)[2];\n d = dx;\n denom = -(*(s16 **)&D_801838E8)[2];\n } else {\n denom = (*(s16 **)&D_801838E8)[2];\n d = (*(s16 **)&D_801838DC)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801838E8;\n u16 *ac = *(u16 **)&D_801838DC;\n b4 = D_801838E4;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801838E0;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801838E4[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_801838E4[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:40", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_003/ov_SC05_003_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.091, "objects": ["build/src/ov_SC05_003/ov_SC05_003_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80182AF0)[2];\n d = dx;\n denom = -(*(s16 **)&D_80182AFC)[2];\n } else {\n denom = (*(s16 **)&D_80182AFC)[2];\n d = (*(s16 **)&D_80182AF0)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80182AFC;\n u16 *ac = *(u16 **)&D_80182AF0;\n b4 = D_80182AF8;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80182AF4;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80182AF8[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80182AF8[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80182AF0)[2];\n d = dx;\n denom = -(*(s16 **)&D_80182AFC)[2];\n } else {\n denom = (*(s16 **)&D_80182AFC)[2];\n d = (*(s16 **)&D_80182AF0)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80182AFC;\n u16 *ac = *(u16 **)&D_80182AF0;\n b4 = D_80182AF8;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80182AF4;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80182AF8[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80182AF8[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:40", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_004/ov_SC05_004_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.088, "objects": ["build/src/ov_SC05_004/ov_SC05_004_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80181BFC)[2];\n d = dx;\n denom = -(*(s16 **)&D_80181C08)[2];\n } else {\n denom = (*(s16 **)&D_80181C08)[2];\n d = (*(s16 **)&D_80181BFC)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80181C08;\n u16 *ac = *(u16 **)&D_80181BFC;\n b4 = D_80181C04;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80181C00;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80181C04[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80181C04[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80181BFC)[2];\n d = dx;\n denom = -(*(s16 **)&D_80181C08)[2];\n } else {\n denom = (*(s16 **)&D_80181C08)[2];\n d = (*(s16 **)&D_80181BFC)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80181C08;\n u16 *ac = *(u16 **)&D_80181BFC;\n b4 = D_80181C04;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80181C00;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80181C04[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80181C04[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:40", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_001/ov_SC05_001_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.082, "objects": ["build/src/ov_SC05_001/ov_SC05_001_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80185FF8)[2];\n d = dx;\n denom = -(*(s16 **)&D_80186004)[2];\n } else {\n denom = (*(s16 **)&D_80186004)[2];\n d = (*(s16 **)&D_80185FF8)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80186004;\n u16 *ac = *(u16 **)&D_80185FF8;\n b4 = D_80186000;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80185FFC;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80186000[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80186000[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80185FF8)[2];\n d = dx;\n denom = -(*(s16 **)&D_80186004)[2];\n } else {\n denom = (*(s16 **)&D_80186004)[2];\n d = (*(s16 **)&D_80185FF8)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80186004;\n u16 *ac = *(u16 **)&D_80185FF8;\n b4 = D_80186000;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80185FFC;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80186000[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80186000[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:40", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_005/ov_SC05_005_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.083, "objects": ["build/src/ov_SC05_005/ov_SC05_005_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_801829D0)[2];\n d = dx;\n denom = -(*(s16 **)&D_801829DC)[2];\n } else {\n denom = (*(s16 **)&D_801829DC)[2];\n d = (*(s16 **)&D_801829D0)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801829DC;\n u16 *ac = *(u16 **)&D_801829D0;\n b4 = D_801829D8;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801829D4;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801829D8[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_801829D8[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_801829D0)[2];\n d = dx;\n denom = -(*(s16 **)&D_801829DC)[2];\n } else {\n denom = (*(s16 **)&D_801829DC)[2];\n d = (*(s16 **)&D_801829D0)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801829DC;\n u16 *ac = *(u16 **)&D_801829D0;\n b4 = D_801829D8;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801829D4;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801829D8[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_801829D8[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:41", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_006/ov_SC05_006_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.081, "objects": ["build/src/ov_SC05_006/ov_SC05_006_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8017F9F0)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017F9FC)[2];\n } else {\n denom = (*(s16 **)&D_8017F9FC)[2];\n d = (*(s16 **)&D_8017F9F0)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017F9FC;\n u16 *ac = *(u16 **)&D_8017F9F0;\n b4 = D_8017F9F8;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017F9F4;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017F9F8[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8017F9F8[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8017F9F0)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017F9FC)[2];\n } else {\n denom = (*(s16 **)&D_8017F9FC)[2];\n d = (*(s16 **)&D_8017F9F0)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017F9FC;\n u16 *ac = *(u16 **)&D_8017F9F0;\n b4 = D_8017F9F8;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017F9F4;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017F9F8[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8017F9F8[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:41", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_008/ov_SC05_008_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.087, "objects": ["build/src/ov_SC05_008/ov_SC05_008_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80182F44)[2];\n d = dx;\n denom = -(*(s16 **)&D_80182F50)[2];\n } else {\n denom = (*(s16 **)&D_80182F50)[2];\n d = (*(s16 **)&D_80182F44)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80182F50;\n u16 *ac = *(u16 **)&D_80182F44;\n b4 = D_80182F4C;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80182F48;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80182F4C[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80182F4C[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80182F44)[2];\n d = dx;\n denom = -(*(s16 **)&D_80182F50)[2];\n } else {\n denom = (*(s16 **)&D_80182F50)[2];\n d = (*(s16 **)&D_80182F44)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80182F50;\n u16 *ac = *(u16 **)&D_80182F44;\n b4 = D_80182F4C;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80182F48;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80182F4C[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80182F4C[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:41", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_007/ov_SC05_007_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.087, "objects": ["build/src/ov_SC05_007/ov_SC05_007_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80180FEC)[2];\n d = dx;\n denom = -(*(s16 **)&D_80180FF8)[2];\n } else {\n denom = (*(s16 **)&D_80180FF8)[2];\n d = (*(s16 **)&D_80180FEC)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80180FF8;\n u16 *ac = *(u16 **)&D_80180FEC;\n b4 = D_80180FF4;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80180FF0;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80180FF4[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80180FF4[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80180FEC)[2];\n d = dx;\n denom = -(*(s16 **)&D_80180FF8)[2];\n } else {\n denom = (*(s16 **)&D_80180FF8)[2];\n d = (*(s16 **)&D_80180FEC)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80180FF8;\n u16 *ac = *(u16 **)&D_80180FEC;\n b4 = D_80180FF4;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80180FF0;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80180FF4[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80180FF4[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:41", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_018/ov_SC04_018_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.183, "objects": ["build/src/ov_SC04_018/ov_SC04_018_jr_80135D20.o", "build/src/ov_SC04_019/ov_SC04_019_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8018D7A4)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018D7B0)[2];\n } else {\n denom = (*(s16 **)&D_8018D7B0)[2];\n d = (*(s16 **)&D_8018D7A4)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018D7B0;\n u16 *ac = *(u16 **)&D_8018D7A4;\n b4 = D_8018D7AC;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018D7A8;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018D7AC[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8018D7AC[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8018D7A4)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018D7B0)[2];\n } else {\n denom = (*(s16 **)&D_8018D7B0)[2];\n d = (*(s16 **)&D_8018D7A4)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018D7B0;\n u16 *ac = *(u16 **)&D_8018D7A4;\n b4 = D_8018D7AC;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018D7A8;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018D7AC[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8018D7AC[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:41", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_010/ov_SC05_010_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.087, "objects": ["build/src/ov_SC05_010/ov_SC05_010_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A tus1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A tus1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80188F30)[2];\n d = dx;\n denom = -(*(s16 **)&D_80188F3C)[2];\n } else {\n denom = (*(s16 **)&D_80188F3C)[2];\n d = (*(s16 **)&D_80188F30)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80188F3C;\n u16 *ac = *(u16 **)&D_80188F30;\n b4 = D_80188F38;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80188F34;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80188F38[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A tus1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80188F38[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A tus1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80188F30)[2];\n d = dx;\n denom = -(*(s16 **)&D_80188F3C)[2];\n } else {\n denom = (*(s16 **)&D_80188F3C)[2];\n d = (*(s16 **)&D_80188F30)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80188F3C;\n u16 *ac = *(u16 **)&D_80188F30;\n b4 = D_80188F38;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80188F34;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80188F38[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80188F38[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:41", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_011/ov_SC05_011_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.101, "objects": ["build/src/ov_SC05_011/ov_SC05_011_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus6)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8017E2A8)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017E2B4)[2];\n } else {\n denom = (*(s16 **)&D_8017E2B4)[2];\n d = (*(s16 **)&D_8017E2A8)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017E2B4;\n u16 *ac = *(u16 **)&D_8017E2A8;\n b4 = D_8017E2B0;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017E2AC;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017E2B0[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus6)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8017E2B0[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung B tus6)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8017E2A8)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017E2B4)[2];\n } else {\n denom = (*(s16 **)&D_8017E2B4)[2];\n d = (*(s16 **)&D_8017E2A8)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017E2B4;\n u16 *ac = *(u16 **)&D_8017E2A8;\n b4 = D_8017E2B0;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017E2AC;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017E2B0[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8017E2B0[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:42", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_017/ov_SC05_017_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.088, "objects": ["build/src/ov_SC05_017/ov_SC05_017_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus6)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8018D768)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018D774)[2];\n } else {\n denom = (*(s16 **)&D_8018D774)[2];\n d = (*(s16 **)&D_8018D768)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018D774;\n u16 *ac = *(u16 **)&D_8018D768;\n b4 = D_8018D770;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018D76C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018D770[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus6)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8018D770[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung B tus6)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8018D768)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018D774)[2];\n } else {\n denom = (*(s16 **)&D_8018D774)[2];\n d = (*(s16 **)&D_8018D768)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018D774;\n u16 *ac = *(u16 **)&D_8018D768;\n b4 = D_8018D770;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018D76C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018D770[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8018D770[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:42", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_018/ov_SC05_018_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.095, "objects": ["build/src/ov_SC05_018/ov_SC05_018_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus6)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80186EC4)[2];\n d = dx;\n denom = -(*(s16 **)&D_80186ED0)[2];\n } else {\n denom = (*(s16 **)&D_80186ED0)[2];\n d = (*(s16 **)&D_80186EC4)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80186ED0;\n u16 *ac = *(u16 **)&D_80186EC4;\n b4 = D_80186ECC;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80186EC8;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80186ECC[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus6)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80186ECC[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung B tus6)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80186EC4)[2];\n d = dx;\n denom = -(*(s16 **)&D_80186ED0)[2];\n } else {\n denom = (*(s16 **)&D_80186ED0)[2];\n d = (*(s16 **)&D_80186EC4)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80186ED0;\n u16 *ac = *(u16 **)&D_80186EC4;\n b4 = D_80186ECC;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80186EC8;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80186ECC[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80186ECC[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:42", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_000/ov_SC06_000_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.099, "objects": ["build/src/ov_SC06_000/ov_SC06_000_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus6)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80188818)[2];\n d = dx;\n denom = -(*(s16 **)&D_80188824)[2];\n } else {\n denom = (*(s16 **)&D_80188824)[2];\n d = (*(s16 **)&D_80188818)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80188824;\n u16 *ac = *(u16 **)&D_80188818;\n b4 = D_80188820;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018881C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80188820[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus6)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80188820[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung B tus6)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80188818)[2];\n d = dx;\n denom = -(*(s16 **)&D_80188824)[2];\n } else {\n denom = (*(s16 **)&D_80188824)[2];\n d = (*(s16 **)&D_80188818)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80188824;\n u16 *ac = *(u16 **)&D_80188818;\n b4 = D_80188820;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018881C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80188820[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80188820[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:42", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_006/ov_SC06_006_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.091, "objects": ["build/src/ov_SC06_006/ov_SC06_006_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus6)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8018233C)[2];\n d = dx;\n denom = -(*(s16 **)&D_80182348)[2];\n } else {\n denom = (*(s16 **)&D_80182348)[2];\n d = (*(s16 **)&D_8018233C)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80182348;\n u16 *ac = *(u16 **)&D_8018233C;\n b4 = D_80182344;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80182340;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80182344[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus6)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80182344[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung B tus6)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8018233C)[2];\n d = dx;\n denom = -(*(s16 **)&D_80182348)[2];\n } else {\n denom = (*(s16 **)&D_80182348)[2];\n d = (*(s16 **)&D_8018233C)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80182348;\n u16 *ac = *(u16 **)&D_8018233C;\n b4 = D_80182344;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80182340;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80182344[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80182344[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:42", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_008/ov_SC06_008_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.088, "objects": ["build/src/ov_SC06_008/ov_SC06_008_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus6)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80185DA4)[2];\n d = dx;\n denom = -(*(s16 **)&D_80185DB0)[2];\n } else {\n denom = (*(s16 **)&D_80185DB0)[2];\n d = (*(s16 **)&D_80185DA4)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80185DB0;\n u16 *ac = *(u16 **)&D_80185DA4;\n b4 = D_80185DAC;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80185DA8;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80185DAC[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus6)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80185DAC[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung B tus6)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80185DA4)[2];\n d = dx;\n denom = -(*(s16 **)&D_80185DB0)[2];\n } else {\n denom = (*(s16 **)&D_80185DB0)[2];\n d = (*(s16 **)&D_80185DA4)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80185DB0;\n u16 *ac = *(u16 **)&D_80185DA4;\n b4 = D_80185DAC;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80185DA8;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80185DAC[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80185DAC[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:42", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_010/ov_SC06_010_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.086, "objects": ["build/src/ov_SC06_010/ov_SC06_010_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus6)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80186F80)[2];\n d = dx;\n denom = -(*(s16 **)&D_80186F8C)[2];\n } else {\n denom = (*(s16 **)&D_80186F8C)[2];\n d = (*(s16 **)&D_80186F80)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80186F8C;\n u16 *ac = *(u16 **)&D_80186F80;\n b4 = D_80186F88;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80186F84;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80186F88[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus6)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80186F88[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung B tus6)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80186F80)[2];\n d = dx;\n denom = -(*(s16 **)&D_80186F8C)[2];\n } else {\n denom = (*(s16 **)&D_80186F8C)[2];\n d = (*(s16 **)&D_80186F80)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80186F8C;\n u16 *ac = *(u16 **)&D_80186F80;\n b4 = D_80186F88;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80186F84;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80186F88[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80186F88[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:42", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_011/ov_SC06_011_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.103, "objects": ["build/src/ov_SC06_011/ov_SC06_011_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus6)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_801809E0)[2];\n d = dx;\n denom = -(*(s16 **)&D_801809EC)[2];\n } else {\n denom = (*(s16 **)&D_801809EC)[2];\n d = (*(s16 **)&D_801809E0)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801809EC;\n u16 *ac = *(u16 **)&D_801809E0;\n b4 = D_801809E8;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801809E4;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801809E8[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus6)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_801809E8[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung B tus6)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_801809E0)[2];\n d = dx;\n denom = -(*(s16 **)&D_801809EC)[2];\n } else {\n denom = (*(s16 **)&D_801809EC)[2];\n d = (*(s16 **)&D_801809E0)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801809EC;\n u16 *ac = *(u16 **)&D_801809E0;\n b4 = D_801809E8;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801809E4;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801809E8[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_801809E8[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:43", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_013/ov_SC06_013_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.107, "objects": ["build/src/ov_SC06_013/ov_SC06_013_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus6)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8017F15C)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017F168)[2];\n } else {\n denom = (*(s16 **)&D_8017F168)[2];\n d = (*(s16 **)&D_8017F15C)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017F168;\n u16 *ac = *(u16 **)&D_8017F15C;\n b4 = D_8017F164;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017F160;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017F164[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus6)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8017F164[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung B tus6)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8017F15C)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017F168)[2];\n } else {\n denom = (*(s16 **)&D_8017F168)[2];\n d = (*(s16 **)&D_8017F15C)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017F168;\n u16 *ac = *(u16 **)&D_8017F15C;\n b4 = D_8017F164;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017F160;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017F164[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8017F164[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:43", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_014/ov_SC06_014_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.082, "objects": ["build/src/ov_SC06_014/ov_SC06_014_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus6)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_801804C0)[2];\n d = dx;\n denom = -(*(s16 **)&D_801804CC)[2];\n } else {\n denom = (*(s16 **)&D_801804CC)[2];\n d = (*(s16 **)&D_801804C0)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801804CC;\n u16 *ac = *(u16 **)&D_801804C0;\n b4 = D_801804C8;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801804C4;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801804C8[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus6)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_801804C8[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung B tus6)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_801804C0)[2];\n d = dx;\n denom = -(*(s16 **)&D_801804CC)[2];\n } else {\n denom = (*(s16 **)&D_801804CC)[2];\n d = (*(s16 **)&D_801804C0)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801804CC;\n u16 *ac = *(u16 **)&D_801804C0;\n b4 = D_801804C8;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801804C4;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801804C8[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_801804C8[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:43", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_016/ov_SC06_016_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.088, "objects": ["build/src/ov_SC06_016/ov_SC06_016_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus6)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80185428)[2];\n d = dx;\n denom = -(*(s16 **)&D_80185434)[2];\n } else {\n denom = (*(s16 **)&D_80185434)[2];\n d = (*(s16 **)&D_80185428)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80185434;\n u16 *ac = *(u16 **)&D_80185428;\n b4 = D_80185430;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018542C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80185430[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus6)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80185430[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung B tus6)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80185428)[2];\n d = dx;\n denom = -(*(s16 **)&D_80185434)[2];\n } else {\n denom = (*(s16 **)&D_80185434)[2];\n d = (*(s16 **)&D_80185428)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80185434;\n u16 *ac = *(u16 **)&D_80185428;\n b4 = D_80185430;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018542C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80185430[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80185430[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:43", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_015/ov_SC06_015_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.081, "objects": ["build/src/ov_SC06_015/ov_SC06_015_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus6)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8017F018)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017F024)[2];\n } else {\n denom = (*(s16 **)&D_8017F024)[2];\n d = (*(s16 **)&D_8017F018)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017F024;\n u16 *ac = *(u16 **)&D_8017F018;\n b4 = D_8017F020;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017F01C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017F020[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus6)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8017F020[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung B tus6)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8017F018)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017F024)[2];\n } else {\n denom = (*(s16 **)&D_8017F024)[2];\n d = (*(s16 **)&D_8017F018)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017F024;\n u16 *ac = *(u16 **)&D_8017F018;\n b4 = D_8017F020;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017F01C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017F020[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8017F020[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:43", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_018/ov_SC06_018_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.089, "objects": ["build/src/ov_SC06_018/ov_SC06_018_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus6)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80193B64)[2];\n d = dx;\n denom = -(*(s16 **)&D_80193B70)[2];\n } else {\n denom = (*(s16 **)&D_80193B70)[2];\n d = (*(s16 **)&D_80193B64)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80193B70;\n u16 *ac = *(u16 **)&D_80193B64;\n b4 = D_80193B6C;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80193B68;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80193B6C[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus6)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80193B6C[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung B tus6)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80193B64)[2];\n d = dx;\n denom = -(*(s16 **)&D_80193B70)[2];\n } else {\n denom = (*(s16 **)&D_80193B70)[2];\n d = (*(s16 **)&D_80193B64)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80193B70;\n u16 *ac = *(u16 **)&D_80193B64;\n b4 = D_80193B6C;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80193B68;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80193B6C[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80193B6C[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:43", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_020/ov_SC06_020_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.08, "objects": ["build/src/ov_SC06_020/ov_SC06_020_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus6)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_801855EC)[2];\n d = dx;\n denom = -(*(s16 **)&D_801855F8)[2];\n } else {\n denom = (*(s16 **)&D_801855F8)[2];\n d = (*(s16 **)&D_801855EC)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801855F8;\n u16 *ac = *(u16 **)&D_801855EC;\n b4 = D_801855F4;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801855F0;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801855F4[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus6)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_801855F4[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung B tus6)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_801855EC)[2];\n d = dx;\n denom = -(*(s16 **)&D_801855F8)[2];\n } else {\n denom = (*(s16 **)&D_801855F8)[2];\n d = (*(s16 **)&D_801855EC)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801855F8;\n u16 *ac = *(u16 **)&D_801855EC;\n b4 = D_801855F4;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801855F0;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801855F4[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_801855F4[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:43", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_022/ov_SC06_022_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.084, "objects": ["build/src/ov_SC06_022/ov_SC06_022_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus6)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8018D8A8)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018D8B4)[2];\n } else {\n denom = (*(s16 **)&D_8018D8B4)[2];\n d = (*(s16 **)&D_8018D8A8)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018D8B4;\n u16 *ac = *(u16 **)&D_8018D8A8;\n b4 = D_8018D8B0;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018D8AC;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018D8B0[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus6)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8018D8B0[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung B tus6)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8018D8A8)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018D8B4)[2];\n } else {\n denom = (*(s16 **)&D_8018D8B4)[2];\n d = (*(s16 **)&D_8018D8A8)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018D8B4;\n u16 *ac = *(u16 **)&D_8018D8A8;\n b4 = D_8018D8B0;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018D8AC;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018D8B0[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8018D8B0[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:43", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_030/ov_SC06_030_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.09, "objects": ["build/src/ov_SC06_030/ov_SC06_030_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus6)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_801823E8)[2];\n d = dx;\n denom = -(*(s16 **)&D_801823F4)[2];\n } else {\n denom = (*(s16 **)&D_801823F4)[2];\n d = (*(s16 **)&D_801823E8)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801823F4;\n u16 *ac = *(u16 **)&D_801823E8;\n b4 = D_801823F0;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801823EC;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801823F0[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus6)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_801823F0[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung B tus6)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_801823E8)[2];\n d = dx;\n denom = -(*(s16 **)&D_801823F4)[2];\n } else {\n denom = (*(s16 **)&D_801823F4)[2];\n d = (*(s16 **)&D_801823E8)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801823F4;\n u16 *ac = *(u16 **)&D_801823E8;\n b4 = D_801823F0;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801823EC;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801823F0[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_801823F0[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:44", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_027/ov_SC06_027_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.089, "objects": ["build/src/ov_SC06_027/ov_SC06_027_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus6)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8017E564)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017E570)[2];\n } else {\n denom = (*(s16 **)&D_8017E570)[2];\n d = (*(s16 **)&D_8017E564)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017E570;\n u16 *ac = *(u16 **)&D_8017E564;\n b4 = D_8017E56C;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017E568;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017E56C[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus6)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8017E56C[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung B tus6)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8017E564)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017E570)[2];\n } else {\n denom = (*(s16 **)&D_8017E570)[2];\n d = (*(s16 **)&D_8017E564)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017E570;\n u16 *ac = *(u16 **)&D_8017E564;\n b4 = D_8017E56C;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017E568;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017E56C[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8017E56C[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:44", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_024/ov_SC06_024_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.08, "objects": ["build/src/ov_SC06_024/ov_SC06_024_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus6)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8018FD80)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018FD8C)[2];\n } else {\n denom = (*(s16 **)&D_8018FD8C)[2];\n d = (*(s16 **)&D_8018FD80)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018FD8C;\n u16 *ac = *(u16 **)&D_8018FD80;\n b4 = D_8018FD88;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018FD84;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018FD88[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus6)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8018FD88[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung B tus6)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8018FD80)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018FD8C)[2];\n } else {\n denom = (*(s16 **)&D_8018FD8C)[2];\n d = (*(s16 **)&D_8018FD80)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018FD8C;\n u16 *ac = *(u16 **)&D_8018FD80;\n b4 = D_8018FD88;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018FD84;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018FD88[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8018FD88[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:44", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_025/ov_SC06_025_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.082, "objects": ["build/src/ov_SC06_025/ov_SC06_025_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus6)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80185224)[2];\n d = dx;\n denom = -(*(s16 **)&D_80185230)[2];\n } else {\n denom = (*(s16 **)&D_80185230)[2];\n d = (*(s16 **)&D_80185224)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80185230;\n u16 *ac = *(u16 **)&D_80185224;\n b4 = D_8018522C;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80185228;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018522C[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus6)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8018522C[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung B tus6)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80185224)[2];\n d = dx;\n denom = -(*(s16 **)&D_80185230)[2];\n } else {\n denom = (*(s16 **)&D_80185230)[2];\n d = (*(s16 **)&D_80185224)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80185230;\n u16 *ac = *(u16 **)&D_80185224;\n b4 = D_8018522C;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80185228;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018522C[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8018522C[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:44", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_029/ov_SC06_029_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.097, "objects": ["build/src/ov_SC06_029/ov_SC06_029_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus6)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8018CAF8)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018CB04)[2];\n } else {\n denom = (*(s16 **)&D_8018CB04)[2];\n d = (*(s16 **)&D_8018CAF8)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018CB04;\n u16 *ac = *(u16 **)&D_8018CAF8;\n b4 = D_8018CB00;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018CAFC;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018CB00[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus6)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8018CB00[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung B tus6)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8018CAF8)[2];\n d = dx;\n denom = -(*(s16 **)&D_8018CB04)[2];\n } else {\n denom = (*(s16 **)&D_8018CB04)[2];\n d = (*(s16 **)&D_8018CAF8)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8018CB04;\n u16 *ac = *(u16 **)&D_8018CAF8;\n b4 = D_8018CB00;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8018CAFC;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8018CB00[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8018CB00[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:44", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_032/ov_SC06_032_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.104, "objects": ["build/src/ov_SC06_032/ov_SC06_032_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus6)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_801938B4)[2];\n d = dx;\n denom = -(*(s16 **)&D_801938C0)[2];\n } else {\n denom = (*(s16 **)&D_801938C0)[2];\n d = (*(s16 **)&D_801938B4)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801938C0;\n u16 *ac = *(u16 **)&D_801938B4;\n b4 = D_801938BC;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801938B8;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801938BC[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus6)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_801938BC[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung B tus6)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_801938B4)[2];\n d = dx;\n denom = -(*(s16 **)&D_801938C0)[2];\n } else {\n denom = (*(s16 **)&D_801938C0)[2];\n d = (*(s16 **)&D_801938B4)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_801938C0;\n u16 *ac = *(u16 **)&D_801938B4;\n b4 = D_801938BC;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_801938B8;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_801938BC[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_801938BC[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:44", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_033/ov_SC06_033_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.081, "objects": ["build/src/ov_SC06_033/ov_SC06_033_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus6)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80191DC4)[2];\n d = dx;\n denom = -(*(s16 **)&D_80191DD0)[2];\n } else {\n denom = (*(s16 **)&D_80191DD0)[2];\n d = (*(s16 **)&D_80191DC4)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80191DD0;\n u16 *ac = *(u16 **)&D_80191DC4;\n b4 = D_80191DCC;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80191DC8;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80191DCC[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus6)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80191DCC[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung B tus6)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80191DC4)[2];\n d = dx;\n denom = -(*(s16 **)&D_80191DD0)[2];\n } else {\n denom = (*(s16 **)&D_80191DD0)[2];\n d = (*(s16 **)&D_80191DC4)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80191DD0;\n u16 *ac = *(u16 **)&D_80191DC4;\n b4 = D_80191DCC;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80191DC8;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80191DCC[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80191DCC[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:44", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC07_001/ov_SC07_001_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.086, "objects": ["build/src/ov_SC07_001/ov_SC07_001_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus6)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80181ABC)[2];\n d = dx;\n denom = -(*(s16 **)&D_80181AC8)[2];\n } else {\n denom = (*(s16 **)&D_80181AC8)[2];\n d = (*(s16 **)&D_80181ABC)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80181AC8;\n u16 *ac = *(u16 **)&D_80181ABC;\n b4 = D_80181AC4;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80181AC0;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80181AC4[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus6)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80181AC4[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung B tus6)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80181ABC)[2];\n d = dx;\n denom = -(*(s16 **)&D_80181AC8)[2];\n } else {\n denom = (*(s16 **)&D_80181AC8)[2];\n d = (*(s16 **)&D_80181ABC)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80181AC8;\n u16 *ac = *(u16 **)&D_80181ABC;\n b4 = D_80181AC4;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80181AC0;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80181AC4[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80181AC4[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:45", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC07_000/ov_SC07_000_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.086, "objects": ["build/src/ov_SC07_000/ov_SC07_000_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus6)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80182C0C)[2];\n d = dx;\n denom = -(*(s16 **)&D_80182C18)[2];\n } else {\n denom = (*(s16 **)&D_80182C18)[2];\n d = (*(s16 **)&D_80182C0C)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80182C18;\n u16 *ac = *(u16 **)&D_80182C0C;\n b4 = D_80182C14;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80182C10;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80182C14[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus6)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80182C14[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung B tus6)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80182C0C)[2];\n d = dx;\n denom = -(*(s16 **)&D_80182C18)[2];\n } else {\n denom = (*(s16 **)&D_80182C18)[2];\n d = (*(s16 **)&D_80182C0C)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80182C18;\n u16 *ac = *(u16 **)&D_80182C0C;\n b4 = D_80182C14;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80182C10;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80182C14[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80182C14[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:45", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC07_002/ov_SC07_002_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.086, "objects": ["build/src/ov_SC07_002/ov_SC07_002_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus6)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_80186D78)[2];\n d = dx;\n denom = -(*(s16 **)&D_80186D84)[2];\n } else {\n denom = (*(s16 **)&D_80186D84)[2];\n d = (*(s16 **)&D_80186D78)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80186D84;\n u16 *ac = *(u16 **)&D_80186D78;\n b4 = D_80186D80;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80186D7C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80186D80[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus6)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_80186D80[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung B tus6)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_80186D78)[2];\n d = dx;\n denom = -(*(s16 **)&D_80186D84)[2];\n } else {\n denom = (*(s16 **)&D_80186D84)[2];\n d = (*(s16 **)&D_80186D78)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_80186D84;\n u16 *ac = *(u16 **)&D_80186D78;\n b4 = D_80186D80;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_80186D7C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_80186D80[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_80186D80[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:45", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC07_008/ov_SC07_008_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.104, "objects": ["build/src/ov_SC07_008/ov_SC07_008_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus6)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8017D890)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017D89C)[2];\n } else {\n denom = (*(s16 **)&D_8017D89C)[2];\n d = (*(s16 **)&D_8017D890)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017D89C;\n u16 *ac = *(u16 **)&D_8017D890;\n b4 = D_8017D898;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017D894;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017D898[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus6)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8017D898[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung B tus6)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8017D890)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017D89C)[2];\n } else {\n denom = (*(s16 **)&D_8017D89C)[2];\n d = (*(s16 **)&D_8017D890)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017D89C;\n u16 *ac = *(u16 **)&D_8017D890;\n b4 = D_8017D898;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017D894;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017D898[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8017D898[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:45", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC07_009/ov_SC07_009_jr_80135D20.c", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": false, "includers": 0, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.088, "objects": ["build/src/ov_SC07_009/ov_SC07_009_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus6)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8017E334)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017E340)[2];\n } else {\n denom = (*(s16 **)&D_8017E340)[2];\n d = (*(s16 **)&D_8017E334)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017E340;\n u16 *ac = *(u16 **)&D_8017E334;\n b4 = D_8017E33C;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017E338;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017E33C[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus6)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8017E33C[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung B tus6)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8017E334)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017E340)[2];\n } else {\n denom = (*(s16 **)&D_8017E340)[2];\n d = (*(s16 **)&D_8017E334)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017E340;\n u16 *ac = *(u16 **)&D_8017E334;\n b4 = D_8017E33C;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017E338;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017E33C[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8017E33C[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:45", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/shared/ov/func_80136334__ecfcc6f1.h", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": true, "includers": 3, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 3, "seconds": 0.264, "objects": ["build/src/ov_SC03_126/ov_SC03_126_jr_80135D20.o", "build/src/ov_SC04_021/ov_SC04_021_jr_80135D20.o", "build/src/ov_SC05_019/ov_SC05_019_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A headers1)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A headers1)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8017F808)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017F814)[2];\n } else {\n denom = (*(s16 **)&D_8017F814)[2];\n d = (*(s16 **)&D_8017F808)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017F814;\n u16 *ac = *(u16 **)&D_8017F808;\n b4 = D_8017F810;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017F80C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017F810[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A headers1)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8017F810[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A headers1)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8017F808)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017F814)[2];\n } else {\n denom = (*(s16 **)&D_8017F814)[2];\n d = (*(s16 **)&D_8017F808)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017F814;\n u16 *ac = *(u16 **)&D_8017F808;\n b4 = D_8017F810;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017F80C;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017F810[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8017F810[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:45", "label": "a5p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/shared/ov/func_80136334__6e7f4730.h", "fn": "func_80136334", "addr": 2148754228, "aliases": null, "header": true, "includers": 2, "nhash_before": "730f8427c055ed07535dc8615efe3938b6fedeaa", "nhash_after": "8a76c0f18531d92c7cbe20ac4b5e92b8a1444a6b", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80135D20.c:func_80136334", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.169, "objects": ["build/src/ov_SC04_008/ov_SC04_008_jr_80135D20.o", "build/src/ov_SC05_009/ov_SC05_009_jr_80135D20.o"], "before_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC;\n extern s16 D_80126722;\n extern s16 D_80126724;\n s32 a1v;\n register s32 a2v __asm__(\"$12\"); // !FAKE: pin $12 \u2014 NEEDED DIFFERS (P36 rung A headers2)\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n __asm__(\"\" : \"=r\"(a1v) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A headers2)\n a2v = arg2;\n\n if (!(arg1 & 1)) {\n dx = (s16) arg2 - (*(s16 **)&D_8017F054)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017F060)[2];\n } else {\n denom = (*(s16 **)&D_8017F060)[2];\n d = (*(s16 **)&D_8017F054)[2] - (s16) arg2;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017F060;\n u16 *ac = *(u16 **)&D_8017F054;\n b4 = D_8017F05C;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017F058;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017F05C[2] = a2v + 2;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung A headers2)\n D_801152AC = 0xFFF;\n } else {\n D_801152AC = -0xFFF;\n D_8017F05C[2] = a2v - 2;\n }\n __asm__ __volatile__(\"\" :: \"r\"(a1v), \"r\"(a2v)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung A headers2)\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n", "after_text": "s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {\n extern u8 D_801152A8[];\n extern s16 D_801152AA;\n extern s16 D_801152AC[];\n extern s16 D_80126722;\n extern s16 D_80126724;\n u16 a1v;\n s16 a2v;\n s32 n;\n s16 *b4;\n s32 d;\n s32 dx;\n s32 denom;\n s32 result;\n s32 frame_pad[2];\n (void)&frame_pad;\n a1v = arg1;\n a2v = arg2;\n\n if (!(a1v & 1)) {\n dx = a2v - (*(s16 **)&D_8017F054)[2];\n d = dx;\n denom = -(*(s16 **)&D_8017F060)[2];\n } else {\n denom = (*(s16 **)&D_8017F060)[2];\n d = (*(s16 **)&D_8017F054)[2] - a2v;\n dx = -d;\n }\n n = -d;\n {\n s16 *b8 = *(s16 **)&D_8017F060;\n u16 *ac = *(u16 **)&D_8017F054;\n b4 = D_8017F05C;\n b4[0] = ac[0] + n * b8[0] / denom;\n b4[1] = ac[1] + n * b8[1] / denom;\n b4[2] = ac[2] + dx;\n }\n\n if (b4[0] < M2C_FIELD(arg0, s16 *, 4)) return 0;\n if (M2C_FIELD(arg0, s16 *, 6) < b4[0]) return 0;\n if (b4[1] < M2C_FIELD(arg0, s16 *, 8)) return 0;\n if (M2C_FIELD(arg0, s16 *, 0xA) < b4[1]) return 0;\n if (a1v & 0x8000) {\n u16 *b0 = *(u16 **)&D_8017F058;\n b4[0] = b0[0];\n b4[1] = b0[1];\n }\n D_801152AA = 0;\n (*(s16 *)D_801152A8) = 0;\n if (a1v & 1) {\n D_8017F05C[2] = a2v + 2;\n D_801152AC[0] = 0xFFF;\n } else {\n D_801152AC[0] = -0xFFF;\n D_8017F05C[2] = a2v - 2;\n }\n (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1;\n D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1;\n result = 1;\n D_80126724 = (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1;\n return result;\n}\n"} +{"ts": "2026-09-10 10:40:53", "label": "a9", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "T7 agent a9", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.185, "objects": ["build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80193590;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B t3_tus1)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B t3_tus1)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80193590)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80193590;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80193590)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:40:54", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_037/ov_SC02_037_jr_8016AE5C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.21, "objects": ["build/src/ov_SC02_037/ov_SC02_037_jr_8016AE5C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80186D70;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80186D70)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80186D70;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80186D70)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:40:55", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_MAIN_012/ov_MAIN_012_jr_8016AE5C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.198, "objects": ["build/src/ov_MAIN_012/ov_MAIN_012_jr_8016AE5C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801814E4;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801814E4)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801814E4;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801814E4)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:40:55", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_004/ov_SC01_004_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.219, "objects": ["build/src/ov_SC01_004/ov_SC01_004_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80182380;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80182380)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80182380;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80182380)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:40:55", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_004/ov_SC02_004_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.194, "objects": ["build/src/ov_SC02_004/ov_SC02_004_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80180E40;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80180E40)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80180E40;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80180E40)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:40:56", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_001/ov_SC01_001_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.194, "objects": ["build/src/ov_SC01_001/ov_SC01_001_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801869BC;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801869BC)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801869BC;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801869BC)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:40:56", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_080/ov_SC01_080_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.204, "objects": ["build/src/ov_SC01_080/ov_SC01_080_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801866BC;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801866BC)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801866BC;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801866BC)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:40:56", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_084/ov_SC01_084_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.214, "objects": ["build/src/ov_SC01_084/ov_SC01_084_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801899B0;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801899B0)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801899B0;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801899B0)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:40:57", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_008/ov_SC01_008_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.207, "objects": ["build/src/ov_SC01_008/ov_SC01_008_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801828F4;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801828F4)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801828F4;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801828F4)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:40:57", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_074/ov_SC01_074_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.218, "objects": ["build/src/ov_SC01_074/ov_SC01_074_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018175C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018175C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018175C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018175C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:40:57", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_000/ov_SC01_000_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.19, "objects": ["build/src/ov_SC01_000/ov_SC01_000_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80181D6C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80181D6C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80181D6C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80181D6C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:40:58", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_107/ov_SC03_107_jr_8016AE5C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.209, "objects": ["build/src/ov_SC03_107/ov_SC03_107_jr_8016AE5C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018560C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018560C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018560C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018560C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:40:58", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_009/ov_SC01_009_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.199, "objects": ["build/src/ov_SC01_009/ov_SC01_009_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80185ADC;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80185ADC)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80185ADC;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80185ADC)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:40:59", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_005/ov_SC02_005_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.197, "objects": ["build/src/ov_SC02_005/ov_SC02_005_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80193A44;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80193A44)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80193A44;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80193A44)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:40:59", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_011/ov_SC02_011_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.2, "objects": ["build/src/ov_SC02_011/ov_SC02_011_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80193E94;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80193E94)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80193E94;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80193E94)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:40:59", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_000/ov_SC02_000_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.413, "objects": ["build/src/ov_SC02_000/ov_SC02_000_jr_8016AB6C.o", "build/src/ov_SC02_003/ov_SC02_003_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018DD60;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018DD60)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018DD60;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018DD60)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:00", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_016/ov_SC02_016_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.216, "objects": ["build/src/ov_SC02_016/ov_SC02_016_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801875E0;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801875E0)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801875E0;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801875E0)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:00", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_005/ov_SC01_005_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.414, "objects": ["build/src/ov_SC01_005/ov_SC01_005_jr_8016AB6C.o", "build/src/ov_SC01_006/ov_SC01_006_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80185514;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80185514)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80185514;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80185514)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:01", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_028/ov_SC02_028_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.193, "objects": ["build/src/ov_SC02_028/ov_SC02_028_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018E5A8;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018E5A8)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018E5A8;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018E5A8)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:01", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_026/ov_SC02_026_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.21, "objects": ["build/src/ov_SC02_026/ov_SC02_026_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80189280;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80189280)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80189280;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80189280)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:01", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_027/ov_SC02_027_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.203, "objects": ["build/src/ov_SC02_027/ov_SC02_027_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018E3A4;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018E3A4)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018E3A4;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018E3A4)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:02", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_015/ov_SC02_015_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.187, "objects": ["build/src/ov_SC02_015/ov_SC02_015_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801813A8;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801813A8)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801813A8;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801813A8)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:02", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_031/ov_SC02_031_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.237, "objects": ["build/src/ov_SC02_031/ov_SC02_031_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80187DD4;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80187DD4)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80187DD4;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80187DD4)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:03", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_021/ov_SC02_021_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.264, "objects": ["build/src/ov_SC02_021/ov_SC02_021_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80182C2C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80182C2C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80182C2C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80182C2C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:03", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_017/ov_SC02_017_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.283, "objects": ["build/src/ov_SC02_017/ov_SC02_017_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018D638;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018D638)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018D638;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018D638)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:04", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_035/ov_SC02_035_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.267, "objects": ["build/src/ov_SC02_035/ov_SC02_035_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80187634;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80187634)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80187634;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80187634)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:04", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_041/ov_SC02_041_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.265, "objects": ["build/src/ov_SC02_041/ov_SC02_041_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80187F30;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80187F30)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80187F30;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80187F30)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:04", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_039/ov_SC02_039_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.274, "objects": ["build/src/ov_SC02_039/ov_SC02_039_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80182260;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80182260)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80182260;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80182260)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:05", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_006/ov_SC03_006_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.273, "objects": ["build/src/ov_SC03_006/ov_SC03_006_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018F744;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018F744)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018F744;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018F744)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:05", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_007/ov_SC03_007_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.272, "objects": ["build/src/ov_SC03_007/ov_SC03_007_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018A53C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018A53C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018A53C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018A53C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:06", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_003/ov_SC03_003_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.279, "objects": ["build/src/ov_SC03_003/ov_SC03_003_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80182428;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80182428)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80182428;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80182428)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:06", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_012/ov_SC03_012_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.281, "objects": ["build/src/ov_SC03_012/ov_SC03_012_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801812AC;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801812AC)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801812AC;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801812AC)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:07", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_010/ov_SC03_010_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.254, "objects": ["build/src/ov_SC03_010/ov_SC03_010_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018305C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018305C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018305C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018305C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:07", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_002/ov_SC03_002_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.252, "objects": ["build/src/ov_SC03_002/ov_SC03_002_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80188660;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80188660)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80188660;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80188660)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:08", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_001/ov_SC03_001_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.255, "objects": ["build/src/ov_SC03_001/ov_SC03_001_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80190670;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80190670)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80190670;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80190670)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:08", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_013/ov_SC03_013_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.267, "objects": ["build/src/ov_SC03_013/ov_SC03_013_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80184094;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80184094)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80184094;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80184094)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:09", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_011/ov_SC03_011_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.267, "objects": ["build/src/ov_SC03_011/ov_SC03_011_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801843CC;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801843CC)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801843CC;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801843CC)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:09", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_023/ov_SC03_023_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.264, "objects": ["build/src/ov_SC03_023/ov_SC03_023_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018204C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018204C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018204C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018204C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:10", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_024/ov_SC03_024_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.256, "objects": ["build/src/ov_SC03_024/ov_SC03_024_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018A070;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018A070)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018A070;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018A070)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:10", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_028/ov_SC03_028_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.268, "objects": ["build/src/ov_SC03_028/ov_SC03_028_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018EB3C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018EB3C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018EB3C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018EB3C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:11", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_029/ov_SC03_029_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.275, "objects": ["build/src/ov_SC03_029/ov_SC03_029_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018A974;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018A974)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018A974;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018A974)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:11", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_090/ov_SC03_090_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.264, "objects": ["build/src/ov_SC03_090/ov_SC03_090_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018EBEC;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018EBEC)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018EBEC;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018EBEC)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:11", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_091/ov_SC03_091_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.272, "objects": ["build/src/ov_SC03_091/ov_SC03_091_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018FA94;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018FA94)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018FA94;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018FA94)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:12", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_089/ov_SC03_089_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.27, "objects": ["build/src/ov_SC03_089/ov_SC03_089_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018C7C8;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018C7C8)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018C7C8;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018C7C8)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:12", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_031/ov_SC03_031_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.275, "objects": ["build/src/ov_SC03_031/ov_SC03_031_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801854CC;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801854CC)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801854CC;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801854CC)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:13", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_092/ov_SC03_092_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.283, "objects": ["build/src/ov_SC03_092/ov_SC03_092_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80187E64;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80187E64)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80187E64;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80187E64)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:13", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_093/ov_SC03_093_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.273, "objects": ["build/src/ov_SC03_093/ov_SC03_093_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018903C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018903C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018903C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018903C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:14", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_030/ov_SC03_030_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.275, "objects": ["build/src/ov_SC03_030/ov_SC03_030_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80184FB0;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80184FB0)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80184FB0;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80184FB0)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:15", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.511, "objects": ["build/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.o", "build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018E6D0;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018E6D0)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018E6D0;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018E6D0)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:15", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_094/ov_SC03_094_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.291, "objects": ["build/src/ov_SC03_094/ov_SC03_094_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018AA38;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018AA38)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018AA38;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018AA38)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:16", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_096/ov_SC03_096_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.268, "objects": ["build/src/ov_SC03_096/ov_SC03_096_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80183C18;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80183C18)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80183C18;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80183C18)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:16", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_095/ov_SC03_095_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.268, "objects": ["build/src/ov_SC03_095/ov_SC03_095_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80184098;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80184098)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80184098;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80184098)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:17", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_097/ov_SC03_097_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.269, "objects": ["build/src/ov_SC03_097/ov_SC03_097_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80188FF8;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80188FF8)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80188FF8;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80188FF8)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:17", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_098/ov_SC03_098_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.275, "objects": ["build/src/ov_SC03_098/ov_SC03_098_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80188484;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80188484)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80188484;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80188484)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:18", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_103/ov_SC03_103_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.285, "objects": ["build/src/ov_SC03_103/ov_SC03_103_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80187294;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80187294)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80187294;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80187294)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:18", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_100/ov_SC03_100_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.289, "objects": ["build/src/ov_SC03_100/ov_SC03_100_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80187A50;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80187A50)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80187A50;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80187A50)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:18", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_101/ov_SC03_101_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.269, "objects": ["build/src/ov_SC03_101/ov_SC03_101_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80186A2C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80186A2C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80186A2C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80186A2C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:19", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_102/ov_SC03_102_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.287, "objects": ["build/src/ov_SC03_102/ov_SC03_102_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801892E4;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801892E4)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801892E4;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801892E4)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:19", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_099/ov_SC03_099_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.28, "objects": ["build/src/ov_SC03_099/ov_SC03_099_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80186584;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80186584)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80186584;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80186584)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:20", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_104/ov_SC03_104_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.281, "objects": ["build/src/ov_SC03_104/ov_SC03_104_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018DE24;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018DE24)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018DE24;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018DE24)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:20", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_108/ov_SC03_108_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.282, "objects": ["build/src/ov_SC03_108/ov_SC03_108_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80183E04;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80183E04)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80183E04;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80183E04)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:21", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_105/ov_SC03_105_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.294, "objects": ["build/src/ov_SC03_105/ov_SC03_105_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018D4AC;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018D4AC)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018D4AC;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018D4AC)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:22", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_109/ov_SC03_109_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.291, "objects": ["build/src/ov_SC03_109/ov_SC03_109_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801814B0;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801814B0)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801814B0;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801814B0)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:22", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_110/ov_SC03_110_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.27, "objects": ["build/src/ov_SC03_110/ov_SC03_110_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80184ED0;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80184ED0)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80184ED0;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80184ED0)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:22", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_111/ov_SC03_111_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.274, "objects": ["build/src/ov_SC03_111/ov_SC03_111_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80187A84;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80187A84)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80187A84;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80187A84)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:23", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_112/ov_SC03_112_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.267, "objects": ["build/src/ov_SC03_112/ov_SC03_112_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018888C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018888C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018888C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018888C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:23", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_114/ov_SC03_114_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.278, "objects": ["build/src/ov_SC03_114/ov_SC03_114_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80181BA4;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80181BA4)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80181BA4;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80181BA4)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:24", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_113/ov_SC03_113_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.276, "objects": ["build/src/ov_SC03_113/ov_SC03_113_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80185F3C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80185F3C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80185F3C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80185F3C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:24", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_116/ov_SC03_116_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.282, "objects": ["build/src/ov_SC03_116/ov_SC03_116_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80185A14;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80185A14)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80185A14;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80185A14)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:25", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_117/ov_SC03_117_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.28, "objects": ["build/src/ov_SC03_117/ov_SC03_117_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80187A20;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80187A20)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80187A20;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80187A20)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:25", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_115/ov_SC03_115_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.275, "objects": ["build/src/ov_SC03_115/ov_SC03_115_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80183610;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80183610)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80183610;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80183610)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:26", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_121/ov_SC03_121_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.287, "objects": ["build/src/ov_SC03_121/ov_SC03_121_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801852E8;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801852E8)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801852E8;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801852E8)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:26", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_124/ov_SC03_124_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.278, "objects": ["build/src/ov_SC03_124/ov_SC03_124_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018DD14;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018DD14)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018DD14;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018DD14)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:27", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_000/ov_SC04_000_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.271, "objects": ["build/src/ov_SC04_000/ov_SC04_000_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801863E8;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801863E8)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801863E8;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801863E8)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:27", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_125/ov_SC03_125_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.279, "objects": ["build/src/ov_SC03_125/ov_SC03_125_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80186EE4;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80186EE4)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80186EE4;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80186EE4)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:28", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_118/ov_SC03_118_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.545, "objects": ["build/src/ov_SC03_118/ov_SC03_118_jr_8016AB6C.o", "build/src/ov_SC03_119/ov_SC03_119_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018CACC;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018CACC)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018CACC;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018CACC)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:29", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_004/ov_SC04_004_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.268, "objects": ["build/src/ov_SC04_004/ov_SC04_004_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80187824;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80187824)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80187824;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80187824)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:29", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_003/ov_SC04_003_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.274, "objects": ["build/src/ov_SC04_003/ov_SC04_003_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801852F0;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801852F0)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801852F0;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801852F0)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:30", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_002/ov_SC04_002_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.275, "objects": ["build/src/ov_SC04_002/ov_SC04_002_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018B554;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018B554)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018B554;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018B554)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:30", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_005/ov_SC04_005_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.29, "objects": ["build/src/ov_SC04_005/ov_SC04_005_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018AC58;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018AC58)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018AC58;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018AC58)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:31", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_007/ov_SC04_007_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.282, "objects": ["build/src/ov_SC04_007/ov_SC04_007_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80188CF0;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80188CF0)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80188CF0;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80188CF0)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:31", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_006/ov_SC04_006_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.277, "objects": ["build/src/ov_SC04_006/ov_SC04_006_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80182D38;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80182D38)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80182D38;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80182D38)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:32", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_009/ov_SC04_009_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.279, "objects": ["build/src/ov_SC04_009/ov_SC04_009_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80181C54;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80181C54)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80181C54;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80181C54)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:32", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_010/ov_SC04_010_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.281, "objects": ["build/src/ov_SC04_010/ov_SC04_010_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80181300;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80181300)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80181300;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80181300)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:32", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_012/ov_SC04_012_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.275, "objects": ["build/src/ov_SC04_012/ov_SC04_012_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80181764;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80181764)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80181764;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80181764)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:33", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_015/ov_SC04_015_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.286, "objects": ["build/src/ov_SC04_015/ov_SC04_015_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018769C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018769C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018769C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018769C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:33", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_020/ov_SC04_020_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.274, "objects": ["build/src/ov_SC04_020/ov_SC04_020_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801864B0;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801864B0)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801864B0;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801864B0)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:34", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_001/ov_SC05_001_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.286, "objects": ["build/src/ov_SC05_001/ov_SC05_001_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80188BCC;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80188BCC)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80188BCC;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80188BCC)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:34", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_016/ov_SC04_016_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.266, "objects": ["build/src/ov_SC04_016/ov_SC04_016_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80183160;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80183160)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80183160;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80183160)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:35", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_000/ov_SC05_000_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.28, "objects": ["build/src/ov_SC05_000/ov_SC05_000_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801813F0;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801813F0)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801813F0;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801813F0)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:35", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_002/ov_SC05_002_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.274, "objects": ["build/src/ov_SC05_002/ov_SC05_002_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018338C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018338C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018338C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018338C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:36", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_003/ov_SC05_003_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.28, "objects": ["build/src/ov_SC05_003/ov_SC05_003_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801856C4;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801856C4)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801856C4;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801856C4)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:36", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_005/ov_SC05_005_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.278, "objects": ["build/src/ov_SC05_005/ov_SC05_005_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801855A4;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801855A4)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801855A4;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801855A4)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:37", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_004/ov_SC05_004_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.279, "objects": ["build/src/ov_SC05_004/ov_SC05_004_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801847D0;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801847D0)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801847D0;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801847D0)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:37", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_006/ov_SC05_006_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.27, "objects": ["build/src/ov_SC05_006/ov_SC05_006_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801825C4;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801825C4)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801825C4;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801825C4)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:38", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_007/ov_SC05_007_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.269, "objects": ["build/src/ov_SC05_007/ov_SC05_007_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80183BC0;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80183BC0)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80183BC0;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80183BC0)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:39", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_018/ov_SC04_018_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.533, "objects": ["build/src/ov_SC04_018/ov_SC04_018_jr_8016AB6C.o", "build/src/ov_SC04_019/ov_SC04_019_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80190378;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80190378)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80190378;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80190378)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:39", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_008/ov_SC05_008_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.259, "objects": ["build/src/ov_SC05_008/ov_SC05_008_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80185B18;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus6)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80185B18)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80185B18;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80185B18)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:39", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_008/ov_SC06_008_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.284, "objects": ["build/src/ov_SC06_008/ov_SC06_008_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80188978;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80188978)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80188978;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80188978)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:40", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_000/ov_SC06_000_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.245, "objects": ["build/src/ov_SC06_000/ov_SC06_000_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018B3EC;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018B3EC)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018B3EC;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018B3EC)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:40", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_017/ov_SC05_017_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.231, "objects": ["build/src/ov_SC05_017/ov_SC05_017_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8019033C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8019033C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8019033C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8019033C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:41", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_011/ov_SC05_011_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.216, "objects": ["build/src/ov_SC05_011/ov_SC05_011_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80180E7C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80180E7C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80180E7C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80180E7C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:41", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_014/ov_SC06_014_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.227, "objects": ["build/src/ov_SC06_014/ov_SC06_014_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80183094;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80183094)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80183094;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80183094)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:41", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_015/ov_SC06_015_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.218, "objects": ["build/src/ov_SC06_015/ov_SC06_015_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80181BEC;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80181BEC)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80181BEC;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80181BEC)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:42", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_010/ov_SC06_010_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.217, "objects": ["build/src/ov_SC06_010/ov_SC06_010_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80189B54;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80189B54)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80189B54;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80189B54)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:42", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_010/ov_SC05_010_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.216, "objects": ["build/src/ov_SC05_010/ov_SC05_010_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018BB04;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018BB04)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018BB04;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018BB04)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:43", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_006/ov_SC06_006_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.215, "objects": ["build/src/ov_SC06_006/ov_SC06_006_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80184F10;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80184F10)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80184F10;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80184F10)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:43", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_018/ov_SC05_018_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.225, "objects": ["build/src/ov_SC05_018/ov_SC05_018_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80189A98;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80189A98)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80189A98;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80189A98)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:43", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_013/ov_SC06_013_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.235, "objects": ["build/src/ov_SC06_013/ov_SC06_013_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80181D30;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80181D30)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80181D30;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80181D30)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:44", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_011/ov_SC06_011_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.221, "objects": ["build/src/ov_SC06_011/ov_SC06_011_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801835B4;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801835B4)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801835B4;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801835B4)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:44", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_016/ov_SC06_016_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.211, "objects": ["build/src/ov_SC06_016/ov_SC06_016_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80187FFC;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80187FFC)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80187FFC;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80187FFC)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:44", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_020/ov_SC06_020_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.214, "objects": ["build/src/ov_SC06_020/ov_SC06_020_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801881C0;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801881C0)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801881C0;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801881C0)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:45", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_025/ov_SC06_025_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.21, "objects": ["build/src/ov_SC06_025/ov_SC06_025_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80187DF8;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80187DF8)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80187DF8;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80187DF8)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:45", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_027/ov_SC06_027_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.217, "objects": ["build/src/ov_SC06_027/ov_SC06_027_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80181138;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80181138)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80181138;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80181138)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:46", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_024/ov_SC06_024_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.208, "objects": ["build/src/ov_SC06_024/ov_SC06_024_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80192954;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80192954)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80192954;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80192954)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:46", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_022/ov_SC06_022_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.21, "objects": ["build/src/ov_SC06_022/ov_SC06_022_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8019047C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8019047C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8019047C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8019047C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:46", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_029/ov_SC06_029_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.236, "objects": ["build/src/ov_SC06_029/ov_SC06_029_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018F6CC;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018F6CC)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018F6CC;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018F6CC)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:47", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_018/ov_SC06_018_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.205, "objects": ["build/src/ov_SC06_018/ov_SC06_018_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80196738;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80196738)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80196738;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80196738)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:47", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_032/ov_SC06_032_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.231, "objects": ["build/src/ov_SC06_032/ov_SC06_032_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80196488;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80196488)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80196488;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80196488)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:47", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_033/ov_SC06_033_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.218, "objects": ["build/src/ov_SC06_033/ov_SC06_033_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80194998;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80194998)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80194998;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80194998)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:48", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC07_000/ov_SC07_000_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.21, "objects": ["build/src/ov_SC07_000/ov_SC07_000_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801857E0;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801857E0)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801857E0;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801857E0)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:48", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_030/ov_SC06_030_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.227, "objects": ["build/src/ov_SC06_030/ov_SC06_030_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80184FBC;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80184FBC)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80184FBC;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80184FBC)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:49", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC07_002/ov_SC07_002_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.209, "objects": ["build/src/ov_SC07_002/ov_SC07_002_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018994C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018994C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_8018994C;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_8018994C)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:49", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC07_009/ov_SC07_009_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.213, "objects": ["build/src/ov_SC07_009/ov_SC07_009_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80180F08;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80180F08)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80180F08;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80180F08)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:49", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC07_001/ov_SC07_001_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.231, "objects": ["build/src/ov_SC07_001/ov_SC07_001_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80184690;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80184690)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80184690;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80184690)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:50", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC07_008/ov_SC07_008_jr_8016AB6C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.25, "objects": ["build/src/ov_SC07_008/ov_SC07_008_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80180464;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80180464)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80180464;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80180464)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:50", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC07_010/ov_SC07_010_jr_8016AE5C.c", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": false, "includers": 0, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.196, "objects": ["build/src/ov_SC07_010/ov_SC07_010_jr_8016AE5C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80185124;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80185124)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80185124;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80185124)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:51", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/shared/ov/func_8016B234__c187857f.h", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": true, "includers": 3, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 3, "seconds": 0.653, "objects": ["build/src/ov_SC03_126/ov_SC03_126_jr_8016AB6C.o", "build/src/ov_SC04_021/ov_SC04_021_jr_8016AB6C.o", "build/src/ov_SC05_019/ov_SC05_019_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801823DC;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung A headers2)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung A headers2)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801823DC)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_801823DC;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_801823DC)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:41:51", "label": "a9p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/shared/ov/func_8016B234__1b494b73.h", "fn": "func_8016B234", "addr": 2148971060, "aliases": null, "header": true, "includers": 2, "nhash_before": "a5de8d7cfd78612e163e1cb46d79d71d4afd7ecc", "nhash_after": "a3efbb1f6dada4f05ad25b37afb41ac912d4e9ed", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c:func_8016B234", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.463, "objects": ["build/src/ov_SC04_008/ov_SC04_008_jr_8016AB6C.o", "build/src/ov_SC05_009/ov_SC05_009_jr_8016AB6C.o"], "before_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80181C28;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1;\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n register s32 sy __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung A headers2)\n s16 xtmp;\n register s32 sxy __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung A headers2)\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n sy = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = sy - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n sxy = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n sxy = sy + sxy;\n prim.cy = prim.dy = sxy;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80181C28)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n", "after_text": "void func_8016B234(s32 param_1) {\n\n extern u8 D_800AF648;\n extern u8 D_80181C28;\n short input[3];\n Prim_B234 prim;\n struct { s16 xy[2]; s32 sp1c; s32 flag; } out;\n void *dp;\n u32 uVar1; /* the projected screen Y, then the UV column index */\n s16 iVar2;\n s32 X, Y0, Y1, base, ni;\n s16 xtmp;\n s32 sxy;\n s32 hh;\n\n dp = &D_800AF648;\n func_8004914C(dp);\n func_800491AC(dp);\n input[0] = *(u16 *)(param_1 + 6);\n input[1] = *(u16 *)(param_1 + 0xA);\n input[2] = *(u16 *)(param_1 + 0xE);\n RotTransPers((s32)input, (s32)out.xy, &out.sp1c, &out.flag);\n if ((out.flag & 0xffffefff) == 0) {\n sxy = *(s32 *)out.xy;\n prim.a04 = 0x10;\n X = *(u16 *)(param_1 + 0x2a) + sxy;\n uVar1 = (u16)out.xy[1];\n prim.ax = prim.cx = X;\n prim.bx = prim.dx = X + 8;\n Y0 = uVar1 - *(u16 *)(param_1 + 0x26);\n prim.ay = prim.by = Y0;\n hh = *(u16 *)(param_1 + 0x26);\n prim.v0 = prim.v1 = 0x1d0;\n prim.v2 = prim.v3 = 0x1d8;\n prim.cy = prim.dy = uVar1 + hh;\n prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24);\n prim.code = (&D_80181C28)[*(s32 *)(param_1 + 0x2c)];\n if (*(s16 *)(param_1 + 0x26) < 5) {\n prim.tag = 0;\n } else {\n prim.tag = 0x50000000;\n }\n uVar1 = *(u16 *)(param_1 + 0x30);\n iVar2 = 0;\n if (0 < *(s16 *)(param_1 + 0x28) + 1) {\n do {\n base = ((uVar1 + 1) & 0xf) << 3;\n prim.u0 = prim.u2 = base + 0x620;\n prim.u1 = prim.u3 = base + 0x628;\n func_80016ED4(&prim);\n uVar1 = (s32)(uVar1 << 0x10) >> 0x14;\n iVar2 = iVar2 + 1;\n xtmp = prim.ax;\n prim.cx = prim.ax = xtmp - 8;\n prim.bx = prim.dx = xtmp;\n } while ((s16)iVar2 < *(s16 *)(param_1 + 0x28) + 1);\n }\n }\n}\n"} +{"ts": "2026-09-10 10:42:10", "label": "a25", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_011/ov_SC04_011_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "T7 agent a25", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.33, "objects": ["build/src/ov_SC04_011/ov_SC04_011_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8019207C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B t3_tus1)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B t3_tus1)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8019207C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8019207C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8019207C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8019207C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8019207C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8019207C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8019207C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:10", "label": "a16", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_011/ov_SC04_011_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "T7 agent a16", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.116, "objects": ["build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80191D88[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B t3_tus1)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80191D88[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80191D88[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80191D88[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:42:12", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC07_010/ov_SC07_010_jr_801457A4.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.328, "objects": ["build/src/ov_SC07_010/ov_SC07_010_jr_801457A4.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n /* [T51] scoped in from file scope: a file-scope decl of these symbols constrains every\n LATER function in this TU, which blocks a byte-true decl of a different type.\n Declaration-only move (cookbook \u00a7103); the whole-binary byte-gate is the arbiter. */\n extern u8 D_801202A0[];\n\n extern u8 D_80183C10[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus2)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80183C10, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80183C10, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80183C10, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80183C10[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80183C10, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80183C10, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80183C10, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:12", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_001/ov_SC01_001_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.341, "objects": ["build/src/ov_SC01_001/ov_SC01_001_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801854A8[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801854A8, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801854A8, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801854A8, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801854A8[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801854A8, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801854A8, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801854A8, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:12", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_004/ov_SC01_004_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.342, "objects": ["build/src/ov_SC01_004/ov_SC01_004_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80180E6C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80180E6C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80180E6C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80180E6C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80180E6C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80180E6C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80180E6C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80180E6C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:13", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_000/ov_SC01_000_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.33, "objects": ["build/src/ov_SC01_000/ov_SC01_000_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80180858[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80180858, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80180858, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80180858, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80180858[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80180858, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80180858, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80180858, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:13", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_008/ov_SC01_008_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.406, "objects": ["build/src/ov_SC01_008/ov_SC01_008_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801813E0[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801813E0, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801813E0, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801813E0, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801813E0[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801813E0, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801813E0, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801813E0, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:14", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_009/ov_SC01_009_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.356, "objects": ["build/src/ov_SC01_009/ov_SC01_009_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801845C8[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801845C8, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801845C8, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801845C8, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801845C8[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801845C8, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801845C8, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801845C8, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:14", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_074/ov_SC01_074_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.336, "objects": ["build/src/ov_SC01_074/ov_SC01_074_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80180248[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80180248, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80180248, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80180248, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80180248[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80180248, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80180248, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80180248, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:15", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_080/ov_SC01_080_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.323, "objects": ["build/src/ov_SC01_080/ov_SC01_080_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801851A8[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801851A8, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801851A8, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801851A8, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801851A8[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801851A8, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801851A8, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801851A8, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:15", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_084/ov_SC01_084_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.327, "objects": ["build/src/ov_SC01_084/ov_SC01_084_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018849C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018849C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018849C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018849C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018849C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018849C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018849C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018849C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:15", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_005/ov_SC02_005_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.319, "objects": ["build/src/ov_SC02_005/ov_SC02_005_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80192530[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80192530, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80192530, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80192530, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80192530[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80192530, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80192530, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80192530, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:16", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_004/ov_SC02_004_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.323, "objects": ["build/src/ov_SC02_004/ov_SC02_004_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8017F92C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8017F92C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8017F92C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8017F92C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8017F92C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8017F92C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8017F92C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8017F92C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:16", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_011/ov_SC02_011_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.327, "objects": ["build/src/ov_SC02_011/ov_SC02_011_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80192980[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80192980, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80192980, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80192980, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80192980[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80192980, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80192980, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80192980, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:17", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_015/ov_SC02_015_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.33, "objects": ["build/src/ov_SC02_015/ov_SC02_015_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8017FE94[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8017FE94, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8017FE94, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8017FE94, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8017FE94[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8017FE94, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8017FE94, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8017FE94, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:17", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_016/ov_SC02_016_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.328, "objects": ["build/src/ov_SC02_016/ov_SC02_016_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801860CC[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801860CC, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801860CC, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801860CC, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801860CC[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801860CC, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801860CC, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801860CC, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:18", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_005/ov_SC01_005_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.647, "objects": ["build/src/ov_SC01_005/ov_SC01_005_after.o", "build/src/ov_SC01_006/ov_SC01_006_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80184000[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80184000, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80184000, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80184000, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80184000[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80184000, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80184000, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80184000, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:18", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_026/ov_SC02_026_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.324, "objects": ["build/src/ov_SC02_026/ov_SC02_026_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80187D6C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80187D6C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80187D6C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80187D6C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80187D6C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80187D6C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80187D6C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80187D6C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:19", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_027/ov_SC02_027_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.322, "objects": ["build/src/ov_SC02_027/ov_SC02_027_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018CE90[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018CE90, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018CE90, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018CE90, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018CE90[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018CE90, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018CE90, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018CE90, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:19", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_021/ov_SC02_021_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.324, "objects": ["build/src/ov_SC02_021/ov_SC02_021_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80181718[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80181718, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80181718, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80181718, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80181718[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80181718, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80181718, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80181718, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:19", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_017/ov_SC02_017_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.323, "objects": ["build/src/ov_SC02_017/ov_SC02_017_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018C124[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018C124, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018C124, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018C124, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018C124[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018C124, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018C124, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018C124, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:20", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_028/ov_SC02_028_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.323, "objects": ["build/src/ov_SC02_028/ov_SC02_028_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018D094[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018D094, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018D094, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018D094, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018D094[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018D094, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018D094, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018D094, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:20", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_000/ov_SC02_000_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.672, "objects": ["build/src/ov_SC02_000/ov_SC02_000_after.o", "build/src/ov_SC02_003/ov_SC02_003_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018C84C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018C84C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018C84C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018C84C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018C84C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018C84C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018C84C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018C84C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:21", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_035/ov_SC02_035_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.348, "objects": ["build/src/ov_SC02_035/ov_SC02_035_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80186120[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80186120, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80186120, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80186120, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80186120[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80186120, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80186120, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80186120, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:21", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_031/ov_SC02_031_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.337, "objects": ["build/src/ov_SC02_031/ov_SC02_031_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801868C0[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801868C0, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801868C0, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801868C0, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801868C0[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801868C0, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801868C0, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801868C0, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:22", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_041/ov_SC02_041_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.325, "objects": ["build/src/ov_SC02_041/ov_SC02_041_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80186A1C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80186A1C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80186A1C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80186A1C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80186A1C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80186A1C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80186A1C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80186A1C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:22", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_039/ov_SC02_039_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.34, "objects": ["build/src/ov_SC02_039/ov_SC02_039_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80180D4C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80180D4C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80180D4C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80180D4C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80180D4C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80180D4C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80180D4C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80180D4C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:23", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_001/ov_SC03_001_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.329, "objects": ["build/src/ov_SC03_001/ov_SC03_001_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018F15C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018F15C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018F15C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018F15C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018F15C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018F15C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018F15C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018F15C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:23", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_006/ov_SC03_006_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.324, "objects": ["build/src/ov_SC03_006/ov_SC03_006_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018E230[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018E230, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018E230, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018E230, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018E230[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018E230, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018E230, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018E230, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:23", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_002/ov_SC03_002_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.324, "objects": ["build/src/ov_SC03_002/ov_SC03_002_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018714C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018714C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018714C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018714C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018714C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018714C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018714C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018714C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:24", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_003/ov_SC03_003_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.326, "objects": ["build/src/ov_SC03_003/ov_SC03_003_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80180F14[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80180F14, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80180F14, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80180F14, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80180F14[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80180F14, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80180F14, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80180F14, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:24", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_007/ov_SC03_007_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.323, "objects": ["build/src/ov_SC03_007/ov_SC03_007_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80189028[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80189028, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80189028, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80189028, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80189028[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80189028, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80189028, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80189028, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:25", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_010/ov_SC03_010_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.322, "objects": ["build/src/ov_SC03_010/ov_SC03_010_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80181B48[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80181B48, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80181B48, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80181B48, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80181B48[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80181B48, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80181B48, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80181B48, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:25", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_011/ov_SC03_011_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.318, "objects": ["build/src/ov_SC03_011/ov_SC03_011_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80182EB8[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80182EB8, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80182EB8, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80182EB8, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80182EB8[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80182EB8, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80182EB8, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80182EB8, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:25", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_012/ov_SC03_012_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.322, "objects": ["build/src/ov_SC03_012/ov_SC03_012_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8017FD98[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8017FD98, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8017FD98, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8017FD98, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8017FD98[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8017FD98, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8017FD98, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8017FD98, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:26", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_024/ov_SC03_024_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.323, "objects": ["build/src/ov_SC03_024/ov_SC03_024_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80188B5C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80188B5C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80188B5C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80188B5C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80188B5C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80188B5C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80188B5C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80188B5C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:26", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_023/ov_SC03_023_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.332, "objects": ["build/src/ov_SC03_023/ov_SC03_023_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80180B38[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80180B38, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80180B38, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80180B38, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80180B38[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80180B38, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80180B38, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80180B38, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:27", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_013/ov_SC03_013_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.32, "objects": ["build/src/ov_SC03_013/ov_SC03_013_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80182B80[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80182B80, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80182B80, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80182B80, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80182B80[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80182B80, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80182B80, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80182B80, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:27", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_028/ov_SC03_028_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.33, "objects": ["build/src/ov_SC03_028/ov_SC03_028_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018D628[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018D628, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018D628, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018D628, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018D628[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018D628, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018D628, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018D628, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:27", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_029/ov_SC03_029_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.32, "objects": ["build/src/ov_SC03_029/ov_SC03_029_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80189460[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80189460, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80189460, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80189460, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80189460[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80189460, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80189460, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80189460, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:28", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_031/ov_SC03_031_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.336, "objects": ["build/src/ov_SC03_031/ov_SC03_031_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80183FB8[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80183FB8, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80183FB8, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80183FB8, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80183FB8[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80183FB8, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80183FB8, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80183FB8, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:28", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_089/ov_SC03_089_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.325, "objects": ["build/src/ov_SC03_089/ov_SC03_089_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018B2B4[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018B2B4, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018B2B4, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018B2B4, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018B2B4[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018B2B4, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018B2B4, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018B2B4, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:29", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_030/ov_SC03_030_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.324, "objects": ["build/src/ov_SC03_030/ov_SC03_030_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80183A9C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80183A9C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80183A9C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80183A9C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80183A9C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80183A9C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80183A9C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80183A9C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:29", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_090/ov_SC03_090_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.326, "objects": ["build/src/ov_SC03_090/ov_SC03_090_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018D6D8[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018D6D8, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018D6D8, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018D6D8, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018D6D8[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018D6D8, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018D6D8, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018D6D8, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:29", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_091/ov_SC03_091_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.326, "objects": ["build/src/ov_SC03_091/ov_SC03_091_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018E580[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018E580, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018E580, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018E580, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018E580[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018E580, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018E580, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018E580, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:30", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_092/ov_SC03_092_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.332, "objects": ["build/src/ov_SC03_092/ov_SC03_092_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80186950[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80186950, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80186950, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80186950, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80186950[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80186950, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80186950, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80186950, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:31", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_014/ov_SC03_014_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.658, "objects": ["build/src/ov_SC03_014/ov_SC03_014_after.o", "build/src/ov_SC03_015/ov_SC03_015_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018D1BC[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018D1BC, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018D1BC, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018D1BC, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018D1BC[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018D1BC, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018D1BC, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018D1BC, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:31", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_095/ov_SC03_095_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.33, "objects": ["build/src/ov_SC03_095/ov_SC03_095_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80182B84[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80182B84, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80182B84, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80182B84, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80182B84[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80182B84, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80182B84, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80182B84, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:31", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_093/ov_SC03_093_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.329, "objects": ["build/src/ov_SC03_093/ov_SC03_093_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80187B28[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80187B28, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80187B28, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80187B28, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80187B28[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80187B28, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80187B28, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80187B28, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:32", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_094/ov_SC03_094_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.327, "objects": ["build/src/ov_SC03_094/ov_SC03_094_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80189524[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80189524, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80189524, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80189524, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80189524[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80189524, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80189524, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80189524, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:32", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_096/ov_SC03_096_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.333, "objects": ["build/src/ov_SC03_096/ov_SC03_096_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80182704[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80182704, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80182704, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80182704, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80182704[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80182704, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80182704, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80182704, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:33", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_097/ov_SC03_097_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.337, "objects": ["build/src/ov_SC03_097/ov_SC03_097_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80187AE4[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80187AE4, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80187AE4, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80187AE4, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80187AE4[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80187AE4, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80187AE4, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80187AE4, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:33", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_098/ov_SC03_098_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.331, "objects": ["build/src/ov_SC03_098/ov_SC03_098_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80186F70[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80186F70, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80186F70, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80186F70, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80186F70[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80186F70, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80186F70, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80186F70, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:33", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_099/ov_SC03_099_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.339, "objects": ["build/src/ov_SC03_099/ov_SC03_099_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80185070[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80185070, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80185070, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80185070, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80185070[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80185070, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80185070, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80185070, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:34", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_101/ov_SC03_101_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.326, "objects": ["build/src/ov_SC03_101/ov_SC03_101_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80185518[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80185518, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80185518, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80185518, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80185518[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80185518, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80185518, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80185518, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:34", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_100/ov_SC03_100_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.331, "objects": ["build/src/ov_SC03_100/ov_SC03_100_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018653C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018653C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018653C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018653C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018653C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018653C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018653C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018653C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:35", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_102/ov_SC03_102_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.323, "objects": ["build/src/ov_SC03_102/ov_SC03_102_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80187DD0[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80187DD0, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80187DD0, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80187DD0, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80187DD0[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80187DD0, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80187DD0, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80187DD0, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:35", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_104/ov_SC03_104_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.327, "objects": ["build/src/ov_SC03_104/ov_SC03_104_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018C910[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018C910, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018C910, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018C910, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018C910[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018C910, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018C910, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018C910, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:35", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_103/ov_SC03_103_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.321, "objects": ["build/src/ov_SC03_103/ov_SC03_103_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80185D80[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80185D80, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80185D80, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80185D80, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80185D80[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80185D80, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80185D80, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80185D80, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:36", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_105/ov_SC03_105_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.333, "objects": ["build/src/ov_SC03_105/ov_SC03_105_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018BF98[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018BF98, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018BF98, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018BF98, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018BF98[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018BF98, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018BF98, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018BF98, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:36", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_108/ov_SC03_108_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.33, "objects": ["build/src/ov_SC03_108/ov_SC03_108_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801828F0[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801828F0, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801828F0, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801828F0, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801828F0[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801828F0, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801828F0, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801828F0, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:37", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_109/ov_SC03_109_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.329, "objects": ["build/src/ov_SC03_109/ov_SC03_109_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8017FF9C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8017FF9C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8017FF9C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8017FF9C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8017FF9C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8017FF9C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8017FF9C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8017FF9C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:37", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_111/ov_SC03_111_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.326, "objects": ["build/src/ov_SC03_111/ov_SC03_111_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80186570[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80186570, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80186570, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80186570, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80186570[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80186570, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80186570, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80186570, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:37", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_110/ov_SC03_110_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.324, "objects": ["build/src/ov_SC03_110/ov_SC03_110_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801839BC[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801839BC, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801839BC, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801839BC, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801839BC[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801839BC, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801839BC, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801839BC, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:38", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_112/ov_SC03_112_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.329, "objects": ["build/src/ov_SC03_112/ov_SC03_112_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80187378[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80187378, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80187378, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80187378, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80187378[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80187378, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80187378, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80187378, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:38", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_114/ov_SC03_114_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.337, "objects": ["build/src/ov_SC03_114/ov_SC03_114_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80180690[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80180690, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80180690, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80180690, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80180690[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80180690, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80180690, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80180690, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:39", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_113/ov_SC03_113_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.331, "objects": ["build/src/ov_SC03_113/ov_SC03_113_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80184A28[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80184A28, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80184A28, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80184A28, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80184A28[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80184A28, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80184A28, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80184A28, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:39", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_116/ov_SC03_116_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.325, "objects": ["build/src/ov_SC03_116/ov_SC03_116_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80184500[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80184500, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80184500, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80184500, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80184500[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80184500, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80184500, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80184500, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:40", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_117/ov_SC03_117_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.334, "objects": ["build/src/ov_SC03_117/ov_SC03_117_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018650C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018650C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018650C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018650C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018650C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018650C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018650C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018650C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:40", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_115/ov_SC03_115_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.325, "objects": ["build/src/ov_SC03_115/ov_SC03_115_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801820FC[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801820FC, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801820FC, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801820FC, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801820FC[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801820FC, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801820FC, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801820FC, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:40", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_121/ov_SC03_121_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.329, "objects": ["build/src/ov_SC03_121/ov_SC03_121_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80183DD4[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80183DD4, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80183DD4, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80183DD4, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80183DD4[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80183DD4, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80183DD4, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80183DD4, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:41", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_124/ov_SC03_124_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.331, "objects": ["build/src/ov_SC03_124/ov_SC03_124_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018C800[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018C800, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018C800, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018C800, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018C800[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018C800, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018C800, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018C800, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:41", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_125/ov_SC03_125_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.322, "objects": ["build/src/ov_SC03_125/ov_SC03_125_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801859D0[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801859D0, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801859D0, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801859D0, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801859D0[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801859D0, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801859D0, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801859D0, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:42", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_002/ov_SC04_002_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.337, "objects": ["build/src/ov_SC04_002/ov_SC04_002_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018A040[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018A040, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018A040, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018A040, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018A040[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018A040, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018A040, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018A040, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:42", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_003/ov_SC04_003_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.338, "objects": ["build/src/ov_SC04_003/ov_SC04_003_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80183DDC[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80183DDC, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80183DDC, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80183DDC, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80183DDC[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80183DDC, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80183DDC, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80183DDC, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:42", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_000/ov_SC04_000_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.33, "objects": ["build/src/ov_SC04_000/ov_SC04_000_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80184ED4[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80184ED4, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80184ED4, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80184ED4, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80184ED4[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80184ED4, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80184ED4, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80184ED4, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:43", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_004/ov_SC04_004_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.329, "objects": ["build/src/ov_SC04_004/ov_SC04_004_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80186310[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80186310, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80186310, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80186310, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80186310[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80186310, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80186310, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80186310, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:43", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_005/ov_SC04_005_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.327, "objects": ["build/src/ov_SC04_005/ov_SC04_005_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80189744[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80189744, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80189744, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80189744, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80189744[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80189744, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80189744, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80189744, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:44", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_006/ov_SC04_006_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.326, "objects": ["build/src/ov_SC04_006/ov_SC04_006_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80181824[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80181824, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80181824, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80181824, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80181824[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80181824, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80181824, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80181824, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:44", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_007/ov_SC04_007_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.32, "objects": ["build/src/ov_SC04_007/ov_SC04_007_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801877DC[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801877DC, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801877DC, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801877DC, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801877DC[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801877DC, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801877DC, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801877DC, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:44", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_009/ov_SC04_009_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.321, "objects": ["build/src/ov_SC04_009/ov_SC04_009_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80180740[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80180740, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80180740, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80180740, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80180740[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80180740, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80180740, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80180740, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:45", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_010/ov_SC04_010_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.323, "objects": ["build/src/ov_SC04_010/ov_SC04_010_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8017FDEC[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8017FDEC, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8017FDEC, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8017FDEC, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8017FDEC[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8017FDEC, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8017FDEC, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8017FDEC, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:46", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_118/ov_SC03_118_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.639, "objects": ["build/src/ov_SC03_118/ov_SC03_118_after.o", "build/src/ov_SC03_119/ov_SC03_119_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018B5B8[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018B5B8, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018B5B8, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018B5B8, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018B5B8[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018B5B8, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018B5B8, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018B5B8, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:46", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_012/ov_SC04_012_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.334, "objects": ["build/src/ov_SC04_012/ov_SC04_012_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80180250[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80180250, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80180250, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80180250, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80180250[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80180250, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80180250, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80180250, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:46", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_015/ov_SC04_015_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.327, "objects": ["build/src/ov_SC04_015/ov_SC04_015_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80186188[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80186188, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80186188, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80186188, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80186188[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80186188, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80186188, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80186188, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:47", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_016/ov_SC04_016_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.322, "objects": ["build/src/ov_SC04_016/ov_SC04_016_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80181C4C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80181C4C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80181C4C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80181C4C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80181C4C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80181C4C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80181C4C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80181C4C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:47", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_020/ov_SC04_020_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.321, "objects": ["build/src/ov_SC04_020/ov_SC04_020_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80184F9C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80184F9C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80184F9C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80184F9C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80184F9C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80184F9C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80184F9C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80184F9C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:48", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_000/ov_SC05_000_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.33, "objects": ["build/src/ov_SC05_000/ov_SC05_000_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8017FEDC[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8017FEDC, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8017FEDC, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8017FEDC, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8017FEDC[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8017FEDC, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8017FEDC, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8017FEDC, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:48", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_001/ov_SC05_001_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.335, "objects": ["build/src/ov_SC05_001/ov_SC05_001_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801876B8[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801876B8, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801876B8, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801876B8, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801876B8[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801876B8, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801876B8, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801876B8, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:48", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_002/ov_SC05_002_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.339, "objects": ["build/src/ov_SC05_002/ov_SC05_002_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80181E78[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80181E78, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80181E78, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80181E78, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80181E78[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80181E78, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80181E78, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80181E78, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:49", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_003/ov_SC05_003_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.326, "objects": ["build/src/ov_SC05_003/ov_SC05_003_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801841B0[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801841B0, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801841B0, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801841B0, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801841B0[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801841B0, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801841B0, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801841B0, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:49", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_006/ov_SC05_006_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.324, "objects": ["build/src/ov_SC05_006/ov_SC05_006_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801810B0[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801810B0, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801810B0, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801810B0, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801810B0[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801810B0, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801810B0, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801810B0, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:50", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_007/ov_SC05_007_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.332, "objects": ["build/src/ov_SC05_007/ov_SC05_007_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801826AC[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801826AC, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801826AC, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801826AC, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801826AC[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801826AC, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801826AC, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801826AC, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:50", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_004/ov_SC05_004_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.329, "objects": ["build/src/ov_SC05_004/ov_SC05_004_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801832BC[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801832BC, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801832BC, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801832BC, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801832BC[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801832BC, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801832BC, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801832BC, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:50", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_005/ov_SC05_005_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.321, "objects": ["build/src/ov_SC05_005/ov_SC05_005_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80184090[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80184090, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80184090, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80184090, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80184090[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80184090, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80184090, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80184090, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:51", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_008/ov_SC05_008_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.323, "objects": ["build/src/ov_SC05_008/ov_SC05_008_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80184604[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80184604, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80184604, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80184604, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80184604[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80184604, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80184604, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80184604, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:51", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_010/ov_SC05_010_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.327, "objects": ["build/src/ov_SC05_010/ov_SC05_010_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018A5F0[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018A5F0, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018A5F0, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018A5F0, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018A5F0[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018A5F0, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018A5F0, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018A5F0, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:52", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_011/ov_SC05_011_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.318, "objects": ["build/src/ov_SC05_011/ov_SC05_011_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8017F968[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8017F968, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8017F968, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8017F968, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8017F968[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8017F968, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8017F968, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8017F968, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:52", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_018/ov_SC04_018_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.656, "objects": ["build/src/ov_SC04_018/ov_SC04_018_after.o", "build/src/ov_SC04_019/ov_SC04_019_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018EE64[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018EE64, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018EE64, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018EE64, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018EE64[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018EE64, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018EE64, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018EE64, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:53", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_017/ov_SC05_017_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.321, "objects": ["build/src/ov_SC05_017/ov_SC05_017_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018EE28[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018EE28, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018EE28, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018EE28, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018EE28[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018EE28, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018EE28, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018EE28, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:53", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_018/ov_SC05_018_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.331, "objects": ["build/src/ov_SC05_018/ov_SC05_018_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80188584[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80188584, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80188584, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80188584, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80188584[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80188584, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80188584, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80188584, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:54", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_000/ov_SC06_000_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.324, "objects": ["build/src/ov_SC06_000/ov_SC06_000_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80189ED8[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80189ED8, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80189ED8, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80189ED8, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80189ED8[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80189ED8, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80189ED8, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80189ED8, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:54", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_006/ov_SC06_006_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.323, "objects": ["build/src/ov_SC06_006/ov_SC06_006_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801839FC[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801839FC, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801839FC, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801839FC, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801839FC[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801839FC, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801839FC, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801839FC, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:54", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_008/ov_SC06_008_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.33, "objects": ["build/src/ov_SC06_008/ov_SC06_008_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80187464[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80187464, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80187464, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80187464, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80187464[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80187464, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80187464, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80187464, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:55", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_011/ov_SC06_011_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.324, "objects": ["build/src/ov_SC06_011/ov_SC06_011_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801820A0[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801820A0, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801820A0, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801820A0, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801820A0[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801820A0, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801820A0, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801820A0, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:55", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_010/ov_SC06_010_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.327, "objects": ["build/src/ov_SC06_010/ov_SC06_010_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80188640[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80188640, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80188640, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80188640, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80188640[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80188640, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80188640, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80188640, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:56", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_013/ov_SC06_013_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.326, "objects": ["build/src/ov_SC06_013/ov_SC06_013_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018081C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018081C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018081C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018081C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018081C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018081C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018081C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018081C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:56", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_014/ov_SC06_014_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.325, "objects": ["build/src/ov_SC06_014/ov_SC06_014_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80181B80[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80181B80, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80181B80, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80181B80, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80181B80[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80181B80, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80181B80, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80181B80, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:56", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_015/ov_SC06_015_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.331, "objects": ["build/src/ov_SC06_015/ov_SC06_015_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801806D8[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801806D8, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801806D8, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801806D8, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801806D8[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801806D8, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801806D8, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801806D8, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:57", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_016/ov_SC06_016_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.322, "objects": ["build/src/ov_SC06_016/ov_SC06_016_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80186AE8[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80186AE8, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80186AE8, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80186AE8, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80186AE8[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80186AE8, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80186AE8, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80186AE8, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:57", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_018/ov_SC06_018_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.33, "objects": ["build/src/ov_SC06_018/ov_SC06_018_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80195224[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80195224, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80195224, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80195224, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80195224[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80195224, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80195224, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80195224, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:58", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_020/ov_SC06_020_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.332, "objects": ["build/src/ov_SC06_020/ov_SC06_020_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80186CAC[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80186CAC, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80186CAC, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80186CAC, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80186CAC[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80186CAC, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80186CAC, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80186CAC, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:58", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_022/ov_SC06_022_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.33, "objects": ["build/src/ov_SC06_022/ov_SC06_022_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018EF68[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018EF68, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018EF68, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018EF68, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018EF68[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018EF68, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018EF68, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018EF68, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:58", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_024/ov_SC06_024_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.323, "objects": ["build/src/ov_SC06_024/ov_SC06_024_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80191440[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80191440, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80191440, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80191440, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80191440[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80191440, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80191440, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80191440, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:59", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_025/ov_SC06_025_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.328, "objects": ["build/src/ov_SC06_025/ov_SC06_025_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801868E4[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus4)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801868E4, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801868E4, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801868E4, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801868E4[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801868E4, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801868E4, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801868E4, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:42:59", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_033/ov_SC06_033_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.336, "objects": ["build/src/ov_SC06_033/ov_SC06_033_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80193484[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus5)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus5)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80193484, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80193484, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80193484, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80193484[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80193484, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80193484, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80193484, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:43:00", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC07_009/ov_SC07_009_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.331, "objects": ["build/src/ov_SC07_009/ov_SC07_009_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8017F9F4[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus5)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus5)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8017F9F4, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8017F9F4, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8017F9F4, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8017F9F4[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8017F9F4, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8017F9F4, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8017F9F4, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:43:00", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC07_000/ov_SC07_000_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.323, "objects": ["build/src/ov_SC07_000/ov_SC07_000_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801842CC[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus5)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus5)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801842CC, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801842CC, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801842CC, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_801842CC[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_801842CC, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_801842CC, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_801842CC, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:43:01", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_032/ov_SC06_032_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.326, "objects": ["build/src/ov_SC06_032/ov_SC06_032_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80194F74[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus5)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus5)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80194F74, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80194F74, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80194F74, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80194F74[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80194F74, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80194F74, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80194F74, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:43:01", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_029/ov_SC06_029_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.324, "objects": ["build/src/ov_SC06_029/ov_SC06_029_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018E1B8[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus5)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus5)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018E1B8, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018E1B8, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018E1B8, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018E1B8[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018E1B8, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018E1B8, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018E1B8, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:43:01", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_030/ov_SC06_030_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.326, "objects": ["build/src/ov_SC06_030/ov_SC06_030_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80183AA8[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus5)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus5)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80183AA8, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80183AA8, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80183AA8, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80183AA8[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80183AA8, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80183AA8, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80183AA8, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:43:02", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC07_002/ov_SC07_002_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.326, "objects": ["build/src/ov_SC07_002/ov_SC07_002_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80188438[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus5)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus5)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80188438, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80188438, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80188438, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80188438[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80188438, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80188438, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80188438, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:43:02", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC07_008/ov_SC07_008_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.325, "objects": ["build/src/ov_SC07_008/ov_SC07_008_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8017EF50[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus5)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus5)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8017EF50, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8017EF50, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8017EF50, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8017EF50[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8017EF50, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8017EF50, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8017EF50, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:43:03", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC07_001/ov_SC07_001_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.336, "objects": ["build/src/ov_SC07_001/ov_SC07_001_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018317C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus5)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus5)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018317C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018317C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018317C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8018317C[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8018317C, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8018317C, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8018317C, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:43:03", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_027/ov_SC06_027_after.c", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": false, "includers": 0, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.332, "objects": ["build/src/ov_SC06_027/ov_SC06_027_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8017FC24[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus5)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus5)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8017FC24, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8017FC24, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8017FC24, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_8017FC24[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_8017FC24, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_8017FC24, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_8017FC24, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:43:04", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/shared/ov/func_8014D820__ce76d008.h", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": true, "includers": 3, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 3, "seconds": 0.985, "objects": ["build/src/ov_SC03_126/ov_SC03_126_after.o", "build/src/ov_SC04_021/ov_SC04_021_after.o", "build/src/ov_SC05_019/ov_SC05_019_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80180EC8[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung A headers2)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A headers2)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80180EC8, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80180EC8, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80180EC8, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80180EC8[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80180EC8, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80180EC8, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80180EC8, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:43:05", "label": "a25p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/shared/ov/func_8014D820__9ab0f3b9.h", "fn": "func_8014D820", "addr": 2148849696, "aliases": null, "header": true, "includers": 2, "nhash_before": "c5218af8b25ed919cd48c44351e62d6ba9c0cf40", "nhash_after": "0e923441fd0d0c3b2abb69a71b88d2feaa932836", "source": "propagate:src/ov_SC04_011/ov_SC04_011_after.c:func_8014D820", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.654, "objects": ["build/src/ov_SC04_008/ov_SC04_008_after.o", "build/src/ov_SC05_009/ov_SC05_009_after.o"], "before_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80180714[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\nregister u16 *a2 __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung A headers2)\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n__asm__ __volatile__(\"\" : \"=r\"(a2) : \"0\"(a2x)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung A headers2)\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80180714, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80180714, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80180714, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n", "after_text": "s32 func_8014D820(s32 a0, u16 *a1, u16 *a2)\n{\n\n extern u8 D_801202A0[];\n extern u8 D_80180714[];\n extern u8 D_801152A8[];\n extern s16 D_801152AC;\n /* BLOCK-SCOPE types \u2014 see the header note. `Ent` at file scope collides with\n src/shared/engine_types.h:434 and kills the TU's cc1 stage (exit 33). */\n typedef struct\n {\n u16 x;\n u16 y;\n u16 z;\n u16 w;\n } V4;\n typedef struct EntD820\n {\n u16 f0;\n u16 f2;\n u16 f4;\n u16 x;\n u16 f8;\n u16 y;\n u16 fC;\n u16 z;\n u8 p10[0x10];\n s32 f20;\n u8 p24[0x34];\n s32 f58;\n u16 f5C;\n u16 f5E;\n u8 p60[0x10C - 0x60];\n } Ent;\n int new_var2;\n s16 new_var3;\n V4 out[3];\n V4 pos;\n Desc desc;\n Ent *ent;\n Ent *p;\n s32 dx;\n s32 dz;\n s32 ex;\n s32 ez;\n s32 r1;\n s32 r2;\n s32 r3;\n s32 ang;\n s32 x0;\n s32 y0;\n s32 z0;\n s32 tx;\n s32 tz;\n s32 ty;\n s32 r;\n s32 t;\n s32 u;\n s32 a0v;\n t = a2[0];\n u = a1[0];\n dx = t - u;\na0v = a0;\n new_var3 = (s16) dx;\n t = a2[2];\n u = a1[2];\n dz = t - u;\n if (((s16) (dx | dz)) == 0)\n {\n goto fail;\n }\n desc.x = dx;\n desc.y = a2[1] - a1[1];\n desc.z = a2[2] - a1[2];\n ent = *((Ent **) (a0v + 0x170));\n if (ent->f0 == 0)\n {\n goto fail;\n }\n if ((ent->f5C & 0x1000) == 0)\n {\n goto fail;\n }\n if (ent->f58 == 0)\n {\n goto fail;\n }\n if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0)\n {\n goto fail;\n }\n ex = ent->x - (*((u16 *) (a0v + 6)));\n ez = ent->z - (*((u16 *) (a0v + 0xE)));\n r1 = (s16) ratan2((s16) dz, new_var3);\n r2 = (s16) ratan2((s16) ez, (s16) ex);\n r3 = (s16) func_80012A60(r1, r2);\n if (0x400 <= r3)\n {\n goto fail;\n }\n desc.f20 = 0;\n desc.f1C = 0;\n desc.f18 = 0;\n x0 = ent->x;\n pos.x = x0;\n y0 = ent->y;\n pos.y = y0;\n z0 = ent->z;\n tx = x0 + desc.x;\n pos.z = z0;\n tz = z0 + desc.z;\n desc.x = tx;\n desc.z = tz;\n ty = (y0 + desc.y) + 8;\n desc.y = ty;\n if (currentLocationId != 0x3008)\n {\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n func_80135888(p->f20, p->f58, (s32) (&pos), (s32) (&desc));\n }\n\n }\n else\n {\n ang = ratan2(((s16) x0) - ((s16) tx), ((s16) z0) - ((s16) tz)) & 0xFFF;\n func_800139C8(ang, D_80180714, &out[0]);\n func_800139C8((s16) (ang - 0x155), D_80180714, &out[1]);\n func_800139C8((s16) (ang + 0x155), D_80180714, &out[2]);\n out[0].x += pos.x;\n out[0].y = pos.y;\n out[0].z += pos.z;\n out[1].x += pos.x;\n out[1].y = pos.y;\n out[1].z += pos.z;\n out[2].x += pos.x;\n out[2].y = pos.y;\n out[2].z += pos.z;\n for (p = (Ent *) D_801202A0; p < (Ent *) (D_801202A0 + 0x6480); p++)\n {\n if (p == ent)\n {\n continue;\n }\n if (p->f0 == 0)\n {\n continue;\n }\n if (p->f5C == 0)\n {\n continue;\n }\n if (p->f58 == 0)\n {\n continue;\n }\n if (func_8014DCE0((s32) p, (s32) (&pos), (s32) (&out[0])) != 0)\n {\n __builtin_memcpy((void *) ((s32) (&desc)), (void *) ((s32) (&pos)), 8);\n }\n }\n\n }\n r = func_80133784(0, &pos, (s32) (&desc));\n if ((r == 0) || ((r == 0x2000) && (((*(u16 *) D_801152A8) | ((u16) D_801152AC)) == 0)))\n {\n ent->x = desc.x - desc.f18;\n ent->y = desc.y;\n ent->z = desc.z - desc.f20;\n desc.x -= pos.x;\n desc.y -= pos.y;\n desc.z -= pos.z;\n *((u16 *) (a0v + 6)) = a1[0] + desc.x;\n new_var2 = desc.y;\n new_var2 = new_var2 + 0x10;\n *((u16 *) (a0v + 0xA)) = a1[1] + new_var2;\n *((u16 *) (a0v + 0xE)) = a1[2] + desc.z;\n }\n else\n {\n *((u16 *) (a0v + 6)) = a1[0];\n *((u16 *) (a0v + 0xA)) = a1[1] + 0x10;\n *((u16 *) (a0v + 0xE)) = a1[2];\n }\n return 1;\n fail:\n *((s32 *) (a0v + 0x170)) = 0;\n\n return 0;\n}\n"} +{"ts": "2026-09-10 10:43:06", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_011/ov_SC03_011_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.112, "objects": ["build/src/ov_SC03_011/ov_SC03_011_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80182BC4[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80182BC4[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80182BC4[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80182BC4[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:06", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC07_006/ov_SC07_006_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.112, "objects": ["build/src/ov_SC07_006/ov_SC07_006_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018BD68[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018BD68[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018BD68[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018BD68[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:06", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_000/ov_SC01_000_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.111, "objects": ["build/src/ov_SC01_000/ov_SC01_000_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80180564[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80180564[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80180564[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80180564[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:06", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_001/ov_SC01_001_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.114, "objects": ["build/src/ov_SC01_001/ov_SC01_001_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801851B4[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801851B4[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801851B4[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801851B4[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:06", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_009/ov_SC01_009_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.115, "objects": ["build/src/ov_SC01_009/ov_SC01_009_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801842D4[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801842D4[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801842D4[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801842D4[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:07", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_008/ov_SC01_008_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.116, "objects": ["build/src/ov_SC01_008/ov_SC01_008_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801810EC[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801810EC[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801810EC[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801810EC[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:07", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_004/ov_SC01_004_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.111, "objects": ["build/src/ov_SC01_004/ov_SC01_004_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80180B78[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80180B78[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80180B78[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80180B78[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:07", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_074/ov_SC01_074_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.114, "objects": ["build/src/ov_SC01_074/ov_SC01_074_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8017FF54[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8017FF54[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8017FF54[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8017FF54[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:07", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_080/ov_SC01_080_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.11, "objects": ["build/src/ov_SC01_080/ov_SC01_080_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80184EB4[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80184EB4[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80184EB4[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80184EB4[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:07", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_005/ov_SC01_005_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.224, "objects": ["build/src/ov_SC01_005/ov_SC01_005_jr_80140608.o", "build/src/ov_SC01_006/ov_SC01_006_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80183D0C[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80183D0C[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80183D0C[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80183D0C[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:08", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_084/ov_SC01_084_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.117, "objects": ["build/src/ov_SC01_084/ov_SC01_084_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801881A8[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801881A8[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801881A8[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801881A8[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:08", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_004/ov_SC02_004_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.129, "objects": ["build/src/ov_SC02_004/ov_SC02_004_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8017F638[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8017F638[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8017F638[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8017F638[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:08", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_005/ov_SC02_005_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.131, "objects": ["build/src/ov_SC02_005/ov_SC02_005_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8019223C[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8019223C[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8019223C[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8019223C[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:08", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_015/ov_SC02_015_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.133, "objects": ["build/src/ov_SC02_015/ov_SC02_015_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8017FBA0[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8017FBA0[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8017FBA0[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8017FBA0[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:08", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_011/ov_SC02_011_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.13, "objects": ["build/src/ov_SC02_011/ov_SC02_011_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8019268C[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8019268C[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8019268C[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8019268C[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:09", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_016/ov_SC02_016_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.137, "objects": ["build/src/ov_SC02_016/ov_SC02_016_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80185DD8[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80185DD8[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80185DD8[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80185DD8[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:09", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_017/ov_SC02_017_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.139, "objects": ["build/src/ov_SC02_017/ov_SC02_017_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018BE30[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018BE30[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018BE30[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018BE30[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:09", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_000/ov_SC02_000_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.284, "objects": ["build/src/ov_SC02_000/ov_SC02_000_jr_80140608.o", "build/src/ov_SC02_003/ov_SC02_003_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018C558[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018C558[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018C558[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018C558[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:09", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_021/ov_SC02_021_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.122, "objects": ["build/src/ov_SC02_021/ov_SC02_021_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80181424[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80181424[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80181424[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80181424[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:10", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_026/ov_SC02_026_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.125, "objects": ["build/src/ov_SC02_026/ov_SC02_026_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80187A78[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80187A78[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80187A78[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80187A78[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:10", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_027/ov_SC02_027_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.134, "objects": ["build/src/ov_SC02_027/ov_SC02_027_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018CB9C[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018CB9C[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018CB9C[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018CB9C[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:10", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_028/ov_SC02_028_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.126, "objects": ["build/src/ov_SC02_028/ov_SC02_028_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018CDA0[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018CDA0[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018CDA0[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018CDA0[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:10", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_035/ov_SC02_035_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.134, "objects": ["build/src/ov_SC02_035/ov_SC02_035_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80185E2C[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80185E2C[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80185E2C[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80185E2C[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:10", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_039/ov_SC02_039_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.123, "objects": ["build/src/ov_SC02_039/ov_SC02_039_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80180A58[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80180A58[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80180A58[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80180A58[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:11", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_031/ov_SC02_031_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.133, "objects": ["build/src/ov_SC02_031/ov_SC02_031_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801865CC[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801865CC[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801865CC[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801865CC[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:11", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_002/ov_SC03_002_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.122, "objects": ["build/src/ov_SC03_002/ov_SC03_002_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80186E58[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80186E58[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80186E58[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80186E58[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:11", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_041/ov_SC02_041_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.12, "objects": ["build/src/ov_SC02_041/ov_SC02_041_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80186728[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80186728[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80186728[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80186728[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:11", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_001/ov_SC03_001_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.122, "objects": ["build/src/ov_SC03_001/ov_SC03_001_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018EE68[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018EE68[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018EE68[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018EE68[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:11", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_003/ov_SC03_003_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.134, "objects": ["build/src/ov_SC03_003/ov_SC03_003_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80180C20[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80180C20[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80180C20[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80180C20[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:12", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_006/ov_SC03_006_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.127, "objects": ["build/src/ov_SC03_006/ov_SC03_006_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018DF3C[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018DF3C[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018DF3C[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018DF3C[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:12", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_010/ov_SC03_010_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.134, "objects": ["build/src/ov_SC03_010/ov_SC03_010_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80181854[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80181854[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80181854[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80181854[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:12", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_007/ov_SC03_007_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.125, "objects": ["build/src/ov_SC03_007/ov_SC03_007_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80188D34[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80188D34[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80188D34[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80188D34[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:12", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_012/ov_SC03_012_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.129, "objects": ["build/src/ov_SC03_012/ov_SC03_012_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8017FAA4[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8017FAA4[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8017FAA4[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8017FAA4[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:12", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_023/ov_SC03_023_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.128, "objects": ["build/src/ov_SC03_023/ov_SC03_023_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80180844[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80180844[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80180844[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80180844[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:13", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_013/ov_SC03_013_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.129, "objects": ["build/src/ov_SC03_013/ov_SC03_013_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018288C[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018288C[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018288C[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018288C[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:13", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_028/ov_SC03_028_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.127, "objects": ["build/src/ov_SC03_028/ov_SC03_028_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018D334[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018D334[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018D334[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018D334[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:13", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_024/ov_SC03_024_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.136, "objects": ["build/src/ov_SC03_024/ov_SC03_024_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80188868[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80188868[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80188868[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80188868[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:13", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_029/ov_SC03_029_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.122, "objects": ["build/src/ov_SC03_029/ov_SC03_029_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018916C[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018916C[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018916C[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018916C[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:13", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_030/ov_SC03_030_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.137, "objects": ["build/src/ov_SC03_030/ov_SC03_030_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801837A8[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801837A8[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801837A8[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801837A8[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:13", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_031/ov_SC03_031_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.124, "objects": ["build/src/ov_SC03_031/ov_SC03_031_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80183CC4[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80183CC4[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80183CC4[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80183CC4[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:14", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_089/ov_SC03_089_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.132, "objects": ["build/src/ov_SC03_089/ov_SC03_089_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018AFC0[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018AFC0[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018AFC0[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018AFC0[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:14", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_090/ov_SC03_090_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.136, "objects": ["build/src/ov_SC03_090/ov_SC03_090_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018D3E4[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018D3E4[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018D3E4[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018D3E4[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:14", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_091/ov_SC03_091_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.139, "objects": ["build/src/ov_SC03_091/ov_SC03_091_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018E28C[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018E28C[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018E28C[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018E28C[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:14", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_092/ov_SC03_092_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.136, "objects": ["build/src/ov_SC03_092/ov_SC03_092_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018665C[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018665C[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018665C[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018665C[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:15", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_093/ov_SC03_093_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.146, "objects": ["build/src/ov_SC03_093/ov_SC03_093_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80187834[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80187834[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80187834[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80187834[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:15", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_094/ov_SC03_094_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.147, "objects": ["build/src/ov_SC03_094/ov_SC03_094_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80189230[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80189230[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80189230[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80189230[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:15", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_014/ov_SC03_014_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.272, "objects": ["build/src/ov_SC03_014/ov_SC03_014_jr_80140608.o", "build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018CEC8[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018CEC8[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018CEC8[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018CEC8[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:15", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_096/ov_SC03_096_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.13, "objects": ["build/src/ov_SC03_096/ov_SC03_096_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80182410[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80182410[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80182410[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80182410[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:16", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_095/ov_SC03_095_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.124, "objects": ["build/src/ov_SC03_095/ov_SC03_095_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80182890[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80182890[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80182890[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80182890[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:16", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_097/ov_SC03_097_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.122, "objects": ["build/src/ov_SC03_097/ov_SC03_097_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801877F0[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801877F0[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801877F0[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801877F0[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:16", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_100/ov_SC03_100_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.138, "objects": ["build/src/ov_SC03_100/ov_SC03_100_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80186248[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80186248[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80186248[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80186248[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:16", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_099/ov_SC03_099_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.129, "objects": ["build/src/ov_SC03_099/ov_SC03_099_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80184D7C[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80184D7C[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80184D7C[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80184D7C[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:16", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_101/ov_SC03_101_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.124, "objects": ["build/src/ov_SC03_101/ov_SC03_101_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80185224[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80185224[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80185224[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80185224[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:16", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_098/ov_SC03_098_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.132, "objects": ["build/src/ov_SC03_098/ov_SC03_098_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80186C7C[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80186C7C[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80186C7C[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80186C7C[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:17", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_102/ov_SC03_102_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.143, "objects": ["build/src/ov_SC03_102/ov_SC03_102_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80187ADC[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80187ADC[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80187ADC[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80187ADC[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:17", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_103/ov_SC03_103_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.133, "objects": ["build/src/ov_SC03_103/ov_SC03_103_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80185A8C[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80185A8C[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80185A8C[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80185A8C[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:17", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_105/ov_SC03_105_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.132, "objects": ["build/src/ov_SC03_105/ov_SC03_105_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018BCA4[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018BCA4[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018BCA4[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018BCA4[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:17", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_108/ov_SC03_108_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.142, "objects": ["build/src/ov_SC03_108/ov_SC03_108_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801825FC[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801825FC[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801825FC[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801825FC[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:18", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_104/ov_SC03_104_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.149, "objects": ["build/src/ov_SC03_104/ov_SC03_104_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018C61C[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018C61C[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018C61C[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018C61C[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:18", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_109/ov_SC03_109_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.144, "objects": ["build/src/ov_SC03_109/ov_SC03_109_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8017FCA8[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8017FCA8[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8017FCA8[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8017FCA8[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:18", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_110/ov_SC03_110_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.123, "objects": ["build/src/ov_SC03_110/ov_SC03_110_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801836C8[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801836C8[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801836C8[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801836C8[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:18", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_112/ov_SC03_112_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.125, "objects": ["build/src/ov_SC03_112/ov_SC03_112_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80187084[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80187084[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80187084[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80187084[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:18", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_111/ov_SC03_111_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.121, "objects": ["build/src/ov_SC03_111/ov_SC03_111_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018627C[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018627C[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018627C[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018627C[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:19", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_115/ov_SC03_115_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.13, "objects": ["build/src/ov_SC03_115/ov_SC03_115_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80181E08[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80181E08[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80181E08[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80181E08[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:19", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_113/ov_SC03_113_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.128, "objects": ["build/src/ov_SC03_113/ov_SC03_113_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80184734[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80184734[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80184734[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80184734[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:19", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_114/ov_SC03_114_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.122, "objects": ["build/src/ov_SC03_114/ov_SC03_114_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018039C[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018039C[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018039C[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018039C[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:19", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_116/ov_SC03_116_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.131, "objects": ["build/src/ov_SC03_116/ov_SC03_116_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018420C[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018420C[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018420C[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018420C[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:19", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_117/ov_SC03_117_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.126, "objects": ["build/src/ov_SC03_117/ov_SC03_117_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80186218[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80186218[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80186218[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80186218[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:19", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_121/ov_SC03_121_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.122, "objects": ["build/src/ov_SC03_121/ov_SC03_121_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80183AE0[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80183AE0[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80183AE0[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80183AE0[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:20", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_124/ov_SC03_124_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.13, "objects": ["build/src/ov_SC03_124/ov_SC03_124_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018C50C[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018C50C[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018C50C[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018C50C[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:20", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_000/ov_SC04_000_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.131, "objects": ["build/src/ov_SC04_000/ov_SC04_000_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80184BE0[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80184BE0[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80184BE0[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80184BE0[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:20", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_125/ov_SC03_125_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.124, "objects": ["build/src/ov_SC03_125/ov_SC03_125_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801856DC[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801856DC[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801856DC[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801856DC[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:20", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_003/ov_SC04_003_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.128, "objects": ["build/src/ov_SC04_003/ov_SC04_003_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80183AE8[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80183AE8[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80183AE8[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80183AE8[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:20", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_002/ov_SC04_002_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.123, "objects": ["build/src/ov_SC04_002/ov_SC04_002_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80189D4C[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80189D4C[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80189D4C[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80189D4C[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:21", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_006/ov_SC04_006_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.122, "objects": ["build/src/ov_SC04_006/ov_SC04_006_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80181530[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80181530[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80181530[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80181530[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:21", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_005/ov_SC04_005_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.12, "objects": ["build/src/ov_SC04_005/ov_SC04_005_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80189450[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80189450[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80189450[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80189450[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:21", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_004/ov_SC04_004_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.13, "objects": ["build/src/ov_SC04_004/ov_SC04_004_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018601C[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018601C[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018601C[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018601C[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:21", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_007/ov_SC04_007_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.129, "objects": ["build/src/ov_SC04_007/ov_SC04_007_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801874E8[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801874E8[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801874E8[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801874E8[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:21", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_009/ov_SC04_009_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.125, "objects": ["build/src/ov_SC04_009/ov_SC04_009_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018044C[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018044C[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018044C[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018044C[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:22", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_010/ov_SC04_010_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.133, "objects": ["build/src/ov_SC04_010/ov_SC04_010_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8017FAF8[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8017FAF8[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8017FAF8[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8017FAF8[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:22", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_118/ov_SC03_118_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.245, "objects": ["build/src/ov_SC03_118/ov_SC03_118_jr_80140608.o", "build/src/ov_SC03_119/ov_SC03_119_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018B2C4[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018B2C4[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018B2C4[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018B2C4[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:22", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_015/ov_SC04_015_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.113, "objects": ["build/src/ov_SC04_015/ov_SC04_015_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80185E94[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80185E94[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80185E94[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80185E94[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:22", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_012/ov_SC04_012_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.114, "objects": ["build/src/ov_SC04_012/ov_SC04_012_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8017FF5C[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8017FF5C[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8017FF5C[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8017FF5C[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:22", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_016/ov_SC04_016_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.117, "objects": ["build/src/ov_SC04_016/ov_SC04_016_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80181958[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80181958[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80181958[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80181958[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:23", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_020/ov_SC04_020_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.116, "objects": ["build/src/ov_SC04_020/ov_SC04_020_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80184CA8[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80184CA8[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80184CA8[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80184CA8[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:23", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_000/ov_SC05_000_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.113, "objects": ["build/src/ov_SC05_000/ov_SC05_000_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8017FBE8[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8017FBE8[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8017FBE8[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8017FBE8[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:23", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_001/ov_SC05_001_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.112, "objects": ["build/src/ov_SC05_001/ov_SC05_001_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801873C4[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801873C4[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801873C4[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801873C4[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:23", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_002/ov_SC05_002_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.117, "objects": ["build/src/ov_SC05_002/ov_SC05_002_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80181B84[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80181B84[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80181B84[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80181B84[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:23", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_003/ov_SC05_003_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.112, "objects": ["build/src/ov_SC05_003/ov_SC05_003_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80183EBC[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80183EBC[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80183EBC[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80183EBC[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:24", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_004/ov_SC05_004_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.111, "objects": ["build/src/ov_SC05_004/ov_SC05_004_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80182FC8[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80182FC8[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80182FC8[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80182FC8[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:24", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_005/ov_SC05_005_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.116, "objects": ["build/src/ov_SC05_005/ov_SC05_005_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80183D9C[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80183D9C[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80183D9C[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80183D9C[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:24", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_006/ov_SC05_006_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.117, "objects": ["build/src/ov_SC05_006/ov_SC05_006_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80180DBC[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80180DBC[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80180DBC[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80180DBC[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:24", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_007/ov_SC05_007_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.117, "objects": ["build/src/ov_SC05_007/ov_SC05_007_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801823B8[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801823B8[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801823B8[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801823B8[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:24", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_010/ov_SC05_010_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.11, "objects": ["build/src/ov_SC05_010/ov_SC05_010_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018A2FC[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018A2FC[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018A2FC[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018A2FC[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:25", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_018/ov_SC04_018_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.229, "objects": ["build/src/ov_SC04_018/ov_SC04_018_jr_80140608.o", "build/src/ov_SC04_019/ov_SC04_019_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018EB70[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018EB70[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018EB70[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018EB70[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:25", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_011/ov_SC05_011_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.114, "objects": ["build/src/ov_SC05_011/ov_SC05_011_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8017F674[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8017F674[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8017F674[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8017F674[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:25", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_008/ov_SC05_008_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.112, "objects": ["build/src/ov_SC05_008/ov_SC05_008_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80184310[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80184310[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80184310[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80184310[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:25", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_018/ov_SC05_018_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.116, "objects": ["build/src/ov_SC05_018/ov_SC05_018_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80188290[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80188290[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80188290[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80188290[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:25", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_000/ov_SC06_000_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.114, "objects": ["build/src/ov_SC06_000/ov_SC06_000_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80189BE4[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80189BE4[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80189BE4[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80189BE4[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:25", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_017/ov_SC05_017_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.118, "objects": ["build/src/ov_SC05_017/ov_SC05_017_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018EB34[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018EB34[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018EB34[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018EB34[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:26", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_008/ov_SC06_008_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.115, "objects": ["build/src/ov_SC06_008/ov_SC06_008_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80187170[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80187170[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80187170[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80187170[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:26", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_006/ov_SC06_006_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.112, "objects": ["build/src/ov_SC06_006/ov_SC06_006_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80183708[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80183708[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80183708[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80183708[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:26", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_010/ov_SC06_010_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.114, "objects": ["build/src/ov_SC06_010/ov_SC06_010_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018834C[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018834C[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018834C[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018834C[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:26", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_011/ov_SC06_011_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.115, "objects": ["build/src/ov_SC06_011/ov_SC06_011_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80181DAC[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80181DAC[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80181DAC[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80181DAC[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:26", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_013/ov_SC06_013_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.115, "objects": ["build/src/ov_SC06_013/ov_SC06_013_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80180528[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80180528[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80180528[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80180528[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:27", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_014/ov_SC06_014_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.118, "objects": ["build/src/ov_SC06_014/ov_SC06_014_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018188C[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018188C[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018188C[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018188C[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:27", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_018/ov_SC06_018_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.111, "objects": ["build/src/ov_SC06_018/ov_SC06_018_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80194F30[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80194F30[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80194F30[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80194F30[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:27", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_015/ov_SC06_015_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.113, "objects": ["build/src/ov_SC06_015/ov_SC06_015_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801803E4[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801803E4[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801803E4[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801803E4[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:27", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_016/ov_SC06_016_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.119, "objects": ["build/src/ov_SC06_016/ov_SC06_016_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801867F4[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801867F4[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801867F4[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801867F4[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:27", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_020/ov_SC06_020_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.116, "objects": ["build/src/ov_SC06_020/ov_SC06_020_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801869B8[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801869B8[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801869B8[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801869B8[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:27", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_022/ov_SC06_022_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.119, "objects": ["build/src/ov_SC06_022/ov_SC06_022_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018EC74[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018EC74[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018EC74[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018EC74[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:28", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_024/ov_SC06_024_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.111, "objects": ["build/src/ov_SC06_024/ov_SC06_024_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8019114C[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8019114C[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8019114C[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8019114C[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:28", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_025/ov_SC06_025_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.114, "objects": ["build/src/ov_SC06_025/ov_SC06_025_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801865F0[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801865F0[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801865F0[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801865F0[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:28", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_027/ov_SC06_027_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.116, "objects": ["build/src/ov_SC06_027/ov_SC06_027_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8017F930[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8017F930[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8017F930[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8017F930[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:28", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_030/ov_SC06_030_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.115, "objects": ["build/src/ov_SC06_030/ov_SC06_030_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801837B4[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801837B4[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_801837B4[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_801837B4[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:28", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_032/ov_SC06_032_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.113, "objects": ["build/src/ov_SC06_032/ov_SC06_032_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80194C80[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80194C80[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80194C80[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80194C80[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:28", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_029/ov_SC06_029_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.113, "objects": ["build/src/ov_SC06_029/ov_SC06_029_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018DEC4[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018DEC4[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018DEC4[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018DEC4[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:29", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_033/ov_SC06_033_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.114, "objects": ["build/src/ov_SC06_033/ov_SC06_033_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80193190[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80193190[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80193190[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80193190[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:29", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC07_000/ov_SC07_000_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.116, "objects": ["build/src/ov_SC07_000/ov_SC07_000_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80183FD8[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80183FD8[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80183FD8[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80183FD8[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:29", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC07_001/ov_SC07_001_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.116, "objects": ["build/src/ov_SC07_001/ov_SC07_001_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80182E88[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80182E88[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80182E88[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80182E88[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:29", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC07_008/ov_SC07_008_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.115, "objects": ["build/src/ov_SC07_008/ov_SC07_008_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8017EC5C[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8017EC5C[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8017EC5C[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8017EC5C[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:29", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC07_002/ov_SC07_002_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.114, "objects": ["build/src/ov_SC07_002/ov_SC07_002_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80188144[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80188144[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80188144[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80188144[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:30", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC07_009/ov_SC07_009_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.11, "objects": ["build/src/ov_SC07_009/ov_SC07_009_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8017F700[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8017F700[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8017F700[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8017F700[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:30", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC07_007/ov_SC07_007_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.115, "objects": ["build/src/ov_SC07_007/ov_SC07_007_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018488C[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018488C[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8018488C[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8018488C[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:30", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC07_011/ov_SC07_011_jr_80140608.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.112, "objects": ["build/src/ov_SC07_011/ov_SC07_011_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8017FFDC[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8017FFDC[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8017FFDC[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8017FFDC[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:30", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_MAIN_012/ov_MAIN_012_jr_8013F350.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.139, "objects": ["build/src/ov_MAIN_012/ov_MAIN_012_jr_8013F350.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8017FCDC[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8017FCDC[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_8017FCDC[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_8017FCDC[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:30", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_037/ov_SC02_037_jr_8013F350.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.136, "objects": ["build/src/ov_SC02_037/ov_SC02_037_jr_8013F350.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80185568[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80185568[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80185568[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80185568[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:31", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_107/ov_SC03_107_jr_8013F350.c", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": false, "includers": 0, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.134, "objects": ["build/src/ov_SC03_107/ov_SC03_107_jr_8013F350.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80183E04[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung B tus4)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80183E04[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80183E04[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80183E04[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:31", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/shared/ov/func_80143D28__ebe16725.h", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": true, "includers": 3, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 3, "seconds": 0.333, "objects": ["build/src/ov_SC03_126/ov_SC03_126_jr_80140608.o", "build/src/ov_SC04_021/ov_SC04_021_jr_80140608.o", "build/src/ov_SC05_019/ov_SC05_019_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80180BD4[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung A headers2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80180BD4[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80180BD4[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80180BD4[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:31", "label": "a16p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/shared/ov/func_80143D28__b958d830.h", "fn": "func_80143D28", "addr": 2148810024, "aliases": null, "header": true, "includers": 2, "nhash_before": "4b1590c37b50ad46941a3d1d3d9cb2ae9e61a710", "nhash_after": "2d3ce76ea839180cc58f8723989e710aedaa6a24", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_80140608.c:func_80143D28", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.22, "objects": ["build/src/ov_SC04_008/ov_SC04_008_jr_80140608.o", "build/src/ov_SC05_009/ov_SC05_009_jr_80140608.o"], "before_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80180420[];\n register s32 iVar3 __asm__(\"$18\") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 \u2014 NEEDED DIFFERS (P36 rung A headers2)\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80180420[*(s16 *)(param_1 + 0x70)];\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = p->f8;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n", "after_text": "void func_80143D28(s32 param_1) {\n\n extern MatEntry D_80180420[];\n s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */\n MatEntry *p = &D_80180420[*(s16 *)(param_1 + 0x70)];\n u16 uVar5 = p->f8;\n s32 iVar3 = *(s32 *)(param_1 + 0x20);\n s32 sVar4;\n s32 iVar1;\n\n *(s16 *)(iVar3 + 0x14) = uVar5;\n *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa;\n sVar4 = 0x1000;\n ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50));\n\n if (*(s16 *)(param_1 + 0xfe) == 0 &&\n (iVar2 == 0 || *(s16 *)(iVar2 + 0x36) != *(s16 *)(param_1 + 0xfc) ||\n *(u8 *)(iVar2 + 0xc1) != 6)) {\n if (0x10 < *(s32 *)(param_1 + 0x1c)) {\n *(s32 *)(param_1 + 0x1c) = 0x10;\n }\n *(s16 *)(param_1 + 0xfe) = 1;\n }\n\n iVar1 = *(s32 *)(param_1 + 0x1c);\n if (iVar1 < 0x11) {\n sVar4 = iVar1 << 8;\n }\n if (0x73 < iVar1) {\n sVar4 = (0x78 - iVar1) << 10;\n }\n *(s16 *)(iVar3 + 0x18) = *(s16 *)(iVar3 + 0x1a) = *(s16 *)(iVar3 + 0x1c) = sVar4;\n\n if (func_8012BEE8(param_1)) {\n func_8012C218((void *)param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:55", "label": "a11", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "T7 agent a11", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.316, "objects": ["build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80192AC8)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B t3_tus1)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80192AC8)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:57", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_000/ov_SC01_000_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.314, "objects": ["build/src/ov_SC01_000/ov_SC01_000_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_801812A4)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_801812A4)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:58", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_004/ov_SC02_004_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.324, "objects": ["build/src/ov_SC02_004/ov_SC02_004_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80180378)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80180378)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:58", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_004/ov_SC01_004_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.335, "objects": ["build/src/ov_SC01_004/ov_SC01_004_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_801818B8)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_801818B8)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:59", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_084/ov_SC01_084_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.316, "objects": ["build/src/ov_SC01_084/ov_SC01_084_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80188EE8)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80188EE8)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:43:59", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_005/ov_SC02_005_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.301, "objects": ["build/src/ov_SC02_005/ov_SC02_005_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80192F7C)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80192F7C)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:00", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_009/ov_SC01_009_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.308, "objects": ["build/src/ov_SC01_009/ov_SC01_009_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80185014)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80185014)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:01", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_011/ov_SC02_011_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.302, "objects": ["build/src/ov_SC02_011/ov_SC02_011_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_801933CC)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_801933CC)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:01", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_080/ov_SC01_080_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.302, "objects": ["build/src/ov_SC01_080/ov_SC01_080_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80185BF4)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80185BF4)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:02", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_074/ov_SC01_074_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.309, "objects": ["build/src/ov_SC01_074/ov_SC01_074_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80180C94)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80180C94)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:03", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_001/ov_SC01_001_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.303, "objects": ["build/src/ov_SC01_001/ov_SC01_001_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80185EF4)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80185EF4)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:03", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_008/ov_SC01_008_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.304, "objects": ["build/src/ov_SC01_008/ov_SC01_008_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80181E2C)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80181E2C)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:04", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_015/ov_SC02_015_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.307, "objects": ["build/src/ov_SC02_015/ov_SC02_015_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_801808E0)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_801808E0)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:05", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_016/ov_SC02_016_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.309, "objects": ["build/src/ov_SC02_016/ov_SC02_016_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80186B18)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80186B18)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:07", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_017/ov_SC02_017_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.31, "objects": ["build/src/ov_SC02_017/ov_SC02_017_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_8018CB70)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_8018CB70)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:08", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC01_005/ov_SC01_005_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.612, "objects": ["build/src/ov_SC01_005/ov_SC01_005_jr_8015C32C.o", "build/src/ov_SC01_006/ov_SC01_006_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80184A4C)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80184A4C)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:10", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_000/ov_SC02_000_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.636, "objects": ["build/src/ov_SC02_000/ov_SC02_000_jr_8015C32C.o", "build/src/ov_SC02_003/ov_SC02_003_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_8018D298)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_8018D298)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:10", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_026/ov_SC02_026_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.317, "objects": ["build/src/ov_SC02_026/ov_SC02_026_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_801887B8)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_801887B8)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:11", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_039/ov_SC02_039_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.305, "objects": ["build/src/ov_SC02_039/ov_SC02_039_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80181798)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80181798)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:12", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_021/ov_SC02_021_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.316, "objects": ["build/src/ov_SC02_021/ov_SC02_021_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80182164)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80182164)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:13", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_027/ov_SC02_027_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.312, "objects": ["build/src/ov_SC02_027/ov_SC02_027_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_8018D8DC)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_8018D8DC)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:15", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_035/ov_SC02_035_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.352, "objects": ["build/src/ov_SC02_035/ov_SC02_035_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80186B6C)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80186B6C)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:16", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_031/ov_SC02_031_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.32, "objects": ["build/src/ov_SC02_031/ov_SC02_031_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_8018730C)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_8018730C)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:17", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_028/ov_SC02_028_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.356, "objects": ["build/src/ov_SC02_028/ov_SC02_028_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_8018DAE0)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_8018DAE0)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:17", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_003/ov_SC03_003_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.315, "objects": ["build/src/ov_SC03_003/ov_SC03_003_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80181960)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80181960)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:18", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC02_041/ov_SC02_041_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.342, "objects": ["build/src/ov_SC02_041/ov_SC02_041_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80187468)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80187468)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:18", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_002/ov_SC03_002_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.314, "objects": ["build/src/ov_SC03_002/ov_SC03_002_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80187B98)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80187B98)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:19", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_012/ov_SC03_012_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.342, "objects": ["build/src/ov_SC03_012/ov_SC03_012_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_801807E4)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_801807E4)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:20", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_001/ov_SC03_001_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.308, "objects": ["build/src/ov_SC03_001/ov_SC03_001_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_8018FBA8)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_8018FBA8)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:20", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_007/ov_SC03_007_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.349, "objects": ["build/src/ov_SC03_007/ov_SC03_007_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80189A74)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80189A74)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:21", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_006/ov_SC03_006_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.363, "objects": ["build/src/ov_SC03_006/ov_SC03_006_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_8018EC7C)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_8018EC7C)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:22", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_011/ov_SC03_011_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.336, "objects": ["build/src/ov_SC03_011/ov_SC03_011_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80183904)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80183904)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:23", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_010/ov_SC03_010_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.356, "objects": ["build/src/ov_SC03_010/ov_SC03_010_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80182594)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80182594)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:24", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_023/ov_SC03_023_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.343, "objects": ["build/src/ov_SC03_023/ov_SC03_023_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80181584)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80181584)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:25", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_013/ov_SC03_013_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.368, "objects": ["build/src/ov_SC03_013/ov_SC03_013_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_801835CC)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_801835CC)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:25", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_028/ov_SC03_028_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.411, "objects": ["build/src/ov_SC03_028/ov_SC03_028_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_8018E074)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_8018E074)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:26", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_024/ov_SC03_024_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.372, "objects": ["build/src/ov_SC03_024/ov_SC03_024_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_801895A8)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_801895A8)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:27", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_014/ov_SC03_014_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.726, "objects": ["build/src/ov_SC03_014/ov_SC03_014_jr_8015C32C.o", "build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_8018DC08)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_8018DC08)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:27", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_031/ov_SC03_031_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.37, "objects": ["build/src/ov_SC03_031/ov_SC03_031_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80184A04)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80184A04)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:28", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_089/ov_SC03_089_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.366, "objects": ["build/src/ov_SC03_089/ov_SC03_089_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_8018BD00)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_8018BD00)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:29", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_091/ov_SC03_091_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.323, "objects": ["build/src/ov_SC03_091/ov_SC03_091_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_8018EFCC)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_8018EFCC)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:30", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_093/ov_SC03_093_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.348, "objects": ["build/src/ov_SC03_093/ov_SC03_093_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80188574)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80188574)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:31", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_090/ov_SC03_090_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.322, "objects": ["build/src/ov_SC03_090/ov_SC03_090_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_8018E124)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_8018E124)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:31", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_030/ov_SC03_030_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.314, "objects": ["build/src/ov_SC03_030/ov_SC03_030_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_801844E8)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_801844E8)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:32", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_097/ov_SC03_097_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.307, "objects": ["build/src/ov_SC03_097/ov_SC03_097_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80188530)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80188530)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:32", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_029/ov_SC03_029_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.313, "objects": ["build/src/ov_SC03_029/ov_SC03_029_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80189EAC)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80189EAC)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:33", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_094/ov_SC03_094_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.31, "objects": ["build/src/ov_SC03_094/ov_SC03_094_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80189F70)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80189F70)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:33", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_095/ov_SC03_095_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.33, "objects": ["build/src/ov_SC03_095/ov_SC03_095_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_801835D0)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_801835D0)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:34", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_096/ov_SC03_096_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.301, "objects": ["build/src/ov_SC03_096/ov_SC03_096_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80183150)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80183150)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:34", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_092/ov_SC03_092_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.316, "objects": ["build/src/ov_SC03_092/ov_SC03_092_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_8018739C)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_8018739C)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:35", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_098/ov_SC03_098_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.312, "objects": ["build/src/ov_SC03_098/ov_SC03_098_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_801879BC)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_801879BC)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:35", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_100/ov_SC03_100_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.313, "objects": ["build/src/ov_SC03_100/ov_SC03_100_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80186F88)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80186F88)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:36", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_099/ov_SC03_099_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.315, "objects": ["build/src/ov_SC03_099/ov_SC03_099_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80185ABC)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80185ABC)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:36", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_103/ov_SC03_103_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.307, "objects": ["build/src/ov_SC03_103/ov_SC03_103_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_801867CC)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_801867CC)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:37", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_101/ov_SC03_101_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.318, "objects": ["build/src/ov_SC03_101/ov_SC03_101_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80185F64)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80185F64)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:37", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_102/ov_SC03_102_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.323, "objects": ["build/src/ov_SC03_102/ov_SC03_102_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_8018881C)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_8018881C)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:38", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_104/ov_SC03_104_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.33, "objects": ["build/src/ov_SC03_104/ov_SC03_104_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_8018D35C)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_8018D35C)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:38", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_111/ov_SC03_111_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.333, "objects": ["build/src/ov_SC03_111/ov_SC03_111_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80186FBC)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80186FBC)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:39", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_108/ov_SC03_108_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.352, "objects": ["build/src/ov_SC03_108/ov_SC03_108_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_8018333C)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_8018333C)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:39", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_110/ov_SC03_110_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.383, "objects": ["build/src/ov_SC03_110/ov_SC03_110_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80184408)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80184408)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:40", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_109/ov_SC03_109_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.39, "objects": ["build/src/ov_SC03_109/ov_SC03_109_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_801809E8)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_801809E8)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:41", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_105/ov_SC03_105_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.406, "objects": ["build/src/ov_SC03_105/ov_SC03_105_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_8018C9E4)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_8018C9E4)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:41", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_112/ov_SC03_112_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.37, "objects": ["build/src/ov_SC03_112/ov_SC03_112_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80187DC4)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80187DC4)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:42", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_114/ov_SC03_114_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.421, "objects": ["build/src/ov_SC03_114/ov_SC03_114_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_801810DC)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_801810DC)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:42", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_115/ov_SC03_115_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.432, "objects": ["build/src/ov_SC03_115/ov_SC03_115_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80182B48)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80182B48)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:43", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_113/ov_SC03_113_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.375, "objects": ["build/src/ov_SC03_113/ov_SC03_113_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80185474)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80185474)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:44", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_117/ov_SC03_117_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.358, "objects": ["build/src/ov_SC03_117/ov_SC03_117_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80186F58)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80186F58)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:44", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_125/ov_SC03_125_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.372, "objects": ["build/src/ov_SC03_125/ov_SC03_125_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_8018641C)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_8018641C)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:45", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_121/ov_SC03_121_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.378, "objects": ["build/src/ov_SC03_121/ov_SC03_121_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80184820)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80184820)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:45", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_116/ov_SC03_116_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.368, "objects": ["build/src/ov_SC03_116/ov_SC03_116_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80184F4C)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80184F4C)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:46", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_000/ov_SC04_000_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.351, "objects": ["build/src/ov_SC04_000/ov_SC04_000_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80185920)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80185920)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:47", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_124/ov_SC03_124_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.351, "objects": ["build/src/ov_SC03_124/ov_SC03_124_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_8018D24C)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_8018D24C)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:47", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_002/ov_SC04_002_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.358, "objects": ["build/src/ov_SC04_002/ov_SC04_002_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_8018AA8C)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_8018AA8C)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:48", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_003/ov_SC04_003_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.374, "objects": ["build/src/ov_SC04_003/ov_SC04_003_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80184828)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80184828)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:49", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC03_118/ov_SC03_118_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.733, "objects": ["build/src/ov_SC03_118/ov_SC03_118_jr_8015C32C.o", "build/src/ov_SC03_119/ov_SC03_119_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_8018C004)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_8018C004)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:49", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_004/ov_SC04_004_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.344, "objects": ["build/src/ov_SC04_004/ov_SC04_004_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80186D5C)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80186D5C)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:50", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_009/ov_SC04_009_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.308, "objects": ["build/src/ov_SC04_009/ov_SC04_009_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_8018118C)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_8018118C)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:50", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_005/ov_SC04_005_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.321, "objects": ["build/src/ov_SC04_005/ov_SC04_005_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_8018A190)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_8018A190)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:51", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_007/ov_SC04_007_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.321, "objects": ["build/src/ov_SC04_007/ov_SC04_007_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80188228)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80188228)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:51", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_016/ov_SC04_016_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.306, "objects": ["build/src/ov_SC04_016/ov_SC04_016_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80182698)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80182698)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:52", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_012/ov_SC04_012_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.339, "objects": ["build/src/ov_SC04_012/ov_SC04_012_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80180C9C)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80180C9C)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:52", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_010/ov_SC04_010_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.326, "objects": ["build/src/ov_SC04_010/ov_SC04_010_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80180838)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80180838)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:53", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_006/ov_SC04_006_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.33, "objects": ["build/src/ov_SC04_006/ov_SC04_006_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80182270)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80182270)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:53", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_015/ov_SC04_015_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.317, "objects": ["build/src/ov_SC04_015/ov_SC04_015_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80186BD4)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80186BD4)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:54", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_020/ov_SC04_020_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.301, "objects": ["build/src/ov_SC04_020/ov_SC04_020_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_801859E8)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_801859E8)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:54", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_001/ov_SC05_001_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.307, "objects": ["build/src/ov_SC05_001/ov_SC05_001_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80188104)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80188104)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:55", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_000/ov_SC05_000_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.33, "objects": ["build/src/ov_SC05_000/ov_SC05_000_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80180928)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80180928)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:55", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_006/ov_SC05_006_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.335, "objects": ["build/src/ov_SC05_006/ov_SC05_006_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80181AFC)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80181AFC)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:56", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_007/ov_SC05_007_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.313, "objects": ["build/src/ov_SC05_007/ov_SC05_007_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_801830F8)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_801830F8)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:56", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_010/ov_SC05_010_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.338, "objects": ["build/src/ov_SC05_010/ov_SC05_010_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_8018B03C)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_8018B03C)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:57", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_005/ov_SC05_005_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.329, "objects": ["build/src/ov_SC05_005/ov_SC05_005_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80184ADC)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80184ADC)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:57", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_002/ov_SC05_002_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.333, "objects": ["build/src/ov_SC05_002/ov_SC05_002_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_801828C4)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_801828C4)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:58", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC04_018/ov_SC04_018_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.615, "objects": ["build/src/ov_SC04_018/ov_SC04_018_jr_8015C32C.o", "build/src/ov_SC04_019/ov_SC04_019_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_8018F8B0)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_8018F8B0)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:58", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_008/ov_SC05_008_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.321, "objects": ["build/src/ov_SC05_008/ov_SC05_008_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80185050)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80185050)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:59", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_003/ov_SC05_003_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.326, "objects": ["build/src/ov_SC05_003/ov_SC05_003_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80184BFC)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80184BFC)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:44:59", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_004/ov_SC05_004_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.302, "objects": ["build/src/ov_SC05_004/ov_SC05_004_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80183D08)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80183D08)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:45:00", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_011/ov_SC05_011_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.321, "objects": ["build/src/ov_SC05_011/ov_SC05_011_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_801803B4)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_801803B4)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:45:00", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_017/ov_SC05_017_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.323, "objects": ["build/src/ov_SC05_017/ov_SC05_017_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_8018F874)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_8018F874)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:45:01", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC05_018/ov_SC05_018_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.306, "objects": ["build/src/ov_SC05_018/ov_SC05_018_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80188FD0)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80188FD0)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:45:01", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_006/ov_SC06_006_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.304, "objects": ["build/src/ov_SC06_006/ov_SC06_006_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80184448)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80184448)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:45:02", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_000/ov_SC06_000_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.322, "objects": ["build/src/ov_SC06_000/ov_SC06_000_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_8018A924)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_8018A924)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:45:02", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_010/ov_SC06_010_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.306, "objects": ["build/src/ov_SC06_010/ov_SC06_010_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_8018908C)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_8018908C)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:45:03", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_008/ov_SC06_008_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.315, "objects": ["build/src/ov_SC06_008/ov_SC06_008_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80187EB0)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80187EB0)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:45:03", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_016/ov_SC06_016_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.312, "objects": ["build/src/ov_SC06_016/ov_SC06_016_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80187534)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80187534)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:45:04", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_013/ov_SC06_013_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.318, "objects": ["build/src/ov_SC06_013/ov_SC06_013_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80181268)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80181268)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:45:04", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_014/ov_SC06_014_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.326, "objects": ["build/src/ov_SC06_014/ov_SC06_014_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_801825CC)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_801825CC)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:45:05", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_011/ov_SC06_011_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.334, "objects": ["build/src/ov_SC06_011/ov_SC06_011_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80182AEC)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80182AEC)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:45:05", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_015/ov_SC06_015_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.314, "objects": ["build/src/ov_SC06_015/ov_SC06_015_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80181124)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80181124)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:45:06", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_018/ov_SC06_018_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.381, "objects": ["build/src/ov_SC06_018/ov_SC06_018_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80195C70)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80195C70)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:45:06", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_020/ov_SC06_020_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.323, "objects": ["build/src/ov_SC06_020/ov_SC06_020_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_801876F8)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus3)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_801876F8)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:45:07", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC07_000/ov_SC07_000_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.377, "objects": ["build/src/ov_SC07_000/ov_SC07_000_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80184D18)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus4)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80184D18)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:45:08", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_027/ov_SC06_027_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.362, "objects": ["build/src/ov_SC06_027/ov_SC06_027_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80180670)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus4)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80180670)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:45:08", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_024/ov_SC06_024_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.38, "objects": ["build/src/ov_SC06_024/ov_SC06_024_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80191E8C)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus4)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80191E8C)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:45:09", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_029/ov_SC06_029_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.416, "objects": ["build/src/ov_SC06_029/ov_SC06_029_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_8018EC04)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus4)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_8018EC04)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:45:10", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_030/ov_SC06_030_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.375, "objects": ["build/src/ov_SC06_030/ov_SC06_030_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_801844F4)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus4)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_801844F4)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:45:10", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_032/ov_SC06_032_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.395, "objects": ["build/src/ov_SC06_032/ov_SC06_032_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_801959C0)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus4)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_801959C0)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:45:11", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_033/ov_SC06_033_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.318, "objects": ["build/src/ov_SC06_033/ov_SC06_033_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80193ED0)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus4)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80193ED0)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:45:11", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_025/ov_SC06_025_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.328, "objects": ["build/src/ov_SC06_025/ov_SC06_025_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80187330)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus4)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80187330)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:45:12", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC06_022/ov_SC06_022_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.312, "objects": ["build/src/ov_SC06_022/ov_SC06_022_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_8018F9B4)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus4)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_8018F9B4)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:45:12", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC07_001/ov_SC07_001_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.389, "objects": ["build/src/ov_SC07_001/ov_SC07_001_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80183BC8)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus4)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80183BC8)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:45:13", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC07_002/ov_SC07_002_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.362, "objects": ["build/src/ov_SC07_002/ov_SC07_002_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80188E84)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus4)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80188E84)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:45:14", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC07_008/ov_SC07_008_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.371, "objects": ["build/src/ov_SC07_008/ov_SC07_008_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_8017F99C)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus4)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_8017F99C)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:45:14", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/ov_SC07_009/ov_SC07_009_jr_8015C32C.c", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": false, "includers": 0, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.407, "objects": ["build/src/ov_SC07_009/ov_SC07_009_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80180440)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus4)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80180440)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:45:15", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/shared/ov/func_8015FBE0__dd2ea6e8.h", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": true, "includers": 3, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 3, "seconds": 1.083, "objects": ["build/src/ov_SC03_126/ov_SC03_126_jr_8015C32C.o", "build/src/ov_SC04_021/ov_SC04_021_jr_8015C32C.o", "build/src/ov_SC05_019/ov_SC05_019_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80181914)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B headers2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80181914)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} +{"ts": "2026-09-10 10:45:16", "label": "a11p", "rung": "E", "calib": {"head": "c6b380fcd", "stamp": "b44c5a8a3423"}, "tu": "src/shared/ov/func_8015FBE0__7e0b6b06.h", "fn": "func_8015FBE0", "addr": 2148924384, "aliases": null, "header": true, "includers": 2, "nhash_before": "806711e72d8e45f891a2d54c469e39993aec5c41", "nhash_after": "f4d8e573ce47e804aaf66137ba1b1d76191a4b59", "source": "propagate:src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c:func_8015FBE0", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.627, "objects": ["build/src/ov_SC04_008/ov_SC04_008_jr_8015C32C.o", "build/src/ov_SC05_009/ov_SC05_009_jr_8015C32C.o"], "before_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)())D_80181160)[*(u16 *)param_1]();\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B headers2)\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n", "after_text": "void func_8015FBE0(s32 *param_1)\n{\n\n extern u8 D_800B9A17;\n if (param_1[0x61] < 0) {\n ((void (**)(s32 *))D_80181160)[*(u16 *)param_1](param_1);\n ((void (*)(s32 *, s16))func_80147078)(param_1, 0);\n ((void (*)(s32 *))func_80159B70)(param_1);\n } else {\n D_80078EC1 = 0;\n ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);\n ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);\n ((void (*)(s32, s32 *, s32, s32, s32, s32, s32))func_80146A6C)(0x16, param_1, 0, 0, 0, 0, 0);\n func_80147324(0x44F);\n ((void (*)(s32 *))func_801553A8)(param_1);\n ((void (*)(s32 *))func_801553C0)(param_1);\n D_801270C0 = 2;\n D_800B9A17 = 0;\n ((void (*)(s32 *))func_80146CA0)(param_1);\n }\n}\n"} diff --git a/docs/lever-progress.tsv b/docs/lever-progress.tsv index 93ecfca29..f411db211 100644 --- a/docs/lever-progress.tsv +++ b/docs/lever-progress.tsv @@ -19,3 +19,4 @@ date milestone head sites_AB pins asm bodies_AB distinct_AB marked unmarked gte_ 2026-09-10 S102 T7 a7 — func_801287B8: a truncated local extern was faking a pin; the missing call argument restored through a function-pointer cast (127 bodies) bb0e95c7c 29013 16862 12151 8878 1279 29013 0 462 314 1590 50 7428 445 76 2026-09-10 S102 T7 a4 — func_8016C49C: one do-while on the function's LAST statement doubles a loop-note reference weight and flips allocno_compare (126 bodies) 9f5b22176 28887 16736 12151 8752 1278 28887 0 462 314 1590 50 7428 445 76 2026-09-10 S102 T7 burst — a8/a12/a18/a19 banked (132+118+119+134 bodies): the call-arity class twice, a MEM_IN_STRUCT_P alias flip, and a sequence-point split fb6c857f7 27984 15965 12019 8249 1275 27984 0 462 314 1590 50 7428 445 76 +2026-09-10 S102 T7 burst — a5/a9/a11/a16/a25 banked; the MISSING CALL ARGUMENT class confirmed six times independently (m2c dropped arguments at unprototyped and indirect call sites) c6b380fcd 26714 15324 11390 7612 1271 26714 0 462 314 1590 50 7428 445 76 diff --git a/docs/levers.md b/docs/levers.md index a8647b8b2..7ac67e240 100644 --- a/docs/levers.md +++ b/docs/levers.md @@ -65,6 +65,7 @@ counted, not marked). E, F and G belong to the canonical type layer and are the | 2026-09-10 | S102 T7 a7 — func_801287B8: a truncated local extern was faking a pin; the missing call argument restored through a function-pointer cast (127 bodies) | 16862 | 12151 | **29013** | 8878 | 1279 | 462 | 314 | 1590 | 50 | 7428 | 445 | 76 | `bb0e95c7c` | | 2026-09-10 | S102 T7 a4 — func_8016C49C: one do-while on the function's LAST statement doubles a loop-note reference weight and flips allocno_compare (126 bodies) | 16736 | 12151 | **28887** | 8752 | 1278 | 462 | 314 | 1590 | 50 | 7428 | 445 | 76 | `9f5b22176` | | 2026-09-10 | S102 T7 burst — a8/a12/a18/a19 banked (132+118+119+134 bodies): the call-arity class twice, a MEM_IN_STRUCT_P alias flip, and a sequence-point split | 15965 | 12019 | **27984** | 8249 | 1275 | 462 | 314 | 1590 | 50 | 7428 | 445 | 76 | `fb6c857f7` | +| 2026-09-10 | S102 T7 burst — a5/a9/a11/a16/a25 banked; the MISSING CALL ARGUMENT class confirmed six times independently (m2c dropped arguments at unprototyped and indirect call sites) | 15324 | 11390 | **26714** | 7612 | 1271 | 462 | 314 | 1590 | 50 | 7428 | 445 | 76 | `c6b380fcd` | ### The campaign — every batch, from the ledger (derived on every render) @@ -132,7 +133,17 @@ counted, not marked). E, F and G belong to the canonical type layer and are the | `a12p` | 2026-09-10 | E | 0 | 0 | 0 | 117 | 117 | | `a19p` | 2026-09-10 | E | 0 | 0 | 0 | 399 | 133 | | `a18p` | 2026-09-10 | E | 0 | 0 | 0 | 124 | 124 | -| **total** | | | **17,119** | **20,778** | **283** | **6,269** | **4,472** | +| `a5` | 2026-09-10 | E | 0 | 0 | 0 | 4 | 1 | +| `a5p` | 2026-09-10 | E | 0 | 0 | 0 | 500 | 125 | +| `a9` | 2026-09-10 | E | 0 | 0 | 0 | 2 | 1 | +| `a9p` | 2026-09-10 | E | 0 | 0 | 0 | 256 | 128 | +| `a25` | 2026-09-10 | E | 0 | 0 | 0 | 2 | 1 | +| `a16` | 2026-09-10 | E | 0 | 0 | 0 | 1 | 1 | +| `a25p` | 2026-09-10 | E | 0 | 0 | 0 | 250 | 125 | +| `a16p` | 2026-09-10 | E | 0 | 0 | 0 | 130 | 130 | +| `a11` | 2026-09-10 | E | 0 | 0 | 0 | 1 | 1 | +| `a11p` | 2026-09-10 | E | 0 | 0 | 0 | 124 | 124 | +| **total** | | | **17,119** | **20,778** | **283** | **7,539** | **5,109** | *Generated by `tools/lever_progress.py --render` from `.run/P36/census/lever_census.json` and `.run/P36/delever/ledger.jsonl`; the series lives in `docs/lever-progress.tsv` (R75: published numbers are generated, never typed).* diff --git a/src/ov_MAIN_012/ov_MAIN_012_jr_8013F350.c b/src/ov_MAIN_012/ov_MAIN_012_jr_8013F350.c index 3f87ce57f..b2c08843f 100644 --- a/src/ov_MAIN_012/ov_MAIN_012_jr_8013F350.c +++ b/src/ov_MAIN_012/ov_MAIN_012_jr_8013F350.c @@ -2807,13 +2807,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8017FCDC[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus4) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8017FCDC[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_MAIN_012/ov_MAIN_012_jr_8016AE5C.c b/src/ov_MAIN_012/ov_MAIN_012_jr_8016AE5C.c index 56ac7e7cb..18a062383 100644 --- a/src/ov_MAIN_012/ov_MAIN_012_jr_8016AE5C.c +++ b/src/ov_MAIN_012/ov_MAIN_012_jr_8016AE5C.c @@ -2816,12 +2816,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2834,16 +2834,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_801814E4)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC01_000/ov_SC01_000_after.c b/src/ov_SC01_000/ov_SC01_000_after.c index b2c2b2908..284c8fee2 100644 --- a/src/ov_SC01_000/ov_SC01_000_after.c +++ b/src/ov_SC01_000/ov_SC01_000_after.c @@ -1576,7 +1576,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1612,7 +1612,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1636,7 +1635,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1665,7 +1663,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC01_000/ov_SC01_000_jr_80135D20.c b/src/ov_SC01_000/ov_SC01_000_jr_80135D20.c index 570be4da9..5a430d11b 100644 --- a/src/ov_SC01_000/ov_SC01_000_jr_80135D20.c +++ b/src/ov_SC01_000/ov_SC01_000_jr_80135D20.c @@ -939,11 +939,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -952,16 +952,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8017F198)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8017F198)[2]; d = dx; denom = -(*(s16 **)&D_8017F1A4)[2]; } else { denom = (*(s16 **)&D_8017F1A4)[2]; - d = (*(s16 **)&D_8017F198)[2] - (s16) arg2; + d = (*(s16 **)&D_8017F198)[2] - a2v; dx = -d; } n = -d; @@ -987,13 +987,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8017F1A0[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8017F1A0[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC01_000/ov_SC01_000_jr_80140608.c b/src/ov_SC01_000/ov_SC01_000_jr_80140608.c index 1fc579b4b..6d1f4caea 100644 --- a/src/ov_SC01_000/ov_SC01_000_jr_80140608.c +++ b/src/ov_SC01_000/ov_SC01_000_jr_80140608.c @@ -2102,13 +2102,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80180564[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80180564[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC01_000/ov_SC01_000_jr_8015C32C.c b/src/ov_SC01_000/ov_SC01_000_jr_8015C32C.c index bccc923fc..1b539805d 100644 --- a/src/ov_SC01_000/ov_SC01_000_jr_8015C32C.c +++ b/src/ov_SC01_000/ov_SC01_000_jr_8015C32C.c @@ -2806,11 +2806,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_801812A4)[*(u16 *)param_1](); + ((void (**)(s32 *))D_801812A4)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC01_000/ov_SC01_000_jr_8016AB6C.c b/src/ov_SC01_000/ov_SC01_000_jr_8016AB6C.c index 72a6ec775..0a7997076 100644 --- a/src/ov_SC01_000/ov_SC01_000_jr_8016AB6C.c +++ b/src/ov_SC01_000/ov_SC01_000_jr_8016AB6C.c @@ -2037,12 +2037,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2055,16 +2055,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80181D6C)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC01_001/ov_SC01_001_after.c b/src/ov_SC01_001/ov_SC01_001_after.c index d3ea1a31e..555f303a4 100644 --- a/src/ov_SC01_001/ov_SC01_001_after.c +++ b/src/ov_SC01_001/ov_SC01_001_after.c @@ -1576,7 +1576,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1612,7 +1612,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1636,7 +1635,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1665,7 +1663,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC01_001/ov_SC01_001_jr_80135D20.c b/src/ov_SC01_001/ov_SC01_001_jr_80135D20.c index f64e179b2..5d3417240 100644 --- a/src/ov_SC01_001/ov_SC01_001_jr_80135D20.c +++ b/src/ov_SC01_001/ov_SC01_001_jr_80135D20.c @@ -938,11 +938,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -951,16 +951,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80183DE8)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80183DE8)[2]; d = dx; denom = -(*(s16 **)&D_80183DF4)[2]; } else { denom = (*(s16 **)&D_80183DF4)[2]; - d = (*(s16 **)&D_80183DE8)[2] - (s16) arg2; + d = (*(s16 **)&D_80183DE8)[2] - a2v; dx = -d; } n = -d; @@ -986,13 +986,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80183DF0[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80183DF0[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC01_001/ov_SC01_001_jr_80140608.c b/src/ov_SC01_001/ov_SC01_001_jr_80140608.c index 766bdb42f..763514025 100644 --- a/src/ov_SC01_001/ov_SC01_001_jr_80140608.c +++ b/src/ov_SC01_001/ov_SC01_001_jr_80140608.c @@ -2113,13 +2113,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_801851B4[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_801851B4[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC01_001/ov_SC01_001_jr_8015C32C.c b/src/ov_SC01_001/ov_SC01_001_jr_8015C32C.c index f1c1672c2..da3611045 100644 --- a/src/ov_SC01_001/ov_SC01_001_jr_8015C32C.c +++ b/src/ov_SC01_001/ov_SC01_001_jr_8015C32C.c @@ -2803,11 +2803,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80185EF4)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80185EF4)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC01_001/ov_SC01_001_jr_8016AB6C.c b/src/ov_SC01_001/ov_SC01_001_jr_8016AB6C.c index 5d5523ceb..25e7733a7 100644 --- a/src/ov_SC01_001/ov_SC01_001_jr_8016AB6C.c +++ b/src/ov_SC01_001/ov_SC01_001_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_801869BC)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC01_004/ov_SC01_004_after.c b/src/ov_SC01_004/ov_SC01_004_after.c index 64cc2a7e4..2ddd6f71e 100644 --- a/src/ov_SC01_004/ov_SC01_004_after.c +++ b/src/ov_SC01_004/ov_SC01_004_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC01_004/ov_SC01_004_jr_80135D20.c b/src/ov_SC01_004/ov_SC01_004_jr_80135D20.c index d76852252..de50ba6a8 100644 --- a/src/ov_SC01_004/ov_SC01_004_jr_80135D20.c +++ b/src/ov_SC01_004/ov_SC01_004_jr_80135D20.c @@ -938,11 +938,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -951,16 +951,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8017F7AC)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8017F7AC)[2]; d = dx; denom = -(*(s16 **)&D_8017F7B8)[2]; } else { denom = (*(s16 **)&D_8017F7B8)[2]; - d = (*(s16 **)&D_8017F7AC)[2] - (s16) arg2; + d = (*(s16 **)&D_8017F7AC)[2] - a2v; dx = -d; } n = -d; @@ -986,13 +986,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8017F7B4[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8017F7B4[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC01_004/ov_SC01_004_jr_80140608.c b/src/ov_SC01_004/ov_SC01_004_jr_80140608.c index adad82d29..49bec5989 100644 --- a/src/ov_SC01_004/ov_SC01_004_jr_80140608.c +++ b/src/ov_SC01_004/ov_SC01_004_jr_80140608.c @@ -2097,13 +2097,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80180B78[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80180B78[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC01_004/ov_SC01_004_jr_8015C32C.c b/src/ov_SC01_004/ov_SC01_004_jr_8015C32C.c index 134bdba34..744a364fa 100644 --- a/src/ov_SC01_004/ov_SC01_004_jr_8015C32C.c +++ b/src/ov_SC01_004/ov_SC01_004_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_801818B8)[*(u16 *)param_1](); + ((void (**)(s32 *))D_801818B8)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC01_004/ov_SC01_004_jr_8016AB6C.c b/src/ov_SC01_004/ov_SC01_004_jr_8016AB6C.c index dde2671e2..de19a370c 100644 --- a/src/ov_SC01_004/ov_SC01_004_jr_8016AB6C.c +++ b/src/ov_SC01_004/ov_SC01_004_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80182380)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC01_005/ov_SC01_005_after.c b/src/ov_SC01_005/ov_SC01_005_after.c index 6cd94382f..27ac83653 100644 --- a/src/ov_SC01_005/ov_SC01_005_after.c +++ b/src/ov_SC01_005/ov_SC01_005_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC01_005/ov_SC01_005_jr_80135D20.c b/src/ov_SC01_005/ov_SC01_005_jr_80135D20.c index a767b3359..abdcbda66 100644 --- a/src/ov_SC01_005/ov_SC01_005_jr_80135D20.c +++ b/src/ov_SC01_005/ov_SC01_005_jr_80135D20.c @@ -938,11 +938,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -951,16 +951,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80182940)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80182940)[2]; d = dx; denom = -(*(s16 **)&D_8018294C)[2]; } else { denom = (*(s16 **)&D_8018294C)[2]; - d = (*(s16 **)&D_80182940)[2] - (s16) arg2; + d = (*(s16 **)&D_80182940)[2] - a2v; dx = -d; } n = -d; @@ -986,13 +986,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80182948[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80182948[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC01_005/ov_SC01_005_jr_80140608.c b/src/ov_SC01_005/ov_SC01_005_jr_80140608.c index cbe65d02d..ca58813e3 100644 --- a/src/ov_SC01_005/ov_SC01_005_jr_80140608.c +++ b/src/ov_SC01_005/ov_SC01_005_jr_80140608.c @@ -2097,13 +2097,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80183D0C[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80183D0C[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC01_005/ov_SC01_005_jr_8015C32C.c b/src/ov_SC01_005/ov_SC01_005_jr_8015C32C.c index b902ba9fb..39cb563c8 100644 --- a/src/ov_SC01_005/ov_SC01_005_jr_8015C32C.c +++ b/src/ov_SC01_005/ov_SC01_005_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80184A4C)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80184A4C)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC01_005/ov_SC01_005_jr_8016AB6C.c b/src/ov_SC01_005/ov_SC01_005_jr_8016AB6C.c index b49dfa831..86c93a223 100644 --- a/src/ov_SC01_005/ov_SC01_005_jr_8016AB6C.c +++ b/src/ov_SC01_005/ov_SC01_005_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80185514)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC01_008/ov_SC01_008_after.c b/src/ov_SC01_008/ov_SC01_008_after.c index e71c4ea90..59ccc1183 100644 --- a/src/ov_SC01_008/ov_SC01_008_after.c +++ b/src/ov_SC01_008/ov_SC01_008_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC01_008/ov_SC01_008_jr_80135D20.c b/src/ov_SC01_008/ov_SC01_008_jr_80135D20.c index cf04b5f00..eaf902910 100644 --- a/src/ov_SC01_008/ov_SC01_008_jr_80135D20.c +++ b/src/ov_SC01_008/ov_SC01_008_jr_80135D20.c @@ -938,11 +938,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -951,16 +951,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8017FD20)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8017FD20)[2]; d = dx; denom = -(*(s16 **)&D_8017FD2C)[2]; } else { denom = (*(s16 **)&D_8017FD2C)[2]; - d = (*(s16 **)&D_8017FD20)[2] - (s16) arg2; + d = (*(s16 **)&D_8017FD20)[2] - a2v; dx = -d; } n = -d; @@ -986,13 +986,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8017FD28[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8017FD28[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC01_008/ov_SC01_008_jr_80140608.c b/src/ov_SC01_008/ov_SC01_008_jr_80140608.c index 884630b6c..83f67c215 100644 --- a/src/ov_SC01_008/ov_SC01_008_jr_80140608.c +++ b/src/ov_SC01_008/ov_SC01_008_jr_80140608.c @@ -2097,13 +2097,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_801810EC[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_801810EC[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC01_008/ov_SC01_008_jr_8015C32C.c b/src/ov_SC01_008/ov_SC01_008_jr_8015C32C.c index d01b547f0..b37af0618 100644 --- a/src/ov_SC01_008/ov_SC01_008_jr_8015C32C.c +++ b/src/ov_SC01_008/ov_SC01_008_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80181E2C)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80181E2C)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC01_008/ov_SC01_008_jr_8016AB6C.c b/src/ov_SC01_008/ov_SC01_008_jr_8016AB6C.c index 14e8aaa02..0c7515a8c 100644 --- a/src/ov_SC01_008/ov_SC01_008_jr_8016AB6C.c +++ b/src/ov_SC01_008/ov_SC01_008_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_801828F4)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC01_009/ov_SC01_009_after.c b/src/ov_SC01_009/ov_SC01_009_after.c index 7d2c4c084..e5bfdc020 100644 --- a/src/ov_SC01_009/ov_SC01_009_after.c +++ b/src/ov_SC01_009/ov_SC01_009_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC01_009/ov_SC01_009_jr_80135D20.c b/src/ov_SC01_009/ov_SC01_009_jr_80135D20.c index b34ddbd06..0c0706663 100644 --- a/src/ov_SC01_009/ov_SC01_009_jr_80135D20.c +++ b/src/ov_SC01_009/ov_SC01_009_jr_80135D20.c @@ -938,11 +938,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -951,16 +951,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80182F08)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80182F08)[2]; d = dx; denom = -(*(s16 **)&D_80182F14)[2]; } else { denom = (*(s16 **)&D_80182F14)[2]; - d = (*(s16 **)&D_80182F08)[2] - (s16) arg2; + d = (*(s16 **)&D_80182F08)[2] - a2v; dx = -d; } n = -d; @@ -986,13 +986,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80182F10[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80182F10[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC01_009/ov_SC01_009_jr_80140608.c b/src/ov_SC01_009/ov_SC01_009_jr_80140608.c index 01cd60559..b9e6ae695 100644 --- a/src/ov_SC01_009/ov_SC01_009_jr_80140608.c +++ b/src/ov_SC01_009/ov_SC01_009_jr_80140608.c @@ -2097,13 +2097,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_801842D4[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_801842D4[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC01_009/ov_SC01_009_jr_8015C32C.c b/src/ov_SC01_009/ov_SC01_009_jr_8015C32C.c index 37ab236ec..2275dd386 100644 --- a/src/ov_SC01_009/ov_SC01_009_jr_8015C32C.c +++ b/src/ov_SC01_009/ov_SC01_009_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80185014)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80185014)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC01_009/ov_SC01_009_jr_8016AB6C.c b/src/ov_SC01_009/ov_SC01_009_jr_8016AB6C.c index 4f84a6340..a0dc3a263 100644 --- a/src/ov_SC01_009/ov_SC01_009_jr_8016AB6C.c +++ b/src/ov_SC01_009/ov_SC01_009_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80185ADC)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC01_074/ov_SC01_074_after.c b/src/ov_SC01_074/ov_SC01_074_after.c index 411210958..a18103292 100644 --- a/src/ov_SC01_074/ov_SC01_074_after.c +++ b/src/ov_SC01_074/ov_SC01_074_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC01_074/ov_SC01_074_jr_80135D20.c b/src/ov_SC01_074/ov_SC01_074_jr_80135D20.c index d216a1de3..9a043fe35 100644 --- a/src/ov_SC01_074/ov_SC01_074_jr_80135D20.c +++ b/src/ov_SC01_074/ov_SC01_074_jr_80135D20.c @@ -938,11 +938,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -951,16 +951,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8017EB88)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8017EB88)[2]; d = dx; denom = -(*(s16 **)&D_8017EB94)[2]; } else { denom = (*(s16 **)&D_8017EB94)[2]; - d = (*(s16 **)&D_8017EB88)[2] - (s16) arg2; + d = (*(s16 **)&D_8017EB88)[2] - a2v; dx = -d; } n = -d; @@ -986,13 +986,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8017EB90[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8017EB90[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC01_074/ov_SC01_074_jr_80140608.c b/src/ov_SC01_074/ov_SC01_074_jr_80140608.c index 7d44b68e4..6f8768985 100644 --- a/src/ov_SC01_074/ov_SC01_074_jr_80140608.c +++ b/src/ov_SC01_074/ov_SC01_074_jr_80140608.c @@ -2098,13 +2098,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8017FF54[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8017FF54[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC01_074/ov_SC01_074_jr_8015C32C.c b/src/ov_SC01_074/ov_SC01_074_jr_8015C32C.c index f0238fccd..62010568d 100644 --- a/src/ov_SC01_074/ov_SC01_074_jr_8015C32C.c +++ b/src/ov_SC01_074/ov_SC01_074_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80180C94)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80180C94)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC01_074/ov_SC01_074_jr_8016AB6C.c b/src/ov_SC01_074/ov_SC01_074_jr_8016AB6C.c index 7b9114b69..666d69bb2 100644 --- a/src/ov_SC01_074/ov_SC01_074_jr_8016AB6C.c +++ b/src/ov_SC01_074/ov_SC01_074_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8018175C)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC01_077/ov_SC01_077_jr_80135D20.c b/src/ov_SC01_077/ov_SC01_077_jr_80135D20.c index 910f8b85c..9ca981707 100644 --- a/src/ov_SC01_077/ov_SC01_077_jr_80135D20.c +++ b/src/ov_SC01_077/ov_SC01_077_jr_80135D20.c @@ -986,11 +986,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -999,16 +999,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_801870AC)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_801870AC)[2]; d = dx; denom = -(*(s16 **)&D_801870B8)[2]; } else { denom = (*(s16 **)&D_801870B8)[2]; - d = (*(s16 **)&D_801870AC)[2] - (s16) arg2; + d = (*(s16 **)&D_801870AC)[2] - a2v; dx = -d; } n = -d; @@ -1034,13 +1034,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_801870B4[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_801870B4[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC01_080/ov_SC01_080_after.c b/src/ov_SC01_080/ov_SC01_080_after.c index eb8a21f5e..11cc0b022 100644 --- a/src/ov_SC01_080/ov_SC01_080_after.c +++ b/src/ov_SC01_080/ov_SC01_080_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC01_080/ov_SC01_080_jr_80135D20.c b/src/ov_SC01_080/ov_SC01_080_jr_80135D20.c index 6e869c5c1..c3080c40a 100644 --- a/src/ov_SC01_080/ov_SC01_080_jr_80135D20.c +++ b/src/ov_SC01_080/ov_SC01_080_jr_80135D20.c @@ -938,11 +938,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -951,16 +951,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80183AE8)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80183AE8)[2]; d = dx; denom = -(*(s16 **)&D_80183AF4)[2]; } else { denom = (*(s16 **)&D_80183AF4)[2]; - d = (*(s16 **)&D_80183AE8)[2] - (s16) arg2; + d = (*(s16 **)&D_80183AE8)[2] - a2v; dx = -d; } n = -d; @@ -986,13 +986,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80183AF0[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80183AF0[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC01_080/ov_SC01_080_jr_80140608.c b/src/ov_SC01_080/ov_SC01_080_jr_80140608.c index 44c73193b..79e0c933e 100644 --- a/src/ov_SC01_080/ov_SC01_080_jr_80140608.c +++ b/src/ov_SC01_080/ov_SC01_080_jr_80140608.c @@ -2114,13 +2114,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80184EB4[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80184EB4[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC01_080/ov_SC01_080_jr_8015C32C.c b/src/ov_SC01_080/ov_SC01_080_jr_8015C32C.c index b9fd71799..1806fcf34 100644 --- a/src/ov_SC01_080/ov_SC01_080_jr_8015C32C.c +++ b/src/ov_SC01_080/ov_SC01_080_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80185BF4)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80185BF4)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC01_080/ov_SC01_080_jr_8016AB6C.c b/src/ov_SC01_080/ov_SC01_080_jr_8016AB6C.c index fcd349c4e..502ac9ec9 100644 --- a/src/ov_SC01_080/ov_SC01_080_jr_8016AB6C.c +++ b/src/ov_SC01_080/ov_SC01_080_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_801866BC)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC01_084/ov_SC01_084_after.c b/src/ov_SC01_084/ov_SC01_084_after.c index a0a2fedf9..aab2889e5 100644 --- a/src/ov_SC01_084/ov_SC01_084_after.c +++ b/src/ov_SC01_084/ov_SC01_084_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC01_084/ov_SC01_084_jr_80135D20.c b/src/ov_SC01_084/ov_SC01_084_jr_80135D20.c index fcdf7e5c6..fea2f84b1 100644 --- a/src/ov_SC01_084/ov_SC01_084_jr_80135D20.c +++ b/src/ov_SC01_084/ov_SC01_084_jr_80135D20.c @@ -938,11 +938,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -951,16 +951,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80186DDC)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80186DDC)[2]; d = dx; denom = -(*(s16 **)&D_80186DE8)[2]; } else { denom = (*(s16 **)&D_80186DE8)[2]; - d = (*(s16 **)&D_80186DDC)[2] - (s16) arg2; + d = (*(s16 **)&D_80186DDC)[2] - a2v; dx = -d; } n = -d; @@ -986,13 +986,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80186DE4[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80186DE4[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC01_084/ov_SC01_084_jr_80140608.c b/src/ov_SC01_084/ov_SC01_084_jr_80140608.c index 1c35cf3f5..6c57cf33b 100644 --- a/src/ov_SC01_084/ov_SC01_084_jr_80140608.c +++ b/src/ov_SC01_084/ov_SC01_084_jr_80140608.c @@ -2098,13 +2098,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_801881A8[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_801881A8[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC01_084/ov_SC01_084_jr_8015C32C.c b/src/ov_SC01_084/ov_SC01_084_jr_8015C32C.c index 18dc63006..4231a8406 100644 --- a/src/ov_SC01_084/ov_SC01_084_jr_8015C32C.c +++ b/src/ov_SC01_084/ov_SC01_084_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80188EE8)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80188EE8)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC01_084/ov_SC01_084_jr_8016AB6C.c b/src/ov_SC01_084/ov_SC01_084_jr_8016AB6C.c index f24de3146..ff4d87369 100644 --- a/src/ov_SC01_084/ov_SC01_084_jr_8016AB6C.c +++ b/src/ov_SC01_084/ov_SC01_084_jr_8016AB6C.c @@ -2036,12 +2036,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2054,16 +2054,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_801899B0)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC02_000/ov_SC02_000_after.c b/src/ov_SC02_000/ov_SC02_000_after.c index 0bb8523b7..9f45ab7bd 100644 --- a/src/ov_SC02_000/ov_SC02_000_after.c +++ b/src/ov_SC02_000/ov_SC02_000_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC02_000/ov_SC02_000_jr_80135D20.c b/src/ov_SC02_000/ov_SC02_000_jr_80135D20.c index d89de830d..a7de110a4 100644 --- a/src/ov_SC02_000/ov_SC02_000_jr_80135D20.c +++ b/src/ov_SC02_000/ov_SC02_000_jr_80135D20.c @@ -938,11 +938,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -951,16 +951,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8018B18C)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8018B18C)[2]; d = dx; denom = -(*(s16 **)&D_8018B198)[2]; } else { denom = (*(s16 **)&D_8018B198)[2]; - d = (*(s16 **)&D_8018B18C)[2] - (s16) arg2; + d = (*(s16 **)&D_8018B18C)[2] - a2v; dx = -d; } n = -d; @@ -986,13 +986,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8018B194[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8018B194[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC02_000/ov_SC02_000_jr_80140608.c b/src/ov_SC02_000/ov_SC02_000_jr_80140608.c index bed4852fb..a2bede374 100644 --- a/src/ov_SC02_000/ov_SC02_000_jr_80140608.c +++ b/src/ov_SC02_000/ov_SC02_000_jr_80140608.c @@ -2113,13 +2113,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8018C558[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8018C558[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC02_000/ov_SC02_000_jr_8015C32C.c b/src/ov_SC02_000/ov_SC02_000_jr_8015C32C.c index 8d9e18774..ae8571958 100644 --- a/src/ov_SC02_000/ov_SC02_000_jr_8015C32C.c +++ b/src/ov_SC02_000/ov_SC02_000_jr_8015C32C.c @@ -2803,11 +2803,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_8018D298)[*(u16 *)param_1](); + ((void (**)(s32 *))D_8018D298)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC02_000/ov_SC02_000_jr_8016AB6C.c b/src/ov_SC02_000/ov_SC02_000_jr_8016AB6C.c index dd2b63fb5..56a7f7e3b 100644 --- a/src/ov_SC02_000/ov_SC02_000_jr_8016AB6C.c +++ b/src/ov_SC02_000/ov_SC02_000_jr_8016AB6C.c @@ -2033,12 +2033,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2051,16 +2051,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8018DD60)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC02_004/ov_SC02_004_after.c b/src/ov_SC02_004/ov_SC02_004_after.c index e1ba34ceb..8e380e801 100644 --- a/src/ov_SC02_004/ov_SC02_004_after.c +++ b/src/ov_SC02_004/ov_SC02_004_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC02_004/ov_SC02_004_jr_80135D20.c b/src/ov_SC02_004/ov_SC02_004_jr_80135D20.c index d018945a1..9bff6c90b 100644 --- a/src/ov_SC02_004/ov_SC02_004_jr_80135D20.c +++ b/src/ov_SC02_004/ov_SC02_004_jr_80135D20.c @@ -938,11 +938,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -951,16 +951,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8017E26C)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8017E26C)[2]; d = dx; denom = -(*(s16 **)&D_8017E278)[2]; } else { denom = (*(s16 **)&D_8017E278)[2]; - d = (*(s16 **)&D_8017E26C)[2] - (s16) arg2; + d = (*(s16 **)&D_8017E26C)[2] - a2v; dx = -d; } n = -d; @@ -986,13 +986,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8017E274[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8017E274[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC02_004/ov_SC02_004_jr_80140608.c b/src/ov_SC02_004/ov_SC02_004_jr_80140608.c index 1f3a67ed7..80e57bd66 100644 --- a/src/ov_SC02_004/ov_SC02_004_jr_80140608.c +++ b/src/ov_SC02_004/ov_SC02_004_jr_80140608.c @@ -2098,13 +2098,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8017F638[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8017F638[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC02_004/ov_SC02_004_jr_8015C32C.c b/src/ov_SC02_004/ov_SC02_004_jr_8015C32C.c index 4a78c5363..ec0f79ecb 100644 --- a/src/ov_SC02_004/ov_SC02_004_jr_8015C32C.c +++ b/src/ov_SC02_004/ov_SC02_004_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80180378)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80180378)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC02_004/ov_SC02_004_jr_8016AB6C.c b/src/ov_SC02_004/ov_SC02_004_jr_8016AB6C.c index 0d7073569..a9e8cc6e6 100644 --- a/src/ov_SC02_004/ov_SC02_004_jr_8016AB6C.c +++ b/src/ov_SC02_004/ov_SC02_004_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80180E40)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC02_005/ov_SC02_005_after.c b/src/ov_SC02_005/ov_SC02_005_after.c index 6d738d6da..069c883d9 100644 --- a/src/ov_SC02_005/ov_SC02_005_after.c +++ b/src/ov_SC02_005/ov_SC02_005_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC02_005/ov_SC02_005_jr_80135D20.c b/src/ov_SC02_005/ov_SC02_005_jr_80135D20.c index bd7f94573..9227ea19f 100644 --- a/src/ov_SC02_005/ov_SC02_005_jr_80135D20.c +++ b/src/ov_SC02_005/ov_SC02_005_jr_80135D20.c @@ -938,11 +938,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -951,16 +951,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80190E70)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80190E70)[2]; d = dx; denom = -(*(s16 **)&D_80190E7C)[2]; } else { denom = (*(s16 **)&D_80190E7C)[2]; - d = (*(s16 **)&D_80190E70)[2] - (s16) arg2; + d = (*(s16 **)&D_80190E70)[2] - a2v; dx = -d; } n = -d; @@ -986,13 +986,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80190E78[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80190E78[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC02_005/ov_SC02_005_jr_80140608.c b/src/ov_SC02_005/ov_SC02_005_jr_80140608.c index 1c1a41bc4..c30c91108 100644 --- a/src/ov_SC02_005/ov_SC02_005_jr_80140608.c +++ b/src/ov_SC02_005/ov_SC02_005_jr_80140608.c @@ -2098,13 +2098,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8019223C[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8019223C[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC02_005/ov_SC02_005_jr_8015C32C.c b/src/ov_SC02_005/ov_SC02_005_jr_8015C32C.c index c9c61def0..1b8075522 100644 --- a/src/ov_SC02_005/ov_SC02_005_jr_8015C32C.c +++ b/src/ov_SC02_005/ov_SC02_005_jr_8015C32C.c @@ -2803,11 +2803,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80192F7C)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80192F7C)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC02_005/ov_SC02_005_jr_8016AB6C.c b/src/ov_SC02_005/ov_SC02_005_jr_8016AB6C.c index 691d48867..cb024f434 100644 --- a/src/ov_SC02_005/ov_SC02_005_jr_8016AB6C.c +++ b/src/ov_SC02_005/ov_SC02_005_jr_8016AB6C.c @@ -2037,12 +2037,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2055,16 +2055,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80193A44)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC02_011/ov_SC02_011_after.c b/src/ov_SC02_011/ov_SC02_011_after.c index a002c9fd3..45f50d285 100644 --- a/src/ov_SC02_011/ov_SC02_011_after.c +++ b/src/ov_SC02_011/ov_SC02_011_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC02_011/ov_SC02_011_jr_80135D20.c b/src/ov_SC02_011/ov_SC02_011_jr_80135D20.c index dadc247fc..bd2564e42 100644 --- a/src/ov_SC02_011/ov_SC02_011_jr_80135D20.c +++ b/src/ov_SC02_011/ov_SC02_011_jr_80135D20.c @@ -938,11 +938,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -951,16 +951,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_801912C0)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_801912C0)[2]; d = dx; denom = -(*(s16 **)&D_801912CC)[2]; } else { denom = (*(s16 **)&D_801912CC)[2]; - d = (*(s16 **)&D_801912C0)[2] - (s16) arg2; + d = (*(s16 **)&D_801912C0)[2] - a2v; dx = -d; } n = -d; @@ -986,13 +986,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_801912C8[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_801912C8[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC02_011/ov_SC02_011_jr_80140608.c b/src/ov_SC02_011/ov_SC02_011_jr_80140608.c index 2e68fcc3d..a72106a87 100644 --- a/src/ov_SC02_011/ov_SC02_011_jr_80140608.c +++ b/src/ov_SC02_011/ov_SC02_011_jr_80140608.c @@ -2114,13 +2114,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8019268C[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8019268C[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC02_011/ov_SC02_011_jr_8015C32C.c b/src/ov_SC02_011/ov_SC02_011_jr_8015C32C.c index 9294d37c3..290dd7099 100644 --- a/src/ov_SC02_011/ov_SC02_011_jr_8015C32C.c +++ b/src/ov_SC02_011/ov_SC02_011_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_801933CC)[*(u16 *)param_1](); + ((void (**)(s32 *))D_801933CC)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC02_011/ov_SC02_011_jr_8016AB6C.c b/src/ov_SC02_011/ov_SC02_011_jr_8016AB6C.c index a6c8acc0d..3481de88a 100644 --- a/src/ov_SC02_011/ov_SC02_011_jr_8016AB6C.c +++ b/src/ov_SC02_011/ov_SC02_011_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80193E94)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC02_015/ov_SC02_015_after.c b/src/ov_SC02_015/ov_SC02_015_after.c index 9aaaa6ceb..501aa5fee 100644 --- a/src/ov_SC02_015/ov_SC02_015_after.c +++ b/src/ov_SC02_015/ov_SC02_015_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC02_015/ov_SC02_015_jr_80135D20.c b/src/ov_SC02_015/ov_SC02_015_jr_80135D20.c index 9841bb432..f50e7ac80 100644 --- a/src/ov_SC02_015/ov_SC02_015_jr_80135D20.c +++ b/src/ov_SC02_015/ov_SC02_015_jr_80135D20.c @@ -938,11 +938,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -951,16 +951,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8017E7D4)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8017E7D4)[2]; d = dx; denom = -(*(s16 **)&D_8017E7E0)[2]; } else { denom = (*(s16 **)&D_8017E7E0)[2]; - d = (*(s16 **)&D_8017E7D4)[2] - (s16) arg2; + d = (*(s16 **)&D_8017E7D4)[2] - a2v; dx = -d; } n = -d; @@ -986,13 +986,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8017E7DC[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8017E7DC[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC02_015/ov_SC02_015_jr_80140608.c b/src/ov_SC02_015/ov_SC02_015_jr_80140608.c index c2dfe4fe3..711840e21 100644 --- a/src/ov_SC02_015/ov_SC02_015_jr_80140608.c +++ b/src/ov_SC02_015/ov_SC02_015_jr_80140608.c @@ -2098,13 +2098,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8017FBA0[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8017FBA0[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC02_015/ov_SC02_015_jr_8015C32C.c b/src/ov_SC02_015/ov_SC02_015_jr_8015C32C.c index c4d1006e6..a8b97b119 100644 --- a/src/ov_SC02_015/ov_SC02_015_jr_8015C32C.c +++ b/src/ov_SC02_015/ov_SC02_015_jr_8015C32C.c @@ -2803,11 +2803,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_801808E0)[*(u16 *)param_1](); + ((void (**)(s32 *))D_801808E0)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC02_015/ov_SC02_015_jr_8016AB6C.c b/src/ov_SC02_015/ov_SC02_015_jr_8016AB6C.c index 2cedcb46d..2c1624475 100644 --- a/src/ov_SC02_015/ov_SC02_015_jr_8016AB6C.c +++ b/src/ov_SC02_015/ov_SC02_015_jr_8016AB6C.c @@ -2033,12 +2033,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2051,16 +2051,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_801813A8)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC02_016/ov_SC02_016_after.c b/src/ov_SC02_016/ov_SC02_016_after.c index efba73e0d..ea9f93ca3 100644 --- a/src/ov_SC02_016/ov_SC02_016_after.c +++ b/src/ov_SC02_016/ov_SC02_016_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC02_016/ov_SC02_016_jr_80135D20.c b/src/ov_SC02_016/ov_SC02_016_jr_80135D20.c index 8a70be350..bb6a5b464 100644 --- a/src/ov_SC02_016/ov_SC02_016_jr_80135D20.c +++ b/src/ov_SC02_016/ov_SC02_016_jr_80135D20.c @@ -938,11 +938,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -951,16 +951,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80184A0C)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80184A0C)[2]; d = dx; denom = -(*(s16 **)&D_80184A18)[2]; } else { denom = (*(s16 **)&D_80184A18)[2]; - d = (*(s16 **)&D_80184A0C)[2] - (s16) arg2; + d = (*(s16 **)&D_80184A0C)[2] - a2v; dx = -d; } n = -d; @@ -986,13 +986,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80184A14[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80184A14[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC02_016/ov_SC02_016_jr_80140608.c b/src/ov_SC02_016/ov_SC02_016_jr_80140608.c index c443bdc80..260841911 100644 --- a/src/ov_SC02_016/ov_SC02_016_jr_80140608.c +++ b/src/ov_SC02_016/ov_SC02_016_jr_80140608.c @@ -2114,13 +2114,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80185DD8[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80185DD8[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC02_016/ov_SC02_016_jr_8015C32C.c b/src/ov_SC02_016/ov_SC02_016_jr_8015C32C.c index 75d9affa9..2d16b98d5 100644 --- a/src/ov_SC02_016/ov_SC02_016_jr_8015C32C.c +++ b/src/ov_SC02_016/ov_SC02_016_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80186B18)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80186B18)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC02_016/ov_SC02_016_jr_8016AB6C.c b/src/ov_SC02_016/ov_SC02_016_jr_8016AB6C.c index b3c9bdb73..63be0a11c 100644 --- a/src/ov_SC02_016/ov_SC02_016_jr_8016AB6C.c +++ b/src/ov_SC02_016/ov_SC02_016_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_801875E0)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC02_017/ov_SC02_017_after.c b/src/ov_SC02_017/ov_SC02_017_after.c index 5e2bf3bf7..46ca9e15f 100644 --- a/src/ov_SC02_017/ov_SC02_017_after.c +++ b/src/ov_SC02_017/ov_SC02_017_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC02_017/ov_SC02_017_jr_80135D20.c b/src/ov_SC02_017/ov_SC02_017_jr_80135D20.c index 6da158b54..9b0dab5c7 100644 --- a/src/ov_SC02_017/ov_SC02_017_jr_80135D20.c +++ b/src/ov_SC02_017/ov_SC02_017_jr_80135D20.c @@ -938,11 +938,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -951,16 +951,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8018AA64)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8018AA64)[2]; d = dx; denom = -(*(s16 **)&D_8018AA70)[2]; } else { denom = (*(s16 **)&D_8018AA70)[2]; - d = (*(s16 **)&D_8018AA64)[2] - (s16) arg2; + d = (*(s16 **)&D_8018AA64)[2] - a2v; dx = -d; } n = -d; @@ -986,13 +986,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8018AA6C[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8018AA6C[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC02_017/ov_SC02_017_jr_80140608.c b/src/ov_SC02_017/ov_SC02_017_jr_80140608.c index 18c6443e7..92a4cfdb2 100644 --- a/src/ov_SC02_017/ov_SC02_017_jr_80140608.c +++ b/src/ov_SC02_017/ov_SC02_017_jr_80140608.c @@ -2114,13 +2114,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8018BE30[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8018BE30[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC02_017/ov_SC02_017_jr_8015C32C.c b/src/ov_SC02_017/ov_SC02_017_jr_8015C32C.c index 479920f8b..5332aa1f6 100644 --- a/src/ov_SC02_017/ov_SC02_017_jr_8015C32C.c +++ b/src/ov_SC02_017/ov_SC02_017_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_8018CB70)[*(u16 *)param_1](); + ((void (**)(s32 *))D_8018CB70)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC02_017/ov_SC02_017_jr_8016AB6C.c b/src/ov_SC02_017/ov_SC02_017_jr_8016AB6C.c index d6dd4f99f..a864e4177 100644 --- a/src/ov_SC02_017/ov_SC02_017_jr_8016AB6C.c +++ b/src/ov_SC02_017/ov_SC02_017_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8018D638)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC02_021/ov_SC02_021_after.c b/src/ov_SC02_021/ov_SC02_021_after.c index df6c0b832..2877c3d1a 100644 --- a/src/ov_SC02_021/ov_SC02_021_after.c +++ b/src/ov_SC02_021/ov_SC02_021_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC02_021/ov_SC02_021_jr_80135D20.c b/src/ov_SC02_021/ov_SC02_021_jr_80135D20.c index f97905bd0..08c522ad0 100644 --- a/src/ov_SC02_021/ov_SC02_021_jr_80135D20.c +++ b/src/ov_SC02_021/ov_SC02_021_jr_80135D20.c @@ -938,11 +938,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -951,16 +951,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80180058)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80180058)[2]; d = dx; denom = -(*(s16 **)&D_80180064)[2]; } else { denom = (*(s16 **)&D_80180064)[2]; - d = (*(s16 **)&D_80180058)[2] - (s16) arg2; + d = (*(s16 **)&D_80180058)[2] - a2v; dx = -d; } n = -d; @@ -986,13 +986,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80180060[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80180060[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC02_021/ov_SC02_021_jr_80140608.c b/src/ov_SC02_021/ov_SC02_021_jr_80140608.c index f6cb9b7e8..fc854d276 100644 --- a/src/ov_SC02_021/ov_SC02_021_jr_80140608.c +++ b/src/ov_SC02_021/ov_SC02_021_jr_80140608.c @@ -2098,13 +2098,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80181424[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80181424[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC02_021/ov_SC02_021_jr_8015C32C.c b/src/ov_SC02_021/ov_SC02_021_jr_8015C32C.c index dbee10ad3..3d6ded3ac 100644 --- a/src/ov_SC02_021/ov_SC02_021_jr_8015C32C.c +++ b/src/ov_SC02_021/ov_SC02_021_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80182164)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80182164)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC02_021/ov_SC02_021_jr_8016AB6C.c b/src/ov_SC02_021/ov_SC02_021_jr_8016AB6C.c index 0dde2b51f..a78680195 100644 --- a/src/ov_SC02_021/ov_SC02_021_jr_8016AB6C.c +++ b/src/ov_SC02_021/ov_SC02_021_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80182C2C)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC02_026/ov_SC02_026_after.c b/src/ov_SC02_026/ov_SC02_026_after.c index cd2ab640b..93ad9332c 100644 --- a/src/ov_SC02_026/ov_SC02_026_after.c +++ b/src/ov_SC02_026/ov_SC02_026_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC02_026/ov_SC02_026_jr_80135D20.c b/src/ov_SC02_026/ov_SC02_026_jr_80135D20.c index 512e65bbb..4533c9877 100644 --- a/src/ov_SC02_026/ov_SC02_026_jr_80135D20.c +++ b/src/ov_SC02_026/ov_SC02_026_jr_80135D20.c @@ -938,11 +938,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -951,16 +951,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_801866AC)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_801866AC)[2]; d = dx; denom = -(*(s16 **)&D_801866B8)[2]; } else { denom = (*(s16 **)&D_801866B8)[2]; - d = (*(s16 **)&D_801866AC)[2] - (s16) arg2; + d = (*(s16 **)&D_801866AC)[2] - a2v; dx = -d; } n = -d; @@ -986,13 +986,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_801866B4[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_801866B4[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC02_026/ov_SC02_026_jr_80140608.c b/src/ov_SC02_026/ov_SC02_026_jr_80140608.c index d55b96f97..3cb0304a8 100644 --- a/src/ov_SC02_026/ov_SC02_026_jr_80140608.c +++ b/src/ov_SC02_026/ov_SC02_026_jr_80140608.c @@ -2098,13 +2098,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80187A78[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80187A78[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC02_026/ov_SC02_026_jr_8015C32C.c b/src/ov_SC02_026/ov_SC02_026_jr_8015C32C.c index 0819f25c8..42ef04bc2 100644 --- a/src/ov_SC02_026/ov_SC02_026_jr_8015C32C.c +++ b/src/ov_SC02_026/ov_SC02_026_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_801887B8)[*(u16 *)param_1](); + ((void (**)(s32 *))D_801887B8)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC02_026/ov_SC02_026_jr_8016AB6C.c b/src/ov_SC02_026/ov_SC02_026_jr_8016AB6C.c index fc2922a57..db3285b76 100644 --- a/src/ov_SC02_026/ov_SC02_026_jr_8016AB6C.c +++ b/src/ov_SC02_026/ov_SC02_026_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80189280)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC02_027/ov_SC02_027_after.c b/src/ov_SC02_027/ov_SC02_027_after.c index 392f15e08..e6727242a 100644 --- a/src/ov_SC02_027/ov_SC02_027_after.c +++ b/src/ov_SC02_027/ov_SC02_027_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC02_027/ov_SC02_027_jr_80135D20.c b/src/ov_SC02_027/ov_SC02_027_jr_80135D20.c index 918aa5140..5512ad2ba 100644 --- a/src/ov_SC02_027/ov_SC02_027_jr_80135D20.c +++ b/src/ov_SC02_027/ov_SC02_027_jr_80135D20.c @@ -938,11 +938,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -951,16 +951,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8018B7D0)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8018B7D0)[2]; d = dx; denom = -(*(s16 **)&D_8018B7DC)[2]; } else { denom = (*(s16 **)&D_8018B7DC)[2]; - d = (*(s16 **)&D_8018B7D0)[2] - (s16) arg2; + d = (*(s16 **)&D_8018B7D0)[2] - a2v; dx = -d; } n = -d; @@ -986,13 +986,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8018B7D8[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8018B7D8[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC02_027/ov_SC02_027_jr_80140608.c b/src/ov_SC02_027/ov_SC02_027_jr_80140608.c index 96f40e70d..fde79a5a1 100644 --- a/src/ov_SC02_027/ov_SC02_027_jr_80140608.c +++ b/src/ov_SC02_027/ov_SC02_027_jr_80140608.c @@ -2098,13 +2098,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8018CB9C[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8018CB9C[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC02_027/ov_SC02_027_jr_8015C32C.c b/src/ov_SC02_027/ov_SC02_027_jr_8015C32C.c index be735a676..e8eb14479 100644 --- a/src/ov_SC02_027/ov_SC02_027_jr_8015C32C.c +++ b/src/ov_SC02_027/ov_SC02_027_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_8018D8DC)[*(u16 *)param_1](); + ((void (**)(s32 *))D_8018D8DC)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC02_027/ov_SC02_027_jr_8016AB6C.c b/src/ov_SC02_027/ov_SC02_027_jr_8016AB6C.c index e075dcbee..5425af274 100644 --- a/src/ov_SC02_027/ov_SC02_027_jr_8016AB6C.c +++ b/src/ov_SC02_027/ov_SC02_027_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8018E3A4)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC02_028/ov_SC02_028_after.c b/src/ov_SC02_028/ov_SC02_028_after.c index af5aa1a08..5e8ff1c14 100644 --- a/src/ov_SC02_028/ov_SC02_028_after.c +++ b/src/ov_SC02_028/ov_SC02_028_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC02_028/ov_SC02_028_jr_80135D20.c b/src/ov_SC02_028/ov_SC02_028_jr_80135D20.c index 937b9bfa8..96b7f3418 100644 --- a/src/ov_SC02_028/ov_SC02_028_jr_80135D20.c +++ b/src/ov_SC02_028/ov_SC02_028_jr_80135D20.c @@ -938,11 +938,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -951,16 +951,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8018B9D4)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8018B9D4)[2]; d = dx; denom = -(*(s16 **)&D_8018B9E0)[2]; } else { denom = (*(s16 **)&D_8018B9E0)[2]; - d = (*(s16 **)&D_8018B9D4)[2] - (s16) arg2; + d = (*(s16 **)&D_8018B9D4)[2] - a2v; dx = -d; } n = -d; @@ -986,13 +986,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8018B9DC[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8018B9DC[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC02_028/ov_SC02_028_jr_80140608.c b/src/ov_SC02_028/ov_SC02_028_jr_80140608.c index d3e9586fc..4c5b0ac88 100644 --- a/src/ov_SC02_028/ov_SC02_028_jr_80140608.c +++ b/src/ov_SC02_028/ov_SC02_028_jr_80140608.c @@ -2098,13 +2098,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8018CDA0[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8018CDA0[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC02_028/ov_SC02_028_jr_8015C32C.c b/src/ov_SC02_028/ov_SC02_028_jr_8015C32C.c index 80a3e95a5..821caa93c 100644 --- a/src/ov_SC02_028/ov_SC02_028_jr_8015C32C.c +++ b/src/ov_SC02_028/ov_SC02_028_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_8018DAE0)[*(u16 *)param_1](); + ((void (**)(s32 *))D_8018DAE0)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC02_028/ov_SC02_028_jr_8016AB6C.c b/src/ov_SC02_028/ov_SC02_028_jr_8016AB6C.c index ec2d8ebde..4366f6f91 100644 --- a/src/ov_SC02_028/ov_SC02_028_jr_8016AB6C.c +++ b/src/ov_SC02_028/ov_SC02_028_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8018E5A8)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC02_031/ov_SC02_031_after.c b/src/ov_SC02_031/ov_SC02_031_after.c index 95fa2363a..8f70b0ecc 100644 --- a/src/ov_SC02_031/ov_SC02_031_after.c +++ b/src/ov_SC02_031/ov_SC02_031_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC02_031/ov_SC02_031_jr_80135D20.c b/src/ov_SC02_031/ov_SC02_031_jr_80135D20.c index c917dc073..1f154ed2c 100644 --- a/src/ov_SC02_031/ov_SC02_031_jr_80135D20.c +++ b/src/ov_SC02_031/ov_SC02_031_jr_80135D20.c @@ -938,11 +938,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -951,16 +951,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80185200)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80185200)[2]; d = dx; denom = -(*(s16 **)&D_8018520C)[2]; } else { denom = (*(s16 **)&D_8018520C)[2]; - d = (*(s16 **)&D_80185200)[2] - (s16) arg2; + d = (*(s16 **)&D_80185200)[2] - a2v; dx = -d; } n = -d; @@ -986,13 +986,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80185208[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80185208[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC02_031/ov_SC02_031_jr_80140608.c b/src/ov_SC02_031/ov_SC02_031_jr_80140608.c index 1617cc729..95cbcb89e 100644 --- a/src/ov_SC02_031/ov_SC02_031_jr_80140608.c +++ b/src/ov_SC02_031/ov_SC02_031_jr_80140608.c @@ -2098,13 +2098,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_801865CC[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_801865CC[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC02_031/ov_SC02_031_jr_8015C32C.c b/src/ov_SC02_031/ov_SC02_031_jr_8015C32C.c index 036fdfad0..536abac8f 100644 --- a/src/ov_SC02_031/ov_SC02_031_jr_8015C32C.c +++ b/src/ov_SC02_031/ov_SC02_031_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_8018730C)[*(u16 *)param_1](); + ((void (**)(s32 *))D_8018730C)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC02_031/ov_SC02_031_jr_8016AB6C.c b/src/ov_SC02_031/ov_SC02_031_jr_8016AB6C.c index 9929d046d..966e0e281 100644 --- a/src/ov_SC02_031/ov_SC02_031_jr_8016AB6C.c +++ b/src/ov_SC02_031/ov_SC02_031_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80187DD4)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC02_035/ov_SC02_035_after.c b/src/ov_SC02_035/ov_SC02_035_after.c index f6d93b216..28096c430 100644 --- a/src/ov_SC02_035/ov_SC02_035_after.c +++ b/src/ov_SC02_035/ov_SC02_035_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC02_035/ov_SC02_035_jr_80135D20.c b/src/ov_SC02_035/ov_SC02_035_jr_80135D20.c index e798d3da0..4345477ab 100644 --- a/src/ov_SC02_035/ov_SC02_035_jr_80135D20.c +++ b/src/ov_SC02_035/ov_SC02_035_jr_80135D20.c @@ -938,11 +938,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -951,16 +951,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80184A60)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80184A60)[2]; d = dx; denom = -(*(s16 **)&D_80184A6C)[2]; } else { denom = (*(s16 **)&D_80184A6C)[2]; - d = (*(s16 **)&D_80184A60)[2] - (s16) arg2; + d = (*(s16 **)&D_80184A60)[2] - a2v; dx = -d; } n = -d; @@ -986,13 +986,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80184A68[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80184A68[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC02_035/ov_SC02_035_jr_80140608.c b/src/ov_SC02_035/ov_SC02_035_jr_80140608.c index 129c655ad..4ce3fd41d 100644 --- a/src/ov_SC02_035/ov_SC02_035_jr_80140608.c +++ b/src/ov_SC02_035/ov_SC02_035_jr_80140608.c @@ -2098,13 +2098,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80185E2C[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80185E2C[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC02_035/ov_SC02_035_jr_8015C32C.c b/src/ov_SC02_035/ov_SC02_035_jr_8015C32C.c index ccde3f4f4..090a9babb 100644 --- a/src/ov_SC02_035/ov_SC02_035_jr_8015C32C.c +++ b/src/ov_SC02_035/ov_SC02_035_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80186B6C)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80186B6C)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC02_035/ov_SC02_035_jr_8016AB6C.c b/src/ov_SC02_035/ov_SC02_035_jr_8016AB6C.c index 4a8038cf7..c3de69c0d 100644 --- a/src/ov_SC02_035/ov_SC02_035_jr_8016AB6C.c +++ b/src/ov_SC02_035/ov_SC02_035_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80187634)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC02_037/ov_SC02_037_jr_8013F350.c b/src/ov_SC02_037/ov_SC02_037_jr_8013F350.c index 35450e5fa..466bad6c6 100644 --- a/src/ov_SC02_037/ov_SC02_037_jr_8013F350.c +++ b/src/ov_SC02_037/ov_SC02_037_jr_8013F350.c @@ -2803,13 +2803,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80185568[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus4) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80185568[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC02_037/ov_SC02_037_jr_8016AE5C.c b/src/ov_SC02_037/ov_SC02_037_jr_8016AE5C.c index 2cf8da214..c2c97d8ef 100644 --- a/src/ov_SC02_037/ov_SC02_037_jr_8016AE5C.c +++ b/src/ov_SC02_037/ov_SC02_037_jr_8016AE5C.c @@ -2877,12 +2877,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2895,16 +2895,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80186D70)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC02_039/ov_SC02_039_after.c b/src/ov_SC02_039/ov_SC02_039_after.c index 0e537581e..6046a9128 100644 --- a/src/ov_SC02_039/ov_SC02_039_after.c +++ b/src/ov_SC02_039/ov_SC02_039_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC02_039/ov_SC02_039_jr_80135D20.c b/src/ov_SC02_039/ov_SC02_039_jr_80135D20.c index 80adf5c1b..161119f8d 100644 --- a/src/ov_SC02_039/ov_SC02_039_jr_80135D20.c +++ b/src/ov_SC02_039/ov_SC02_039_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8017F68C)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8017F68C)[2]; d = dx; denom = -(*(s16 **)&D_8017F698)[2]; } else { denom = (*(s16 **)&D_8017F698)[2]; - d = (*(s16 **)&D_8017F68C)[2] - (s16) arg2; + d = (*(s16 **)&D_8017F68C)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8017F694[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8017F694[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC02_039/ov_SC02_039_jr_80140608.c b/src/ov_SC02_039/ov_SC02_039_jr_80140608.c index 86cc90cb3..7b21c93df 100644 --- a/src/ov_SC02_039/ov_SC02_039_jr_80140608.c +++ b/src/ov_SC02_039/ov_SC02_039_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80180A58[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80180A58[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC02_039/ov_SC02_039_jr_8015C32C.c b/src/ov_SC02_039/ov_SC02_039_jr_8015C32C.c index 30e2d5d5d..4b8063b7a 100644 --- a/src/ov_SC02_039/ov_SC02_039_jr_8015C32C.c +++ b/src/ov_SC02_039/ov_SC02_039_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80181798)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80181798)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC02_039/ov_SC02_039_jr_8016AB6C.c b/src/ov_SC02_039/ov_SC02_039_jr_8016AB6C.c index da063f7ed..26825d94f 100644 --- a/src/ov_SC02_039/ov_SC02_039_jr_8016AB6C.c +++ b/src/ov_SC02_039/ov_SC02_039_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80182260)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC02_041/ov_SC02_041_after.c b/src/ov_SC02_041/ov_SC02_041_after.c index 0015191aa..17f0e97e7 100644 --- a/src/ov_SC02_041/ov_SC02_041_after.c +++ b/src/ov_SC02_041/ov_SC02_041_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC02_041/ov_SC02_041_jr_80135D20.c b/src/ov_SC02_041/ov_SC02_041_jr_80135D20.c index 8c775bf0b..d7ea05949 100644 --- a/src/ov_SC02_041/ov_SC02_041_jr_80135D20.c +++ b/src/ov_SC02_041/ov_SC02_041_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8018535C)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8018535C)[2]; d = dx; denom = -(*(s16 **)&D_80185368)[2]; } else { denom = (*(s16 **)&D_80185368)[2]; - d = (*(s16 **)&D_8018535C)[2] - (s16) arg2; + d = (*(s16 **)&D_8018535C)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80185364[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80185364[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC02_041/ov_SC02_041_jr_80140608.c b/src/ov_SC02_041/ov_SC02_041_jr_80140608.c index d5a03615d..b07992e44 100644 --- a/src/ov_SC02_041/ov_SC02_041_jr_80140608.c +++ b/src/ov_SC02_041/ov_SC02_041_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80186728[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80186728[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC02_041/ov_SC02_041_jr_8015C32C.c b/src/ov_SC02_041/ov_SC02_041_jr_8015C32C.c index 3094974e3..e61827091 100644 --- a/src/ov_SC02_041/ov_SC02_041_jr_8015C32C.c +++ b/src/ov_SC02_041/ov_SC02_041_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80187468)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80187468)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC02_041/ov_SC02_041_jr_8016AB6C.c b/src/ov_SC02_041/ov_SC02_041_jr_8016AB6C.c index 9431bc8e0..7a90bc361 100644 --- a/src/ov_SC02_041/ov_SC02_041_jr_8016AB6C.c +++ b/src/ov_SC02_041/ov_SC02_041_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80187F30)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_001/ov_SC03_001_after.c b/src/ov_SC03_001/ov_SC03_001_after.c index 22e5ec315..9f36d3e31 100644 --- a/src/ov_SC03_001/ov_SC03_001_after.c +++ b/src/ov_SC03_001/ov_SC03_001_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_001/ov_SC03_001_jr_80135D20.c b/src/ov_SC03_001/ov_SC03_001_jr_80135D20.c index 7d02cb09a..c34966ecf 100644 --- a/src/ov_SC03_001/ov_SC03_001_jr_80135D20.c +++ b/src/ov_SC03_001/ov_SC03_001_jr_80135D20.c @@ -938,11 +938,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -951,16 +951,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8018DA9C)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8018DA9C)[2]; d = dx; denom = -(*(s16 **)&D_8018DAA8)[2]; } else { denom = (*(s16 **)&D_8018DAA8)[2]; - d = (*(s16 **)&D_8018DA9C)[2] - (s16) arg2; + d = (*(s16 **)&D_8018DA9C)[2] - a2v; dx = -d; } n = -d; @@ -986,13 +986,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8018DAA4[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8018DAA4[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_001/ov_SC03_001_jr_80140608.c b/src/ov_SC03_001/ov_SC03_001_jr_80140608.c index 1c87841d4..f3d56c0e1 100644 --- a/src/ov_SC03_001/ov_SC03_001_jr_80140608.c +++ b/src/ov_SC03_001/ov_SC03_001_jr_80140608.c @@ -2113,13 +2113,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8018EE68[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8018EE68[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_001/ov_SC03_001_jr_8015C32C.c b/src/ov_SC03_001/ov_SC03_001_jr_8015C32C.c index ef58e33fb..611470458 100644 --- a/src/ov_SC03_001/ov_SC03_001_jr_8015C32C.c +++ b/src/ov_SC03_001/ov_SC03_001_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_8018FBA8)[*(u16 *)param_1](); + ((void (**)(s32 *))D_8018FBA8)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_001/ov_SC03_001_jr_8016AB6C.c b/src/ov_SC03_001/ov_SC03_001_jr_8016AB6C.c index 4a25e478e..b5d48f3e2 100644 --- a/src/ov_SC03_001/ov_SC03_001_jr_8016AB6C.c +++ b/src/ov_SC03_001/ov_SC03_001_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80190670)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_002/ov_SC03_002_after.c b/src/ov_SC03_002/ov_SC03_002_after.c index f9039a8e9..7efad37c5 100644 --- a/src/ov_SC03_002/ov_SC03_002_after.c +++ b/src/ov_SC03_002/ov_SC03_002_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_002/ov_SC03_002_jr_80135D20.c b/src/ov_SC03_002/ov_SC03_002_jr_80135D20.c index 947e05ead..c0eb237de 100644 --- a/src/ov_SC03_002/ov_SC03_002_jr_80135D20.c +++ b/src/ov_SC03_002/ov_SC03_002_jr_80135D20.c @@ -938,11 +938,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -951,16 +951,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80185A8C)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80185A8C)[2]; d = dx; denom = -(*(s16 **)&D_80185A98)[2]; } else { denom = (*(s16 **)&D_80185A98)[2]; - d = (*(s16 **)&D_80185A8C)[2] - (s16) arg2; + d = (*(s16 **)&D_80185A8C)[2] - a2v; dx = -d; } n = -d; @@ -986,13 +986,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80185A94[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80185A94[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_002/ov_SC03_002_jr_80140608.c b/src/ov_SC03_002/ov_SC03_002_jr_80140608.c index ba57a696c..75dd90d7a 100644 --- a/src/ov_SC03_002/ov_SC03_002_jr_80140608.c +++ b/src/ov_SC03_002/ov_SC03_002_jr_80140608.c @@ -2097,13 +2097,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80186E58[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80186E58[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_002/ov_SC03_002_jr_8015C32C.c b/src/ov_SC03_002/ov_SC03_002_jr_8015C32C.c index 263ecb5d4..8dc137258 100644 --- a/src/ov_SC03_002/ov_SC03_002_jr_8015C32C.c +++ b/src/ov_SC03_002/ov_SC03_002_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80187B98)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80187B98)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_002/ov_SC03_002_jr_8016AB6C.c b/src/ov_SC03_002/ov_SC03_002_jr_8016AB6C.c index 60ea135ea..0f219ce11 100644 --- a/src/ov_SC03_002/ov_SC03_002_jr_8016AB6C.c +++ b/src/ov_SC03_002/ov_SC03_002_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80188660)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_003/ov_SC03_003_after.c b/src/ov_SC03_003/ov_SC03_003_after.c index dcd128005..63d8724e1 100644 --- a/src/ov_SC03_003/ov_SC03_003_after.c +++ b/src/ov_SC03_003/ov_SC03_003_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_003/ov_SC03_003_jr_80135D20.c b/src/ov_SC03_003/ov_SC03_003_jr_80135D20.c index 0cce44246..8806ca314 100644 --- a/src/ov_SC03_003/ov_SC03_003_jr_80135D20.c +++ b/src/ov_SC03_003/ov_SC03_003_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8017F854)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8017F854)[2]; d = dx; denom = -(*(s16 **)&D_8017F860)[2]; } else { denom = (*(s16 **)&D_8017F860)[2]; - d = (*(s16 **)&D_8017F854)[2] - (s16) arg2; + d = (*(s16 **)&D_8017F854)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8017F85C[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8017F85C[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_003/ov_SC03_003_jr_80140608.c b/src/ov_SC03_003/ov_SC03_003_jr_80140608.c index f4d1c2cde..ce070c199 100644 --- a/src/ov_SC03_003/ov_SC03_003_jr_80140608.c +++ b/src/ov_SC03_003/ov_SC03_003_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80180C20[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80180C20[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_003/ov_SC03_003_jr_8015C32C.c b/src/ov_SC03_003/ov_SC03_003_jr_8015C32C.c index 50bf7989e..796aa4803 100644 --- a/src/ov_SC03_003/ov_SC03_003_jr_8015C32C.c +++ b/src/ov_SC03_003/ov_SC03_003_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80181960)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80181960)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_003/ov_SC03_003_jr_8016AB6C.c b/src/ov_SC03_003/ov_SC03_003_jr_8016AB6C.c index fd77efdce..035acb8fa 100644 --- a/src/ov_SC03_003/ov_SC03_003_jr_8016AB6C.c +++ b/src/ov_SC03_003/ov_SC03_003_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80182428)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_006/ov_SC03_006_after.c b/src/ov_SC03_006/ov_SC03_006_after.c index b1a84d0f4..a98bf2561 100644 --- a/src/ov_SC03_006/ov_SC03_006_after.c +++ b/src/ov_SC03_006/ov_SC03_006_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_006/ov_SC03_006_jr_80135D20.c b/src/ov_SC03_006/ov_SC03_006_jr_80135D20.c index 599ba7e92..73a75ad8d 100644 --- a/src/ov_SC03_006/ov_SC03_006_jr_80135D20.c +++ b/src/ov_SC03_006/ov_SC03_006_jr_80135D20.c @@ -938,11 +938,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -951,16 +951,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8018CB70)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8018CB70)[2]; d = dx; denom = -(*(s16 **)&D_8018CB7C)[2]; } else { denom = (*(s16 **)&D_8018CB7C)[2]; - d = (*(s16 **)&D_8018CB70)[2] - (s16) arg2; + d = (*(s16 **)&D_8018CB70)[2] - a2v; dx = -d; } n = -d; @@ -986,13 +986,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8018CB78[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8018CB78[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_006/ov_SC03_006_jr_80140608.c b/src/ov_SC03_006/ov_SC03_006_jr_80140608.c index 15663206a..da881cd78 100644 --- a/src/ov_SC03_006/ov_SC03_006_jr_80140608.c +++ b/src/ov_SC03_006/ov_SC03_006_jr_80140608.c @@ -2113,13 +2113,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8018DF3C[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8018DF3C[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_006/ov_SC03_006_jr_8015C32C.c b/src/ov_SC03_006/ov_SC03_006_jr_8015C32C.c index 0d4591002..2a15c39b1 100644 --- a/src/ov_SC03_006/ov_SC03_006_jr_8015C32C.c +++ b/src/ov_SC03_006/ov_SC03_006_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_8018EC7C)[*(u16 *)param_1](); + ((void (**)(s32 *))D_8018EC7C)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_006/ov_SC03_006_jr_8016AB6C.c b/src/ov_SC03_006/ov_SC03_006_jr_8016AB6C.c index 430d32e6d..9840b3e41 100644 --- a/src/ov_SC03_006/ov_SC03_006_jr_8016AB6C.c +++ b/src/ov_SC03_006/ov_SC03_006_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8018F744)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_007/ov_SC03_007_after.c b/src/ov_SC03_007/ov_SC03_007_after.c index 3fb98e07e..bac372da9 100644 --- a/src/ov_SC03_007/ov_SC03_007_after.c +++ b/src/ov_SC03_007/ov_SC03_007_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_007/ov_SC03_007_jr_80135D20.c b/src/ov_SC03_007/ov_SC03_007_jr_80135D20.c index 8587dc6b2..0de15b9b4 100644 --- a/src/ov_SC03_007/ov_SC03_007_jr_80135D20.c +++ b/src/ov_SC03_007/ov_SC03_007_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80187968)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80187968)[2]; d = dx; denom = -(*(s16 **)&D_80187974)[2]; } else { denom = (*(s16 **)&D_80187974)[2]; - d = (*(s16 **)&D_80187968)[2] - (s16) arg2; + d = (*(s16 **)&D_80187968)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80187970[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80187970[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_007/ov_SC03_007_jr_80140608.c b/src/ov_SC03_007/ov_SC03_007_jr_80140608.c index cf9e910d2..adacee5c3 100644 --- a/src/ov_SC03_007/ov_SC03_007_jr_80140608.c +++ b/src/ov_SC03_007/ov_SC03_007_jr_80140608.c @@ -2111,13 +2111,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80188D34[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80188D34[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_007/ov_SC03_007_jr_8015C32C.c b/src/ov_SC03_007/ov_SC03_007_jr_8015C32C.c index 14f8a94fc..0dbead442 100644 --- a/src/ov_SC03_007/ov_SC03_007_jr_8015C32C.c +++ b/src/ov_SC03_007/ov_SC03_007_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80189A74)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80189A74)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_007/ov_SC03_007_jr_8016AB6C.c b/src/ov_SC03_007/ov_SC03_007_jr_8016AB6C.c index 9ac13b39c..f7b7c7d24 100644 --- a/src/ov_SC03_007/ov_SC03_007_jr_8016AB6C.c +++ b/src/ov_SC03_007/ov_SC03_007_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8018A53C)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_010/ov_SC03_010_after.c b/src/ov_SC03_010/ov_SC03_010_after.c index 73dc316e1..b8bf9445d 100644 --- a/src/ov_SC03_010/ov_SC03_010_after.c +++ b/src/ov_SC03_010/ov_SC03_010_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_010/ov_SC03_010_jr_80135D20.c b/src/ov_SC03_010/ov_SC03_010_jr_80135D20.c index 9fa27e88a..69dda03fb 100644 --- a/src/ov_SC03_010/ov_SC03_010_jr_80135D20.c +++ b/src/ov_SC03_010/ov_SC03_010_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80180488)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80180488)[2]; d = dx; denom = -(*(s16 **)&D_80180494)[2]; } else { denom = (*(s16 **)&D_80180494)[2]; - d = (*(s16 **)&D_80180488)[2] - (s16) arg2; + d = (*(s16 **)&D_80180488)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80180490[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80180490[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_010/ov_SC03_010_jr_80140608.c b/src/ov_SC03_010/ov_SC03_010_jr_80140608.c index 4d4cdb169..6fda3082b 100644 --- a/src/ov_SC03_010/ov_SC03_010_jr_80140608.c +++ b/src/ov_SC03_010/ov_SC03_010_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80181854[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80181854[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_010/ov_SC03_010_jr_8015C32C.c b/src/ov_SC03_010/ov_SC03_010_jr_8015C32C.c index d2a318664..8573f0e00 100644 --- a/src/ov_SC03_010/ov_SC03_010_jr_8015C32C.c +++ b/src/ov_SC03_010/ov_SC03_010_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80182594)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80182594)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_010/ov_SC03_010_jr_8016AB6C.c b/src/ov_SC03_010/ov_SC03_010_jr_8016AB6C.c index ad514c1ae..fde44a313 100644 --- a/src/ov_SC03_010/ov_SC03_010_jr_8016AB6C.c +++ b/src/ov_SC03_010/ov_SC03_010_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8018305C)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_011/ov_SC03_011_after.c b/src/ov_SC03_011/ov_SC03_011_after.c index 8fb5f4847..8ae67a035 100644 --- a/src/ov_SC03_011/ov_SC03_011_after.c +++ b/src/ov_SC03_011/ov_SC03_011_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_011/ov_SC03_011_jr_80135D20.c b/src/ov_SC03_011/ov_SC03_011_jr_80135D20.c index 2e9311090..58017c95e 100644 --- a/src/ov_SC03_011/ov_SC03_011_jr_80135D20.c +++ b/src/ov_SC03_011/ov_SC03_011_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_801817F8)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_801817F8)[2]; d = dx; denom = -(*(s16 **)&D_80181804)[2]; } else { denom = (*(s16 **)&D_80181804)[2]; - d = (*(s16 **)&D_801817F8)[2] - (s16) arg2; + d = (*(s16 **)&D_801817F8)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80181800[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80181800[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_011/ov_SC03_011_jr_80140608.c b/src/ov_SC03_011/ov_SC03_011_jr_80140608.c index 852069b39..a87f34ee5 100644 --- a/src/ov_SC03_011/ov_SC03_011_jr_80140608.c +++ b/src/ov_SC03_011/ov_SC03_011_jr_80140608.c @@ -2131,13 +2131,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80182BC4[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80182BC4[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_011/ov_SC03_011_jr_8015C32C.c b/src/ov_SC03_011/ov_SC03_011_jr_8015C32C.c index ad476c37e..2a4816b6a 100644 --- a/src/ov_SC03_011/ov_SC03_011_jr_8015C32C.c +++ b/src/ov_SC03_011/ov_SC03_011_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80183904)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80183904)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_011/ov_SC03_011_jr_8016AB6C.c b/src/ov_SC03_011/ov_SC03_011_jr_8016AB6C.c index c4f5c83b1..80c0da71b 100644 --- a/src/ov_SC03_011/ov_SC03_011_jr_8016AB6C.c +++ b/src/ov_SC03_011/ov_SC03_011_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_801843CC)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_012/ov_SC03_012_after.c b/src/ov_SC03_012/ov_SC03_012_after.c index b86c40809..791e790a2 100644 --- a/src/ov_SC03_012/ov_SC03_012_after.c +++ b/src/ov_SC03_012/ov_SC03_012_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_012/ov_SC03_012_jr_80135D20.c b/src/ov_SC03_012/ov_SC03_012_jr_80135D20.c index 78f87d7a4..63992e773 100644 --- a/src/ov_SC03_012/ov_SC03_012_jr_80135D20.c +++ b/src/ov_SC03_012/ov_SC03_012_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8017E6D8)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8017E6D8)[2]; d = dx; denom = -(*(s16 **)&D_8017E6E4)[2]; } else { denom = (*(s16 **)&D_8017E6E4)[2]; - d = (*(s16 **)&D_8017E6D8)[2] - (s16) arg2; + d = (*(s16 **)&D_8017E6D8)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8017E6E0[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8017E6E0[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_012/ov_SC03_012_jr_80140608.c b/src/ov_SC03_012/ov_SC03_012_jr_80140608.c index a976f4990..9772758a6 100644 --- a/src/ov_SC03_012/ov_SC03_012_jr_80140608.c +++ b/src/ov_SC03_012/ov_SC03_012_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8017FAA4[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8017FAA4[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_012/ov_SC03_012_jr_8015C32C.c b/src/ov_SC03_012/ov_SC03_012_jr_8015C32C.c index 3c639a231..945db4dc9 100644 --- a/src/ov_SC03_012/ov_SC03_012_jr_8015C32C.c +++ b/src/ov_SC03_012/ov_SC03_012_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_801807E4)[*(u16 *)param_1](); + ((void (**)(s32 *))D_801807E4)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_012/ov_SC03_012_jr_8016AB6C.c b/src/ov_SC03_012/ov_SC03_012_jr_8016AB6C.c index b8b33a3ba..98b511268 100644 --- a/src/ov_SC03_012/ov_SC03_012_jr_8016AB6C.c +++ b/src/ov_SC03_012/ov_SC03_012_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_801812AC)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_013/ov_SC03_013_after.c b/src/ov_SC03_013/ov_SC03_013_after.c index 61d046723..1419e5656 100644 --- a/src/ov_SC03_013/ov_SC03_013_after.c +++ b/src/ov_SC03_013/ov_SC03_013_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_013/ov_SC03_013_jr_80135D20.c b/src/ov_SC03_013/ov_SC03_013_jr_80135D20.c index 83197ef16..91e4db604 100644 --- a/src/ov_SC03_013/ov_SC03_013_jr_80135D20.c +++ b/src/ov_SC03_013/ov_SC03_013_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_801814C0)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_801814C0)[2]; d = dx; denom = -(*(s16 **)&D_801814CC)[2]; } else { denom = (*(s16 **)&D_801814CC)[2]; - d = (*(s16 **)&D_801814C0)[2] - (s16) arg2; + d = (*(s16 **)&D_801814C0)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_801814C8[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_801814C8[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_013/ov_SC03_013_jr_80140608.c b/src/ov_SC03_013/ov_SC03_013_jr_80140608.c index 2d031b3b7..3766bb924 100644 --- a/src/ov_SC03_013/ov_SC03_013_jr_80140608.c +++ b/src/ov_SC03_013/ov_SC03_013_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8018288C[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8018288C[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_013/ov_SC03_013_jr_8015C32C.c b/src/ov_SC03_013/ov_SC03_013_jr_8015C32C.c index 9a61c3e97..c11e67864 100644 --- a/src/ov_SC03_013/ov_SC03_013_jr_8015C32C.c +++ b/src/ov_SC03_013/ov_SC03_013_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_801835CC)[*(u16 *)param_1](); + ((void (**)(s32 *))D_801835CC)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_013/ov_SC03_013_jr_8016AB6C.c b/src/ov_SC03_013/ov_SC03_013_jr_8016AB6C.c index 1d769f951..2e43da916 100644 --- a/src/ov_SC03_013/ov_SC03_013_jr_8016AB6C.c +++ b/src/ov_SC03_013/ov_SC03_013_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80184094)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_014/ov_SC03_014_after.c b/src/ov_SC03_014/ov_SC03_014_after.c index 99a97b5f0..0b60fc7f7 100644 --- a/src/ov_SC03_014/ov_SC03_014_after.c +++ b/src/ov_SC03_014/ov_SC03_014_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_014/ov_SC03_014_jr_80135D20.c b/src/ov_SC03_014/ov_SC03_014_jr_80135D20.c index 278920b5c..7aa130133 100644 --- a/src/ov_SC03_014/ov_SC03_014_jr_80135D20.c +++ b/src/ov_SC03_014/ov_SC03_014_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8018BAFC)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8018BAFC)[2]; d = dx; denom = -(*(s16 **)&D_8018BB08)[2]; } else { denom = (*(s16 **)&D_8018BB08)[2]; - d = (*(s16 **)&D_8018BAFC)[2] - (s16) arg2; + d = (*(s16 **)&D_8018BAFC)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8018BB04[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8018BB04[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_014/ov_SC03_014_jr_80140608.c b/src/ov_SC03_014/ov_SC03_014_jr_80140608.c index feae6fab3..aede91e07 100644 --- a/src/ov_SC03_014/ov_SC03_014_jr_80140608.c +++ b/src/ov_SC03_014/ov_SC03_014_jr_80140608.c @@ -2096,13 +2096,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8018CEC8[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8018CEC8[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_014/ov_SC03_014_jr_8015C32C.c b/src/ov_SC03_014/ov_SC03_014_jr_8015C32C.c index e3989f95a..9bac3c2b6 100644 --- a/src/ov_SC03_014/ov_SC03_014_jr_8015C32C.c +++ b/src/ov_SC03_014/ov_SC03_014_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_8018DC08)[*(u16 *)param_1](); + ((void (**)(s32 *))D_8018DC08)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.c b/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.c index 1ec344177..f86647ae5 100644 --- a/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.c +++ b/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8018E6D0)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_023/ov_SC03_023_after.c b/src/ov_SC03_023/ov_SC03_023_after.c index c4e8feb94..f3e446c9f 100644 --- a/src/ov_SC03_023/ov_SC03_023_after.c +++ b/src/ov_SC03_023/ov_SC03_023_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_023/ov_SC03_023_jr_80135D20.c b/src/ov_SC03_023/ov_SC03_023_jr_80135D20.c index 1eae165f6..2d26468fe 100644 --- a/src/ov_SC03_023/ov_SC03_023_jr_80135D20.c +++ b/src/ov_SC03_023/ov_SC03_023_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8017F478)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8017F478)[2]; d = dx; denom = -(*(s16 **)&D_8017F484)[2]; } else { denom = (*(s16 **)&D_8017F484)[2]; - d = (*(s16 **)&D_8017F478)[2] - (s16) arg2; + d = (*(s16 **)&D_8017F478)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8017F480[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8017F480[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_023/ov_SC03_023_jr_80140608.c b/src/ov_SC03_023/ov_SC03_023_jr_80140608.c index b52f268b5..4de2b8151 100644 --- a/src/ov_SC03_023/ov_SC03_023_jr_80140608.c +++ b/src/ov_SC03_023/ov_SC03_023_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80180844[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80180844[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_023/ov_SC03_023_jr_8015C32C.c b/src/ov_SC03_023/ov_SC03_023_jr_8015C32C.c index cf9eb65ec..f33403cdb 100644 --- a/src/ov_SC03_023/ov_SC03_023_jr_8015C32C.c +++ b/src/ov_SC03_023/ov_SC03_023_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80181584)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80181584)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_023/ov_SC03_023_jr_8016AB6C.c b/src/ov_SC03_023/ov_SC03_023_jr_8016AB6C.c index f3b1d7522..c4820cd2f 100644 --- a/src/ov_SC03_023/ov_SC03_023_jr_8016AB6C.c +++ b/src/ov_SC03_023/ov_SC03_023_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8018204C)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_024/ov_SC03_024_after.c b/src/ov_SC03_024/ov_SC03_024_after.c index 4bb43b28f..4ea05b21e 100644 --- a/src/ov_SC03_024/ov_SC03_024_after.c +++ b/src/ov_SC03_024/ov_SC03_024_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_024/ov_SC03_024_jr_80135D20.c b/src/ov_SC03_024/ov_SC03_024_jr_80135D20.c index 11ae0cc46..af1cdee3e 100644 --- a/src/ov_SC03_024/ov_SC03_024_jr_80135D20.c +++ b/src/ov_SC03_024/ov_SC03_024_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8018749C)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8018749C)[2]; d = dx; denom = -(*(s16 **)&D_801874A8)[2]; } else { denom = (*(s16 **)&D_801874A8)[2]; - d = (*(s16 **)&D_8018749C)[2] - (s16) arg2; + d = (*(s16 **)&D_8018749C)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_801874A4[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_801874A4[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_024/ov_SC03_024_jr_80140608.c b/src/ov_SC03_024/ov_SC03_024_jr_80140608.c index a123b02da..055bbd067 100644 --- a/src/ov_SC03_024/ov_SC03_024_jr_80140608.c +++ b/src/ov_SC03_024/ov_SC03_024_jr_80140608.c @@ -2111,13 +2111,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80188868[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80188868[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_024/ov_SC03_024_jr_8015C32C.c b/src/ov_SC03_024/ov_SC03_024_jr_8015C32C.c index 13a89ebac..8e04be374 100644 --- a/src/ov_SC03_024/ov_SC03_024_jr_8015C32C.c +++ b/src/ov_SC03_024/ov_SC03_024_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_801895A8)[*(u16 *)param_1](); + ((void (**)(s32 *))D_801895A8)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_024/ov_SC03_024_jr_8016AB6C.c b/src/ov_SC03_024/ov_SC03_024_jr_8016AB6C.c index 901b4b26c..a90f119ec 100644 --- a/src/ov_SC03_024/ov_SC03_024_jr_8016AB6C.c +++ b/src/ov_SC03_024/ov_SC03_024_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8018A070)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_028/ov_SC03_028_after.c b/src/ov_SC03_028/ov_SC03_028_after.c index 8841547b7..49e9730dc 100644 --- a/src/ov_SC03_028/ov_SC03_028_after.c +++ b/src/ov_SC03_028/ov_SC03_028_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_028/ov_SC03_028_jr_80135D20.c b/src/ov_SC03_028/ov_SC03_028_jr_80135D20.c index 5ed19568c..a4d1ee084 100644 --- a/src/ov_SC03_028/ov_SC03_028_jr_80135D20.c +++ b/src/ov_SC03_028/ov_SC03_028_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8018BF68)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8018BF68)[2]; d = dx; denom = -(*(s16 **)&D_8018BF74)[2]; } else { denom = (*(s16 **)&D_8018BF74)[2]; - d = (*(s16 **)&D_8018BF68)[2] - (s16) arg2; + d = (*(s16 **)&D_8018BF68)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8018BF70[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8018BF70[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_028/ov_SC03_028_jr_80140608.c b/src/ov_SC03_028/ov_SC03_028_jr_80140608.c index 972ea058f..13603cca8 100644 --- a/src/ov_SC03_028/ov_SC03_028_jr_80140608.c +++ b/src/ov_SC03_028/ov_SC03_028_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8018D334[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8018D334[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_028/ov_SC03_028_jr_8015C32C.c b/src/ov_SC03_028/ov_SC03_028_jr_8015C32C.c index 0afe39af5..658f9a911 100644 --- a/src/ov_SC03_028/ov_SC03_028_jr_8015C32C.c +++ b/src/ov_SC03_028/ov_SC03_028_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_8018E074)[*(u16 *)param_1](); + ((void (**)(s32 *))D_8018E074)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_028/ov_SC03_028_jr_8016AB6C.c b/src/ov_SC03_028/ov_SC03_028_jr_8016AB6C.c index a35e06b5c..5e61b527d 100644 --- a/src/ov_SC03_028/ov_SC03_028_jr_8016AB6C.c +++ b/src/ov_SC03_028/ov_SC03_028_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8018EB3C)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_029/ov_SC03_029_after.c b/src/ov_SC03_029/ov_SC03_029_after.c index ab8991a21..9c48ffb59 100644 --- a/src/ov_SC03_029/ov_SC03_029_after.c +++ b/src/ov_SC03_029/ov_SC03_029_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_029/ov_SC03_029_jr_80135D20.c b/src/ov_SC03_029/ov_SC03_029_jr_80135D20.c index bb712f3d5..7a00c2f26 100644 --- a/src/ov_SC03_029/ov_SC03_029_jr_80135D20.c +++ b/src/ov_SC03_029/ov_SC03_029_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80187DA0)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80187DA0)[2]; d = dx; denom = -(*(s16 **)&D_80187DAC)[2]; } else { denom = (*(s16 **)&D_80187DAC)[2]; - d = (*(s16 **)&D_80187DA0)[2] - (s16) arg2; + d = (*(s16 **)&D_80187DA0)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80187DA8[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80187DA8[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_029/ov_SC03_029_jr_80140608.c b/src/ov_SC03_029/ov_SC03_029_jr_80140608.c index 64820a449..cda328144 100644 --- a/src/ov_SC03_029/ov_SC03_029_jr_80140608.c +++ b/src/ov_SC03_029/ov_SC03_029_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8018916C[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8018916C[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_029/ov_SC03_029_jr_8015C32C.c b/src/ov_SC03_029/ov_SC03_029_jr_8015C32C.c index db35116b5..2de303dfc 100644 --- a/src/ov_SC03_029/ov_SC03_029_jr_8015C32C.c +++ b/src/ov_SC03_029/ov_SC03_029_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80189EAC)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80189EAC)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_029/ov_SC03_029_jr_8016AB6C.c b/src/ov_SC03_029/ov_SC03_029_jr_8016AB6C.c index f33ae38d5..0eb566de0 100644 --- a/src/ov_SC03_029/ov_SC03_029_jr_8016AB6C.c +++ b/src/ov_SC03_029/ov_SC03_029_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8018A974)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_030/ov_SC03_030_after.c b/src/ov_SC03_030/ov_SC03_030_after.c index da45ac76e..6e83338b3 100644 --- a/src/ov_SC03_030/ov_SC03_030_after.c +++ b/src/ov_SC03_030/ov_SC03_030_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_030/ov_SC03_030_jr_80135D20.c b/src/ov_SC03_030/ov_SC03_030_jr_80135D20.c index f4824f256..ab264623f 100644 --- a/src/ov_SC03_030/ov_SC03_030_jr_80135D20.c +++ b/src/ov_SC03_030/ov_SC03_030_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_801823DC)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_801823DC)[2]; d = dx; denom = -(*(s16 **)&D_801823E8)[2]; } else { denom = (*(s16 **)&D_801823E8)[2]; - d = (*(s16 **)&D_801823DC)[2] - (s16) arg2; + d = (*(s16 **)&D_801823DC)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_801823E4[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_801823E4[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_030/ov_SC03_030_jr_80140608.c b/src/ov_SC03_030/ov_SC03_030_jr_80140608.c index 1440548f5..58688246f 100644 --- a/src/ov_SC03_030/ov_SC03_030_jr_80140608.c +++ b/src/ov_SC03_030/ov_SC03_030_jr_80140608.c @@ -2147,13 +2147,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_801837A8[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_801837A8[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_030/ov_SC03_030_jr_8015C32C.c b/src/ov_SC03_030/ov_SC03_030_jr_8015C32C.c index 92801fee7..3b06b0a76 100644 --- a/src/ov_SC03_030/ov_SC03_030_jr_8015C32C.c +++ b/src/ov_SC03_030/ov_SC03_030_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_801844E8)[*(u16 *)param_1](); + ((void (**)(s32 *))D_801844E8)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_030/ov_SC03_030_jr_8016AB6C.c b/src/ov_SC03_030/ov_SC03_030_jr_8016AB6C.c index 0ed6a3738..be9798817 100644 --- a/src/ov_SC03_030/ov_SC03_030_jr_8016AB6C.c +++ b/src/ov_SC03_030/ov_SC03_030_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80184FB0)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_031/ov_SC03_031_after.c b/src/ov_SC03_031/ov_SC03_031_after.c index b9180bf49..6c60eb9b3 100644 --- a/src/ov_SC03_031/ov_SC03_031_after.c +++ b/src/ov_SC03_031/ov_SC03_031_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_031/ov_SC03_031_jr_80135D20.c b/src/ov_SC03_031/ov_SC03_031_jr_80135D20.c index cabf317ed..de428a4ed 100644 --- a/src/ov_SC03_031/ov_SC03_031_jr_80135D20.c +++ b/src/ov_SC03_031/ov_SC03_031_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_801828F8)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_801828F8)[2]; d = dx; denom = -(*(s16 **)&D_80182904)[2]; } else { denom = (*(s16 **)&D_80182904)[2]; - d = (*(s16 **)&D_801828F8)[2] - (s16) arg2; + d = (*(s16 **)&D_801828F8)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80182900[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80182900[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_031/ov_SC03_031_jr_80140608.c b/src/ov_SC03_031/ov_SC03_031_jr_80140608.c index 971342cf2..a9472b8d1 100644 --- a/src/ov_SC03_031/ov_SC03_031_jr_80140608.c +++ b/src/ov_SC03_031/ov_SC03_031_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80183CC4[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80183CC4[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_031/ov_SC03_031_jr_8015C32C.c b/src/ov_SC03_031/ov_SC03_031_jr_8015C32C.c index 40b4e610e..49fb0e4d4 100644 --- a/src/ov_SC03_031/ov_SC03_031_jr_8015C32C.c +++ b/src/ov_SC03_031/ov_SC03_031_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80184A04)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80184A04)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_031/ov_SC03_031_jr_8016AB6C.c b/src/ov_SC03_031/ov_SC03_031_jr_8016AB6C.c index a9d531a44..7ab88ee6c 100644 --- a/src/ov_SC03_031/ov_SC03_031_jr_8016AB6C.c +++ b/src/ov_SC03_031/ov_SC03_031_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_801854CC)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_089/ov_SC03_089_after.c b/src/ov_SC03_089/ov_SC03_089_after.c index df4d2ee5e..481d11871 100644 --- a/src/ov_SC03_089/ov_SC03_089_after.c +++ b/src/ov_SC03_089/ov_SC03_089_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_089/ov_SC03_089_jr_80135D20.c b/src/ov_SC03_089/ov_SC03_089_jr_80135D20.c index 43fcac9e6..63d64ce7a 100644 --- a/src/ov_SC03_089/ov_SC03_089_jr_80135D20.c +++ b/src/ov_SC03_089/ov_SC03_089_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80189BF4)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80189BF4)[2]; d = dx; denom = -(*(s16 **)&D_80189C00)[2]; } else { denom = (*(s16 **)&D_80189C00)[2]; - d = (*(s16 **)&D_80189BF4)[2] - (s16) arg2; + d = (*(s16 **)&D_80189BF4)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80189BFC[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80189BFC[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_089/ov_SC03_089_jr_80140608.c b/src/ov_SC03_089/ov_SC03_089_jr_80140608.c index 366cfcc0b..5be29bf02 100644 --- a/src/ov_SC03_089/ov_SC03_089_jr_80140608.c +++ b/src/ov_SC03_089/ov_SC03_089_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8018AFC0[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8018AFC0[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_089/ov_SC03_089_jr_8015C32C.c b/src/ov_SC03_089/ov_SC03_089_jr_8015C32C.c index e65a5b7fb..cf75b8606 100644 --- a/src/ov_SC03_089/ov_SC03_089_jr_8015C32C.c +++ b/src/ov_SC03_089/ov_SC03_089_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_8018BD00)[*(u16 *)param_1](); + ((void (**)(s32 *))D_8018BD00)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_089/ov_SC03_089_jr_8016AB6C.c b/src/ov_SC03_089/ov_SC03_089_jr_8016AB6C.c index 8a80c8679..ed3c7e4de 100644 --- a/src/ov_SC03_089/ov_SC03_089_jr_8016AB6C.c +++ b/src/ov_SC03_089/ov_SC03_089_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8018C7C8)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_090/ov_SC03_090_after.c b/src/ov_SC03_090/ov_SC03_090_after.c index 0510bcbcf..af582195b 100644 --- a/src/ov_SC03_090/ov_SC03_090_after.c +++ b/src/ov_SC03_090/ov_SC03_090_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_090/ov_SC03_090_jr_80135D20.c b/src/ov_SC03_090/ov_SC03_090_jr_80135D20.c index cbb7ad1fb..ec343ac7c 100644 --- a/src/ov_SC03_090/ov_SC03_090_jr_80135D20.c +++ b/src/ov_SC03_090/ov_SC03_090_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8018C018)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8018C018)[2]; d = dx; denom = -(*(s16 **)&D_8018C024)[2]; } else { denom = (*(s16 **)&D_8018C024)[2]; - d = (*(s16 **)&D_8018C018)[2] - (s16) arg2; + d = (*(s16 **)&D_8018C018)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8018C020[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8018C020[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_090/ov_SC03_090_jr_80140608.c b/src/ov_SC03_090/ov_SC03_090_jr_80140608.c index cee946e48..d8d26f45d 100644 --- a/src/ov_SC03_090/ov_SC03_090_jr_80140608.c +++ b/src/ov_SC03_090/ov_SC03_090_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8018D3E4[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8018D3E4[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_090/ov_SC03_090_jr_8015C32C.c b/src/ov_SC03_090/ov_SC03_090_jr_8015C32C.c index 87b6d1591..b60e8028b 100644 --- a/src/ov_SC03_090/ov_SC03_090_jr_8015C32C.c +++ b/src/ov_SC03_090/ov_SC03_090_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_8018E124)[*(u16 *)param_1](); + ((void (**)(s32 *))D_8018E124)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_090/ov_SC03_090_jr_8016AB6C.c b/src/ov_SC03_090/ov_SC03_090_jr_8016AB6C.c index 1993b2176..af0304a10 100644 --- a/src/ov_SC03_090/ov_SC03_090_jr_8016AB6C.c +++ b/src/ov_SC03_090/ov_SC03_090_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8018EBEC)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_091/ov_SC03_091_after.c b/src/ov_SC03_091/ov_SC03_091_after.c index 5f6df5aa5..5fabe0036 100644 --- a/src/ov_SC03_091/ov_SC03_091_after.c +++ b/src/ov_SC03_091/ov_SC03_091_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_091/ov_SC03_091_jr_80135D20.c b/src/ov_SC03_091/ov_SC03_091_jr_80135D20.c index 081ab3a93..127ac32a0 100644 --- a/src/ov_SC03_091/ov_SC03_091_jr_80135D20.c +++ b/src/ov_SC03_091/ov_SC03_091_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8018CEC0)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8018CEC0)[2]; d = dx; denom = -(*(s16 **)&D_8018CECC)[2]; } else { denom = (*(s16 **)&D_8018CECC)[2]; - d = (*(s16 **)&D_8018CEC0)[2] - (s16) arg2; + d = (*(s16 **)&D_8018CEC0)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8018CEC8[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8018CEC8[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_091/ov_SC03_091_jr_80140608.c b/src/ov_SC03_091/ov_SC03_091_jr_80140608.c index 5e9125ffb..33a18b1c1 100644 --- a/src/ov_SC03_091/ov_SC03_091_jr_80140608.c +++ b/src/ov_SC03_091/ov_SC03_091_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8018E28C[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8018E28C[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_091/ov_SC03_091_jr_8015C32C.c b/src/ov_SC03_091/ov_SC03_091_jr_8015C32C.c index 52a39462b..4ccfc1a80 100644 --- a/src/ov_SC03_091/ov_SC03_091_jr_8015C32C.c +++ b/src/ov_SC03_091/ov_SC03_091_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_8018EFCC)[*(u16 *)param_1](); + ((void (**)(s32 *))D_8018EFCC)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_091/ov_SC03_091_jr_8016AB6C.c b/src/ov_SC03_091/ov_SC03_091_jr_8016AB6C.c index 3a77fd5db..d9505745c 100644 --- a/src/ov_SC03_091/ov_SC03_091_jr_8016AB6C.c +++ b/src/ov_SC03_091/ov_SC03_091_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8018FA94)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_092/ov_SC03_092_after.c b/src/ov_SC03_092/ov_SC03_092_after.c index 338b211be..fd47e1266 100644 --- a/src/ov_SC03_092/ov_SC03_092_after.c +++ b/src/ov_SC03_092/ov_SC03_092_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_092/ov_SC03_092_jr_80135D20.c b/src/ov_SC03_092/ov_SC03_092_jr_80135D20.c index 3230cdef6..cbf099ea1 100644 --- a/src/ov_SC03_092/ov_SC03_092_jr_80135D20.c +++ b/src/ov_SC03_092/ov_SC03_092_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80185290)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80185290)[2]; d = dx; denom = -(*(s16 **)&D_8018529C)[2]; } else { denom = (*(s16 **)&D_8018529C)[2]; - d = (*(s16 **)&D_80185290)[2] - (s16) arg2; + d = (*(s16 **)&D_80185290)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80185298[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80185298[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_092/ov_SC03_092_jr_80140608.c b/src/ov_SC03_092/ov_SC03_092_jr_80140608.c index 08f5f33c2..13d7263a4 100644 --- a/src/ov_SC03_092/ov_SC03_092_jr_80140608.c +++ b/src/ov_SC03_092/ov_SC03_092_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8018665C[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8018665C[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_092/ov_SC03_092_jr_8015C32C.c b/src/ov_SC03_092/ov_SC03_092_jr_8015C32C.c index 196b89ad4..80677143c 100644 --- a/src/ov_SC03_092/ov_SC03_092_jr_8015C32C.c +++ b/src/ov_SC03_092/ov_SC03_092_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_8018739C)[*(u16 *)param_1](); + ((void (**)(s32 *))D_8018739C)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_092/ov_SC03_092_jr_8016AB6C.c b/src/ov_SC03_092/ov_SC03_092_jr_8016AB6C.c index 13d01abd1..3a50c1ea6 100644 --- a/src/ov_SC03_092/ov_SC03_092_jr_8016AB6C.c +++ b/src/ov_SC03_092/ov_SC03_092_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80187E64)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_093/ov_SC03_093_after.c b/src/ov_SC03_093/ov_SC03_093_after.c index d68c4314d..1133bfcae 100644 --- a/src/ov_SC03_093/ov_SC03_093_after.c +++ b/src/ov_SC03_093/ov_SC03_093_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_093/ov_SC03_093_jr_80135D20.c b/src/ov_SC03_093/ov_SC03_093_jr_80135D20.c index bb32be008..8918b201b 100644 --- a/src/ov_SC03_093/ov_SC03_093_jr_80135D20.c +++ b/src/ov_SC03_093/ov_SC03_093_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80186468)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80186468)[2]; d = dx; denom = -(*(s16 **)&D_80186474)[2]; } else { denom = (*(s16 **)&D_80186474)[2]; - d = (*(s16 **)&D_80186468)[2] - (s16) arg2; + d = (*(s16 **)&D_80186468)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80186470[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80186470[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_093/ov_SC03_093_jr_80140608.c b/src/ov_SC03_093/ov_SC03_093_jr_80140608.c index bd1ef6da2..729ba6939 100644 --- a/src/ov_SC03_093/ov_SC03_093_jr_80140608.c +++ b/src/ov_SC03_093/ov_SC03_093_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80187834[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80187834[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_093/ov_SC03_093_jr_8015C32C.c b/src/ov_SC03_093/ov_SC03_093_jr_8015C32C.c index 78a50f359..de95e6d7e 100644 --- a/src/ov_SC03_093/ov_SC03_093_jr_8015C32C.c +++ b/src/ov_SC03_093/ov_SC03_093_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80188574)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80188574)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_093/ov_SC03_093_jr_8016AB6C.c b/src/ov_SC03_093/ov_SC03_093_jr_8016AB6C.c index 6ca8eb15a..2b5a11588 100644 --- a/src/ov_SC03_093/ov_SC03_093_jr_8016AB6C.c +++ b/src/ov_SC03_093/ov_SC03_093_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8018903C)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_094/ov_SC03_094_after.c b/src/ov_SC03_094/ov_SC03_094_after.c index dabfed425..aa0eb642a 100644 --- a/src/ov_SC03_094/ov_SC03_094_after.c +++ b/src/ov_SC03_094/ov_SC03_094_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_094/ov_SC03_094_jr_80135D20.c b/src/ov_SC03_094/ov_SC03_094_jr_80135D20.c index ae6b22850..5ff7b29bb 100644 --- a/src/ov_SC03_094/ov_SC03_094_jr_80135D20.c +++ b/src/ov_SC03_094/ov_SC03_094_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80187E64)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80187E64)[2]; d = dx; denom = -(*(s16 **)&D_80187E70)[2]; } else { denom = (*(s16 **)&D_80187E70)[2]; - d = (*(s16 **)&D_80187E64)[2] - (s16) arg2; + d = (*(s16 **)&D_80187E64)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80187E6C[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80187E6C[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_094/ov_SC03_094_jr_80140608.c b/src/ov_SC03_094/ov_SC03_094_jr_80140608.c index 7efe8b779..56d8a741e 100644 --- a/src/ov_SC03_094/ov_SC03_094_jr_80140608.c +++ b/src/ov_SC03_094/ov_SC03_094_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80189230[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80189230[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_094/ov_SC03_094_jr_8015C32C.c b/src/ov_SC03_094/ov_SC03_094_jr_8015C32C.c index 2ae7bb7b5..1b7e0f65f 100644 --- a/src/ov_SC03_094/ov_SC03_094_jr_8015C32C.c +++ b/src/ov_SC03_094/ov_SC03_094_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80189F70)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80189F70)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_094/ov_SC03_094_jr_8016AB6C.c b/src/ov_SC03_094/ov_SC03_094_jr_8016AB6C.c index 02ffd7980..9c0cbf94d 100644 --- a/src/ov_SC03_094/ov_SC03_094_jr_8016AB6C.c +++ b/src/ov_SC03_094/ov_SC03_094_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8018AA38)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_095/ov_SC03_095_after.c b/src/ov_SC03_095/ov_SC03_095_after.c index c1af073a9..272dd85da 100644 --- a/src/ov_SC03_095/ov_SC03_095_after.c +++ b/src/ov_SC03_095/ov_SC03_095_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_095/ov_SC03_095_jr_80135D20.c b/src/ov_SC03_095/ov_SC03_095_jr_80135D20.c index 71592d202..d1b27d260 100644 --- a/src/ov_SC03_095/ov_SC03_095_jr_80135D20.c +++ b/src/ov_SC03_095/ov_SC03_095_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_801814C4)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_801814C4)[2]; d = dx; denom = -(*(s16 **)&D_801814D0)[2]; } else { denom = (*(s16 **)&D_801814D0)[2]; - d = (*(s16 **)&D_801814C4)[2] - (s16) arg2; + d = (*(s16 **)&D_801814C4)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_801814CC[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_801814CC[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_095/ov_SC03_095_jr_80140608.c b/src/ov_SC03_095/ov_SC03_095_jr_80140608.c index cc89bb3c4..297ab61a9 100644 --- a/src/ov_SC03_095/ov_SC03_095_jr_80140608.c +++ b/src/ov_SC03_095/ov_SC03_095_jr_80140608.c @@ -2111,13 +2111,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80182890[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80182890[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_095/ov_SC03_095_jr_8015C32C.c b/src/ov_SC03_095/ov_SC03_095_jr_8015C32C.c index fcdbbffbc..3ac8b3ade 100644 --- a/src/ov_SC03_095/ov_SC03_095_jr_8015C32C.c +++ b/src/ov_SC03_095/ov_SC03_095_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_801835D0)[*(u16 *)param_1](); + ((void (**)(s32 *))D_801835D0)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_095/ov_SC03_095_jr_8016AB6C.c b/src/ov_SC03_095/ov_SC03_095_jr_8016AB6C.c index 56edd4787..e99ddca5b 100644 --- a/src/ov_SC03_095/ov_SC03_095_jr_8016AB6C.c +++ b/src/ov_SC03_095/ov_SC03_095_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80184098)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_096/ov_SC03_096_after.c b/src/ov_SC03_096/ov_SC03_096_after.c index d5da7073f..a66fca91a 100644 --- a/src/ov_SC03_096/ov_SC03_096_after.c +++ b/src/ov_SC03_096/ov_SC03_096_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_096/ov_SC03_096_jr_80135D20.c b/src/ov_SC03_096/ov_SC03_096_jr_80135D20.c index 9583fde5c..cfeb30dc2 100644 --- a/src/ov_SC03_096/ov_SC03_096_jr_80135D20.c +++ b/src/ov_SC03_096/ov_SC03_096_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80181044)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80181044)[2]; d = dx; denom = -(*(s16 **)&D_80181050)[2]; } else { denom = (*(s16 **)&D_80181050)[2]; - d = (*(s16 **)&D_80181044)[2] - (s16) arg2; + d = (*(s16 **)&D_80181044)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8018104C[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8018104C[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_096/ov_SC03_096_jr_80140608.c b/src/ov_SC03_096/ov_SC03_096_jr_80140608.c index 96601a5c5..e4dc06abf 100644 --- a/src/ov_SC03_096/ov_SC03_096_jr_80140608.c +++ b/src/ov_SC03_096/ov_SC03_096_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80182410[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80182410[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_096/ov_SC03_096_jr_8015C32C.c b/src/ov_SC03_096/ov_SC03_096_jr_8015C32C.c index 83b4f6ac6..c83152369 100644 --- a/src/ov_SC03_096/ov_SC03_096_jr_8015C32C.c +++ b/src/ov_SC03_096/ov_SC03_096_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80183150)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80183150)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_096/ov_SC03_096_jr_8016AB6C.c b/src/ov_SC03_096/ov_SC03_096_jr_8016AB6C.c index d32acda9a..2a0561f4a 100644 --- a/src/ov_SC03_096/ov_SC03_096_jr_8016AB6C.c +++ b/src/ov_SC03_096/ov_SC03_096_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80183C18)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_097/ov_SC03_097_after.c b/src/ov_SC03_097/ov_SC03_097_after.c index 636723969..786c396c0 100644 --- a/src/ov_SC03_097/ov_SC03_097_after.c +++ b/src/ov_SC03_097/ov_SC03_097_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_097/ov_SC03_097_jr_80135D20.c b/src/ov_SC03_097/ov_SC03_097_jr_80135D20.c index 545369304..6651d9e87 100644 --- a/src/ov_SC03_097/ov_SC03_097_jr_80135D20.c +++ b/src/ov_SC03_097/ov_SC03_097_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80186424)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80186424)[2]; d = dx; denom = -(*(s16 **)&D_80186430)[2]; } else { denom = (*(s16 **)&D_80186430)[2]; - d = (*(s16 **)&D_80186424)[2] - (s16) arg2; + d = (*(s16 **)&D_80186424)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8018642C[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8018642C[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_097/ov_SC03_097_jr_80140608.c b/src/ov_SC03_097/ov_SC03_097_jr_80140608.c index dfa0533c5..25873e707 100644 --- a/src/ov_SC03_097/ov_SC03_097_jr_80140608.c +++ b/src/ov_SC03_097/ov_SC03_097_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_801877F0[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_801877F0[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_097/ov_SC03_097_jr_8015C32C.c b/src/ov_SC03_097/ov_SC03_097_jr_8015C32C.c index 7ca0a86bd..d5633f37a 100644 --- a/src/ov_SC03_097/ov_SC03_097_jr_8015C32C.c +++ b/src/ov_SC03_097/ov_SC03_097_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80188530)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80188530)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_097/ov_SC03_097_jr_8016AB6C.c b/src/ov_SC03_097/ov_SC03_097_jr_8016AB6C.c index aa56f903e..fc8ac82f8 100644 --- a/src/ov_SC03_097/ov_SC03_097_jr_8016AB6C.c +++ b/src/ov_SC03_097/ov_SC03_097_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80188FF8)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_098/ov_SC03_098_after.c b/src/ov_SC03_098/ov_SC03_098_after.c index 4764dda08..13e5cd342 100644 --- a/src/ov_SC03_098/ov_SC03_098_after.c +++ b/src/ov_SC03_098/ov_SC03_098_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_098/ov_SC03_098_jr_80135D20.c b/src/ov_SC03_098/ov_SC03_098_jr_80135D20.c index d2dd289c8..1c5ad6e2b 100644 --- a/src/ov_SC03_098/ov_SC03_098_jr_80135D20.c +++ b/src/ov_SC03_098/ov_SC03_098_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_801858B0)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_801858B0)[2]; d = dx; denom = -(*(s16 **)&D_801858BC)[2]; } else { denom = (*(s16 **)&D_801858BC)[2]; - d = (*(s16 **)&D_801858B0)[2] - (s16) arg2; + d = (*(s16 **)&D_801858B0)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_801858B8[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_801858B8[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_098/ov_SC03_098_jr_80140608.c b/src/ov_SC03_098/ov_SC03_098_jr_80140608.c index 6835205a1..9ad2f549c 100644 --- a/src/ov_SC03_098/ov_SC03_098_jr_80140608.c +++ b/src/ov_SC03_098/ov_SC03_098_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80186C7C[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80186C7C[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_098/ov_SC03_098_jr_8015C32C.c b/src/ov_SC03_098/ov_SC03_098_jr_8015C32C.c index f8fb6e356..d31efa614 100644 --- a/src/ov_SC03_098/ov_SC03_098_jr_8015C32C.c +++ b/src/ov_SC03_098/ov_SC03_098_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_801879BC)[*(u16 *)param_1](); + ((void (**)(s32 *))D_801879BC)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_098/ov_SC03_098_jr_8016AB6C.c b/src/ov_SC03_098/ov_SC03_098_jr_8016AB6C.c index f0f5c8212..1c496748e 100644 --- a/src/ov_SC03_098/ov_SC03_098_jr_8016AB6C.c +++ b/src/ov_SC03_098/ov_SC03_098_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80188484)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_099/ov_SC03_099_after.c b/src/ov_SC03_099/ov_SC03_099_after.c index d764cba47..464ce1278 100644 --- a/src/ov_SC03_099/ov_SC03_099_after.c +++ b/src/ov_SC03_099/ov_SC03_099_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_099/ov_SC03_099_jr_80135D20.c b/src/ov_SC03_099/ov_SC03_099_jr_80135D20.c index e30c6a3f3..71d712b6a 100644 --- a/src/ov_SC03_099/ov_SC03_099_jr_80135D20.c +++ b/src/ov_SC03_099/ov_SC03_099_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_801839B0)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_801839B0)[2]; d = dx; denom = -(*(s16 **)&D_801839BC)[2]; } else { denom = (*(s16 **)&D_801839BC)[2]; - d = (*(s16 **)&D_801839B0)[2] - (s16) arg2; + d = (*(s16 **)&D_801839B0)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_801839B8[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_801839B8[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_099/ov_SC03_099_jr_80140608.c b/src/ov_SC03_099/ov_SC03_099_jr_80140608.c index a500b6b99..6b5cee46a 100644 --- a/src/ov_SC03_099/ov_SC03_099_jr_80140608.c +++ b/src/ov_SC03_099/ov_SC03_099_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80184D7C[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80184D7C[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_099/ov_SC03_099_jr_8015C32C.c b/src/ov_SC03_099/ov_SC03_099_jr_8015C32C.c index d4b0edeef..4c10fcb73 100644 --- a/src/ov_SC03_099/ov_SC03_099_jr_8015C32C.c +++ b/src/ov_SC03_099/ov_SC03_099_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80185ABC)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80185ABC)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_099/ov_SC03_099_jr_8016AB6C.c b/src/ov_SC03_099/ov_SC03_099_jr_8016AB6C.c index a8c03bc00..8d4528cf0 100644 --- a/src/ov_SC03_099/ov_SC03_099_jr_8016AB6C.c +++ b/src/ov_SC03_099/ov_SC03_099_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80186584)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_100/ov_SC03_100_after.c b/src/ov_SC03_100/ov_SC03_100_after.c index f521c0f9d..7468dd4af 100644 --- a/src/ov_SC03_100/ov_SC03_100_after.c +++ b/src/ov_SC03_100/ov_SC03_100_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_100/ov_SC03_100_jr_80135D20.c b/src/ov_SC03_100/ov_SC03_100_jr_80135D20.c index 8ae0618e8..8e7955690 100644 --- a/src/ov_SC03_100/ov_SC03_100_jr_80135D20.c +++ b/src/ov_SC03_100/ov_SC03_100_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80184E7C)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80184E7C)[2]; d = dx; denom = -(*(s16 **)&D_80184E88)[2]; } else { denom = (*(s16 **)&D_80184E88)[2]; - d = (*(s16 **)&D_80184E7C)[2] - (s16) arg2; + d = (*(s16 **)&D_80184E7C)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80184E84[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80184E84[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_100/ov_SC03_100_jr_80140608.c b/src/ov_SC03_100/ov_SC03_100_jr_80140608.c index c680f7dec..2967b7101 100644 --- a/src/ov_SC03_100/ov_SC03_100_jr_80140608.c +++ b/src/ov_SC03_100/ov_SC03_100_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80186248[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80186248[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_100/ov_SC03_100_jr_8015C32C.c b/src/ov_SC03_100/ov_SC03_100_jr_8015C32C.c index c95a1ab49..4225e9ece 100644 --- a/src/ov_SC03_100/ov_SC03_100_jr_8015C32C.c +++ b/src/ov_SC03_100/ov_SC03_100_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80186F88)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80186F88)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_100/ov_SC03_100_jr_8016AB6C.c b/src/ov_SC03_100/ov_SC03_100_jr_8016AB6C.c index fb3eab3ab..e187465ca 100644 --- a/src/ov_SC03_100/ov_SC03_100_jr_8016AB6C.c +++ b/src/ov_SC03_100/ov_SC03_100_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80187A50)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_101/ov_SC03_101_after.c b/src/ov_SC03_101/ov_SC03_101_after.c index aea713551..f9d49868c 100644 --- a/src/ov_SC03_101/ov_SC03_101_after.c +++ b/src/ov_SC03_101/ov_SC03_101_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_101/ov_SC03_101_jr_80135D20.c b/src/ov_SC03_101/ov_SC03_101_jr_80135D20.c index f19f1148c..0cc2c7e90 100644 --- a/src/ov_SC03_101/ov_SC03_101_jr_80135D20.c +++ b/src/ov_SC03_101/ov_SC03_101_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80183E58)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80183E58)[2]; d = dx; denom = -(*(s16 **)&D_80183E64)[2]; } else { denom = (*(s16 **)&D_80183E64)[2]; - d = (*(s16 **)&D_80183E58)[2] - (s16) arg2; + d = (*(s16 **)&D_80183E58)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80183E60[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80183E60[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_101/ov_SC03_101_jr_80140608.c b/src/ov_SC03_101/ov_SC03_101_jr_80140608.c index 4911b6d06..ed3a1de84 100644 --- a/src/ov_SC03_101/ov_SC03_101_jr_80140608.c +++ b/src/ov_SC03_101/ov_SC03_101_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80185224[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80185224[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_101/ov_SC03_101_jr_8015C32C.c b/src/ov_SC03_101/ov_SC03_101_jr_8015C32C.c index 3de79a47e..0bfc36c57 100644 --- a/src/ov_SC03_101/ov_SC03_101_jr_8015C32C.c +++ b/src/ov_SC03_101/ov_SC03_101_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80185F64)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80185F64)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_101/ov_SC03_101_jr_8016AB6C.c b/src/ov_SC03_101/ov_SC03_101_jr_8016AB6C.c index 005521195..65bdf645a 100644 --- a/src/ov_SC03_101/ov_SC03_101_jr_8016AB6C.c +++ b/src/ov_SC03_101/ov_SC03_101_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80186A2C)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_102/ov_SC03_102_after.c b/src/ov_SC03_102/ov_SC03_102_after.c index aeea74821..603ec83b6 100644 --- a/src/ov_SC03_102/ov_SC03_102_after.c +++ b/src/ov_SC03_102/ov_SC03_102_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_102/ov_SC03_102_jr_80135D20.c b/src/ov_SC03_102/ov_SC03_102_jr_80135D20.c index ce83bb55b..168b5b3c0 100644 --- a/src/ov_SC03_102/ov_SC03_102_jr_80135D20.c +++ b/src/ov_SC03_102/ov_SC03_102_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80186710)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80186710)[2]; d = dx; denom = -(*(s16 **)&D_8018671C)[2]; } else { denom = (*(s16 **)&D_8018671C)[2]; - d = (*(s16 **)&D_80186710)[2] - (s16) arg2; + d = (*(s16 **)&D_80186710)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80186718[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80186718[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_102/ov_SC03_102_jr_80140608.c b/src/ov_SC03_102/ov_SC03_102_jr_80140608.c index 0e7d4dab4..43f0688b9 100644 --- a/src/ov_SC03_102/ov_SC03_102_jr_80140608.c +++ b/src/ov_SC03_102/ov_SC03_102_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80187ADC[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80187ADC[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_102/ov_SC03_102_jr_8015C32C.c b/src/ov_SC03_102/ov_SC03_102_jr_8015C32C.c index 746560309..71be30677 100644 --- a/src/ov_SC03_102/ov_SC03_102_jr_8015C32C.c +++ b/src/ov_SC03_102/ov_SC03_102_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_8018881C)[*(u16 *)param_1](); + ((void (**)(s32 *))D_8018881C)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_102/ov_SC03_102_jr_8016AB6C.c b/src/ov_SC03_102/ov_SC03_102_jr_8016AB6C.c index 1caff155c..acc5b9fb7 100644 --- a/src/ov_SC03_102/ov_SC03_102_jr_8016AB6C.c +++ b/src/ov_SC03_102/ov_SC03_102_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_801892E4)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_103/ov_SC03_103_after.c b/src/ov_SC03_103/ov_SC03_103_after.c index dbb68a6aa..ff709f2a1 100644 --- a/src/ov_SC03_103/ov_SC03_103_after.c +++ b/src/ov_SC03_103/ov_SC03_103_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_103/ov_SC03_103_jr_80135D20.c b/src/ov_SC03_103/ov_SC03_103_jr_80135D20.c index 3bb5edd8d..a074702a9 100644 --- a/src/ov_SC03_103/ov_SC03_103_jr_80135D20.c +++ b/src/ov_SC03_103/ov_SC03_103_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_801846C0)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_801846C0)[2]; d = dx; denom = -(*(s16 **)&D_801846CC)[2]; } else { denom = (*(s16 **)&D_801846CC)[2]; - d = (*(s16 **)&D_801846C0)[2] - (s16) arg2; + d = (*(s16 **)&D_801846C0)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_801846C8[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_801846C8[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_103/ov_SC03_103_jr_80140608.c b/src/ov_SC03_103/ov_SC03_103_jr_80140608.c index 5da6ce2fc..23bb439a5 100644 --- a/src/ov_SC03_103/ov_SC03_103_jr_80140608.c +++ b/src/ov_SC03_103/ov_SC03_103_jr_80140608.c @@ -2131,13 +2131,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80185A8C[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80185A8C[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_103/ov_SC03_103_jr_8015C32C.c b/src/ov_SC03_103/ov_SC03_103_jr_8015C32C.c index d517796bc..ac7266ff2 100644 --- a/src/ov_SC03_103/ov_SC03_103_jr_8015C32C.c +++ b/src/ov_SC03_103/ov_SC03_103_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_801867CC)[*(u16 *)param_1](); + ((void (**)(s32 *))D_801867CC)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_103/ov_SC03_103_jr_8016AB6C.c b/src/ov_SC03_103/ov_SC03_103_jr_8016AB6C.c index 3b6dce270..2da119012 100644 --- a/src/ov_SC03_103/ov_SC03_103_jr_8016AB6C.c +++ b/src/ov_SC03_103/ov_SC03_103_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80187294)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_104/ov_SC03_104_after.c b/src/ov_SC03_104/ov_SC03_104_after.c index b3a2a7b6d..da947cc15 100644 --- a/src/ov_SC03_104/ov_SC03_104_after.c +++ b/src/ov_SC03_104/ov_SC03_104_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_104/ov_SC03_104_jr_80135D20.c b/src/ov_SC03_104/ov_SC03_104_jr_80135D20.c index a838dfe13..2beb4ecec 100644 --- a/src/ov_SC03_104/ov_SC03_104_jr_80135D20.c +++ b/src/ov_SC03_104/ov_SC03_104_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8018B250)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8018B250)[2]; d = dx; denom = -(*(s16 **)&D_8018B25C)[2]; } else { denom = (*(s16 **)&D_8018B25C)[2]; - d = (*(s16 **)&D_8018B250)[2] - (s16) arg2; + d = (*(s16 **)&D_8018B250)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8018B258[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8018B258[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_104/ov_SC03_104_jr_80140608.c b/src/ov_SC03_104/ov_SC03_104_jr_80140608.c index 047789dc3..64d58aca9 100644 --- a/src/ov_SC03_104/ov_SC03_104_jr_80140608.c +++ b/src/ov_SC03_104/ov_SC03_104_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8018C61C[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8018C61C[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_104/ov_SC03_104_jr_8015C32C.c b/src/ov_SC03_104/ov_SC03_104_jr_8015C32C.c index 34f29aa7f..fe1f43468 100644 --- a/src/ov_SC03_104/ov_SC03_104_jr_8015C32C.c +++ b/src/ov_SC03_104/ov_SC03_104_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_8018D35C)[*(u16 *)param_1](); + ((void (**)(s32 *))D_8018D35C)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_104/ov_SC03_104_jr_8016AB6C.c b/src/ov_SC03_104/ov_SC03_104_jr_8016AB6C.c index 2ff40a85c..466ecdca7 100644 --- a/src/ov_SC03_104/ov_SC03_104_jr_8016AB6C.c +++ b/src/ov_SC03_104/ov_SC03_104_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8018DE24)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_105/ov_SC03_105_after.c b/src/ov_SC03_105/ov_SC03_105_after.c index 4616d3a30..1b4423eda 100644 --- a/src/ov_SC03_105/ov_SC03_105_after.c +++ b/src/ov_SC03_105/ov_SC03_105_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_105/ov_SC03_105_jr_80135D20.c b/src/ov_SC03_105/ov_SC03_105_jr_80135D20.c index e2421aea8..635f96f2a 100644 --- a/src/ov_SC03_105/ov_SC03_105_jr_80135D20.c +++ b/src/ov_SC03_105/ov_SC03_105_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8018A8D8)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8018A8D8)[2]; d = dx; denom = -(*(s16 **)&D_8018A8E4)[2]; } else { denom = (*(s16 **)&D_8018A8E4)[2]; - d = (*(s16 **)&D_8018A8D8)[2] - (s16) arg2; + d = (*(s16 **)&D_8018A8D8)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8018A8E0[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8018A8E0[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_105/ov_SC03_105_jr_80140608.c b/src/ov_SC03_105/ov_SC03_105_jr_80140608.c index 5dff50dab..1eb5cf2c1 100644 --- a/src/ov_SC03_105/ov_SC03_105_jr_80140608.c +++ b/src/ov_SC03_105/ov_SC03_105_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8018BCA4[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8018BCA4[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_105/ov_SC03_105_jr_8015C32C.c b/src/ov_SC03_105/ov_SC03_105_jr_8015C32C.c index c22674586..8465249f2 100644 --- a/src/ov_SC03_105/ov_SC03_105_jr_8015C32C.c +++ b/src/ov_SC03_105/ov_SC03_105_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_8018C9E4)[*(u16 *)param_1](); + ((void (**)(s32 *))D_8018C9E4)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_105/ov_SC03_105_jr_8016AB6C.c b/src/ov_SC03_105/ov_SC03_105_jr_8016AB6C.c index 897385481..8c1946e08 100644 --- a/src/ov_SC03_105/ov_SC03_105_jr_8016AB6C.c +++ b/src/ov_SC03_105/ov_SC03_105_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8018D4AC)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_107/ov_SC03_107_jr_8013F350.c b/src/ov_SC03_107/ov_SC03_107_jr_8013F350.c index b26c6d338..e94d0c401 100644 --- a/src/ov_SC03_107/ov_SC03_107_jr_8013F350.c +++ b/src/ov_SC03_107/ov_SC03_107_jr_8013F350.c @@ -2811,13 +2811,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80183E04[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus4) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80183E04[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_107/ov_SC03_107_jr_8016AE5C.c b/src/ov_SC03_107/ov_SC03_107_jr_8016AE5C.c index e6933b854..53872d6b2 100644 --- a/src/ov_SC03_107/ov_SC03_107_jr_8016AE5C.c +++ b/src/ov_SC03_107/ov_SC03_107_jr_8016AE5C.c @@ -2821,12 +2821,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2839,16 +2839,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8018560C)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_108/ov_SC03_108_after.c b/src/ov_SC03_108/ov_SC03_108_after.c index bdf38cf1e..55dd77245 100644 --- a/src/ov_SC03_108/ov_SC03_108_after.c +++ b/src/ov_SC03_108/ov_SC03_108_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_108/ov_SC03_108_jr_80135D20.c b/src/ov_SC03_108/ov_SC03_108_jr_80135D20.c index 82c92c534..2da362751 100644 --- a/src/ov_SC03_108/ov_SC03_108_jr_80135D20.c +++ b/src/ov_SC03_108/ov_SC03_108_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80181230)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80181230)[2]; d = dx; denom = -(*(s16 **)&D_8018123C)[2]; } else { denom = (*(s16 **)&D_8018123C)[2]; - d = (*(s16 **)&D_80181230)[2] - (s16) arg2; + d = (*(s16 **)&D_80181230)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80181238[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80181238[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_108/ov_SC03_108_jr_80140608.c b/src/ov_SC03_108/ov_SC03_108_jr_80140608.c index e9d03a55c..9cf691d38 100644 --- a/src/ov_SC03_108/ov_SC03_108_jr_80140608.c +++ b/src/ov_SC03_108/ov_SC03_108_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_801825FC[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_801825FC[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_108/ov_SC03_108_jr_8015C32C.c b/src/ov_SC03_108/ov_SC03_108_jr_8015C32C.c index e9223f0a1..041a90784 100644 --- a/src/ov_SC03_108/ov_SC03_108_jr_8015C32C.c +++ b/src/ov_SC03_108/ov_SC03_108_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_8018333C)[*(u16 *)param_1](); + ((void (**)(s32 *))D_8018333C)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_108/ov_SC03_108_jr_8016AB6C.c b/src/ov_SC03_108/ov_SC03_108_jr_8016AB6C.c index ae7989134..2e996120d 100644 --- a/src/ov_SC03_108/ov_SC03_108_jr_8016AB6C.c +++ b/src/ov_SC03_108/ov_SC03_108_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80183E04)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_109/ov_SC03_109_after.c b/src/ov_SC03_109/ov_SC03_109_after.c index ea3a441a0..5436f35e4 100644 --- a/src/ov_SC03_109/ov_SC03_109_after.c +++ b/src/ov_SC03_109/ov_SC03_109_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_109/ov_SC03_109_jr_80135D20.c b/src/ov_SC03_109/ov_SC03_109_jr_80135D20.c index 379c220c5..78cc5b491 100644 --- a/src/ov_SC03_109/ov_SC03_109_jr_80135D20.c +++ b/src/ov_SC03_109/ov_SC03_109_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8017E8DC)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8017E8DC)[2]; d = dx; denom = -(*(s16 **)&D_8017E8E8)[2]; } else { denom = (*(s16 **)&D_8017E8E8)[2]; - d = (*(s16 **)&D_8017E8DC)[2] - (s16) arg2; + d = (*(s16 **)&D_8017E8DC)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8017E8E4[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8017E8E4[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_109/ov_SC03_109_jr_80140608.c b/src/ov_SC03_109/ov_SC03_109_jr_80140608.c index c443e216f..2c2d060eb 100644 --- a/src/ov_SC03_109/ov_SC03_109_jr_80140608.c +++ b/src/ov_SC03_109/ov_SC03_109_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8017FCA8[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8017FCA8[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_109/ov_SC03_109_jr_8015C32C.c b/src/ov_SC03_109/ov_SC03_109_jr_8015C32C.c index 2675f9d79..7f7444368 100644 --- a/src/ov_SC03_109/ov_SC03_109_jr_8015C32C.c +++ b/src/ov_SC03_109/ov_SC03_109_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_801809E8)[*(u16 *)param_1](); + ((void (**)(s32 *))D_801809E8)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_109/ov_SC03_109_jr_8016AB6C.c b/src/ov_SC03_109/ov_SC03_109_jr_8016AB6C.c index 27876132d..fbd7c70b8 100644 --- a/src/ov_SC03_109/ov_SC03_109_jr_8016AB6C.c +++ b/src/ov_SC03_109/ov_SC03_109_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_801814B0)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_110/ov_SC03_110_after.c b/src/ov_SC03_110/ov_SC03_110_after.c index b08ef2b9a..7f61e53d8 100644 --- a/src/ov_SC03_110/ov_SC03_110_after.c +++ b/src/ov_SC03_110/ov_SC03_110_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_110/ov_SC03_110_jr_80135D20.c b/src/ov_SC03_110/ov_SC03_110_jr_80135D20.c index f2dcdc9e6..74234bff3 100644 --- a/src/ov_SC03_110/ov_SC03_110_jr_80135D20.c +++ b/src/ov_SC03_110/ov_SC03_110_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_801822FC)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_801822FC)[2]; d = dx; denom = -(*(s16 **)&D_80182308)[2]; } else { denom = (*(s16 **)&D_80182308)[2]; - d = (*(s16 **)&D_801822FC)[2] - (s16) arg2; + d = (*(s16 **)&D_801822FC)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80182304[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80182304[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_110/ov_SC03_110_jr_80140608.c b/src/ov_SC03_110/ov_SC03_110_jr_80140608.c index 1dc4ec3ba..4e758d41c 100644 --- a/src/ov_SC03_110/ov_SC03_110_jr_80140608.c +++ b/src/ov_SC03_110/ov_SC03_110_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_801836C8[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_801836C8[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_110/ov_SC03_110_jr_8015C32C.c b/src/ov_SC03_110/ov_SC03_110_jr_8015C32C.c index 88ab7063c..94f93d666 100644 --- a/src/ov_SC03_110/ov_SC03_110_jr_8015C32C.c +++ b/src/ov_SC03_110/ov_SC03_110_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80184408)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80184408)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_110/ov_SC03_110_jr_8016AB6C.c b/src/ov_SC03_110/ov_SC03_110_jr_8016AB6C.c index 7d83ce097..ff23b0911 100644 --- a/src/ov_SC03_110/ov_SC03_110_jr_8016AB6C.c +++ b/src/ov_SC03_110/ov_SC03_110_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80184ED0)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_111/ov_SC03_111_after.c b/src/ov_SC03_111/ov_SC03_111_after.c index 28a6369dc..0d43c0a43 100644 --- a/src/ov_SC03_111/ov_SC03_111_after.c +++ b/src/ov_SC03_111/ov_SC03_111_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_111/ov_SC03_111_jr_80135D20.c b/src/ov_SC03_111/ov_SC03_111_jr_80135D20.c index b7f9ac643..e3d7bed27 100644 --- a/src/ov_SC03_111/ov_SC03_111_jr_80135D20.c +++ b/src/ov_SC03_111/ov_SC03_111_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80184EB0)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80184EB0)[2]; d = dx; denom = -(*(s16 **)&D_80184EBC)[2]; } else { denom = (*(s16 **)&D_80184EBC)[2]; - d = (*(s16 **)&D_80184EB0)[2] - (s16) arg2; + d = (*(s16 **)&D_80184EB0)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80184EB8[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80184EB8[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_111/ov_SC03_111_jr_80140608.c b/src/ov_SC03_111/ov_SC03_111_jr_80140608.c index 87d398c28..320fc108b 100644 --- a/src/ov_SC03_111/ov_SC03_111_jr_80140608.c +++ b/src/ov_SC03_111/ov_SC03_111_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8018627C[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8018627C[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_111/ov_SC03_111_jr_8015C32C.c b/src/ov_SC03_111/ov_SC03_111_jr_8015C32C.c index 2053aa691..03eb79740 100644 --- a/src/ov_SC03_111/ov_SC03_111_jr_8015C32C.c +++ b/src/ov_SC03_111/ov_SC03_111_jr_8015C32C.c @@ -2805,11 +2805,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80186FBC)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80186FBC)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_111/ov_SC03_111_jr_8016AB6C.c b/src/ov_SC03_111/ov_SC03_111_jr_8016AB6C.c index 2dc03411d..f2771c56e 100644 --- a/src/ov_SC03_111/ov_SC03_111_jr_8016AB6C.c +++ b/src/ov_SC03_111/ov_SC03_111_jr_8016AB6C.c @@ -2035,12 +2035,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2053,16 +2053,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80187A84)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_112/ov_SC03_112_after.c b/src/ov_SC03_112/ov_SC03_112_after.c index 8ce4bf173..469eecdb1 100644 --- a/src/ov_SC03_112/ov_SC03_112_after.c +++ b/src/ov_SC03_112/ov_SC03_112_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_112/ov_SC03_112_jr_80135D20.c b/src/ov_SC03_112/ov_SC03_112_jr_80135D20.c index 87ee8b8a5..7938f8d42 100644 --- a/src/ov_SC03_112/ov_SC03_112_jr_80135D20.c +++ b/src/ov_SC03_112/ov_SC03_112_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80185CB8)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80185CB8)[2]; d = dx; denom = -(*(s16 **)&D_80185CC4)[2]; } else { denom = (*(s16 **)&D_80185CC4)[2]; - d = (*(s16 **)&D_80185CB8)[2] - (s16) arg2; + d = (*(s16 **)&D_80185CB8)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80185CC0[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80185CC0[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_112/ov_SC03_112_jr_80140608.c b/src/ov_SC03_112/ov_SC03_112_jr_80140608.c index b25d53a2b..e7f9d6f33 100644 --- a/src/ov_SC03_112/ov_SC03_112_jr_80140608.c +++ b/src/ov_SC03_112/ov_SC03_112_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80187084[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80187084[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_112/ov_SC03_112_jr_8015C32C.c b/src/ov_SC03_112/ov_SC03_112_jr_8015C32C.c index 3dc3a108d..f624a218e 100644 --- a/src/ov_SC03_112/ov_SC03_112_jr_8015C32C.c +++ b/src/ov_SC03_112/ov_SC03_112_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80187DC4)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80187DC4)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_112/ov_SC03_112_jr_8016AB6C.c b/src/ov_SC03_112/ov_SC03_112_jr_8016AB6C.c index 5887d018b..d46fb3033 100644 --- a/src/ov_SC03_112/ov_SC03_112_jr_8016AB6C.c +++ b/src/ov_SC03_112/ov_SC03_112_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8018888C)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_113/ov_SC03_113_after.c b/src/ov_SC03_113/ov_SC03_113_after.c index c7059093f..f83bbd17f 100644 --- a/src/ov_SC03_113/ov_SC03_113_after.c +++ b/src/ov_SC03_113/ov_SC03_113_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_113/ov_SC03_113_jr_80135D20.c b/src/ov_SC03_113/ov_SC03_113_jr_80135D20.c index 58a2ebe45..af34325af 100644 --- a/src/ov_SC03_113/ov_SC03_113_jr_80135D20.c +++ b/src/ov_SC03_113/ov_SC03_113_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80183368)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80183368)[2]; d = dx; denom = -(*(s16 **)&D_80183374)[2]; } else { denom = (*(s16 **)&D_80183374)[2]; - d = (*(s16 **)&D_80183368)[2] - (s16) arg2; + d = (*(s16 **)&D_80183368)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80183370[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80183370[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_113/ov_SC03_113_jr_80140608.c b/src/ov_SC03_113/ov_SC03_113_jr_80140608.c index 520b1eb70..c5e72d5e7 100644 --- a/src/ov_SC03_113/ov_SC03_113_jr_80140608.c +++ b/src/ov_SC03_113/ov_SC03_113_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80184734[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80184734[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_113/ov_SC03_113_jr_8015C32C.c b/src/ov_SC03_113/ov_SC03_113_jr_8015C32C.c index f3597edb8..f8576e7a0 100644 --- a/src/ov_SC03_113/ov_SC03_113_jr_8015C32C.c +++ b/src/ov_SC03_113/ov_SC03_113_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80185474)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80185474)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_113/ov_SC03_113_jr_8016AB6C.c b/src/ov_SC03_113/ov_SC03_113_jr_8016AB6C.c index 4ba0e6dbe..30efdca91 100644 --- a/src/ov_SC03_113/ov_SC03_113_jr_8016AB6C.c +++ b/src/ov_SC03_113/ov_SC03_113_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80185F3C)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_114/ov_SC03_114_after.c b/src/ov_SC03_114/ov_SC03_114_after.c index dd3ebf06e..75c9864ec 100644 --- a/src/ov_SC03_114/ov_SC03_114_after.c +++ b/src/ov_SC03_114/ov_SC03_114_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_114/ov_SC03_114_jr_80135D20.c b/src/ov_SC03_114/ov_SC03_114_jr_80135D20.c index 104025408..a7bd5a720 100644 --- a/src/ov_SC03_114/ov_SC03_114_jr_80135D20.c +++ b/src/ov_SC03_114/ov_SC03_114_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8017EFD0)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8017EFD0)[2]; d = dx; denom = -(*(s16 **)&D_8017EFDC)[2]; } else { denom = (*(s16 **)&D_8017EFDC)[2]; - d = (*(s16 **)&D_8017EFD0)[2] - (s16) arg2; + d = (*(s16 **)&D_8017EFD0)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8017EFD8[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8017EFD8[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_114/ov_SC03_114_jr_80140608.c b/src/ov_SC03_114/ov_SC03_114_jr_80140608.c index c1fd50ec7..cb0e90ff7 100644 --- a/src/ov_SC03_114/ov_SC03_114_jr_80140608.c +++ b/src/ov_SC03_114/ov_SC03_114_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8018039C[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8018039C[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_114/ov_SC03_114_jr_8015C32C.c b/src/ov_SC03_114/ov_SC03_114_jr_8015C32C.c index b7f1e9e4d..f40452aa6 100644 --- a/src/ov_SC03_114/ov_SC03_114_jr_8015C32C.c +++ b/src/ov_SC03_114/ov_SC03_114_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_801810DC)[*(u16 *)param_1](); + ((void (**)(s32 *))D_801810DC)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_114/ov_SC03_114_jr_8016AB6C.c b/src/ov_SC03_114/ov_SC03_114_jr_8016AB6C.c index f151556ea..23e6c84c5 100644 --- a/src/ov_SC03_114/ov_SC03_114_jr_8016AB6C.c +++ b/src/ov_SC03_114/ov_SC03_114_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80181BA4)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_115/ov_SC03_115_after.c b/src/ov_SC03_115/ov_SC03_115_after.c index e05a07ae7..c4eff5640 100644 --- a/src/ov_SC03_115/ov_SC03_115_after.c +++ b/src/ov_SC03_115/ov_SC03_115_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_115/ov_SC03_115_jr_80135D20.c b/src/ov_SC03_115/ov_SC03_115_jr_80135D20.c index 7b774c84e..ace330bbb 100644 --- a/src/ov_SC03_115/ov_SC03_115_jr_80135D20.c +++ b/src/ov_SC03_115/ov_SC03_115_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80180A3C)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80180A3C)[2]; d = dx; denom = -(*(s16 **)&D_80180A48)[2]; } else { denom = (*(s16 **)&D_80180A48)[2]; - d = (*(s16 **)&D_80180A3C)[2] - (s16) arg2; + d = (*(s16 **)&D_80180A3C)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80180A44[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80180A44[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_115/ov_SC03_115_jr_80140608.c b/src/ov_SC03_115/ov_SC03_115_jr_80140608.c index 9939447e2..c2e7d02cf 100644 --- a/src/ov_SC03_115/ov_SC03_115_jr_80140608.c +++ b/src/ov_SC03_115/ov_SC03_115_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80181E08[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80181E08[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_115/ov_SC03_115_jr_8015C32C.c b/src/ov_SC03_115/ov_SC03_115_jr_8015C32C.c index 853fbda91..9cb3070e7 100644 --- a/src/ov_SC03_115/ov_SC03_115_jr_8015C32C.c +++ b/src/ov_SC03_115/ov_SC03_115_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80182B48)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80182B48)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_115/ov_SC03_115_jr_8016AB6C.c b/src/ov_SC03_115/ov_SC03_115_jr_8016AB6C.c index 10b1bf6b0..dd66cc63c 100644 --- a/src/ov_SC03_115/ov_SC03_115_jr_8016AB6C.c +++ b/src/ov_SC03_115/ov_SC03_115_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80183610)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_116/ov_SC03_116_after.c b/src/ov_SC03_116/ov_SC03_116_after.c index c6d77103c..74ae2f7b2 100644 --- a/src/ov_SC03_116/ov_SC03_116_after.c +++ b/src/ov_SC03_116/ov_SC03_116_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_116/ov_SC03_116_jr_80135D20.c b/src/ov_SC03_116/ov_SC03_116_jr_80135D20.c index 95397a154..231f3aae3 100644 --- a/src/ov_SC03_116/ov_SC03_116_jr_80135D20.c +++ b/src/ov_SC03_116/ov_SC03_116_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80182E40)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80182E40)[2]; d = dx; denom = -(*(s16 **)&D_80182E4C)[2]; } else { denom = (*(s16 **)&D_80182E4C)[2]; - d = (*(s16 **)&D_80182E40)[2] - (s16) arg2; + d = (*(s16 **)&D_80182E40)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80182E48[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80182E48[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_116/ov_SC03_116_jr_80140608.c b/src/ov_SC03_116/ov_SC03_116_jr_80140608.c index 7b956ece8..b4393ed63 100644 --- a/src/ov_SC03_116/ov_SC03_116_jr_80140608.c +++ b/src/ov_SC03_116/ov_SC03_116_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8018420C[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8018420C[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_116/ov_SC03_116_jr_8015C32C.c b/src/ov_SC03_116/ov_SC03_116_jr_8015C32C.c index c6eae0abd..e8deb658c 100644 --- a/src/ov_SC03_116/ov_SC03_116_jr_8015C32C.c +++ b/src/ov_SC03_116/ov_SC03_116_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80184F4C)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80184F4C)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_116/ov_SC03_116_jr_8016AB6C.c b/src/ov_SC03_116/ov_SC03_116_jr_8016AB6C.c index 6b9fc7f32..e659a808b 100644 --- a/src/ov_SC03_116/ov_SC03_116_jr_8016AB6C.c +++ b/src/ov_SC03_116/ov_SC03_116_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80185A14)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_117/ov_SC03_117_after.c b/src/ov_SC03_117/ov_SC03_117_after.c index 728e477ce..84921df03 100644 --- a/src/ov_SC03_117/ov_SC03_117_after.c +++ b/src/ov_SC03_117/ov_SC03_117_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_117/ov_SC03_117_jr_80135D20.c b/src/ov_SC03_117/ov_SC03_117_jr_80135D20.c index 7f8e015e0..07cbabb3c 100644 --- a/src/ov_SC03_117/ov_SC03_117_jr_80135D20.c +++ b/src/ov_SC03_117/ov_SC03_117_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80184E4C)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80184E4C)[2]; d = dx; denom = -(*(s16 **)&D_80184E58)[2]; } else { denom = (*(s16 **)&D_80184E58)[2]; - d = (*(s16 **)&D_80184E4C)[2] - (s16) arg2; + d = (*(s16 **)&D_80184E4C)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80184E54[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80184E54[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_117/ov_SC03_117_jr_80140608.c b/src/ov_SC03_117/ov_SC03_117_jr_80140608.c index d1bbf00c7..9621c7d8d 100644 --- a/src/ov_SC03_117/ov_SC03_117_jr_80140608.c +++ b/src/ov_SC03_117/ov_SC03_117_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80186218[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80186218[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_117/ov_SC03_117_jr_8015C32C.c b/src/ov_SC03_117/ov_SC03_117_jr_8015C32C.c index 6a95b05a4..f0d73f559 100644 --- a/src/ov_SC03_117/ov_SC03_117_jr_8015C32C.c +++ b/src/ov_SC03_117/ov_SC03_117_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80186F58)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80186F58)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_117/ov_SC03_117_jr_8016AB6C.c b/src/ov_SC03_117/ov_SC03_117_jr_8016AB6C.c index 1610a4072..7a4834de5 100644 --- a/src/ov_SC03_117/ov_SC03_117_jr_8016AB6C.c +++ b/src/ov_SC03_117/ov_SC03_117_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80187A20)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_118/ov_SC03_118_after.c b/src/ov_SC03_118/ov_SC03_118_after.c index 933211a84..2ee474b5f 100644 --- a/src/ov_SC03_118/ov_SC03_118_after.c +++ b/src/ov_SC03_118/ov_SC03_118_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_118/ov_SC03_118_jr_80135D20.c b/src/ov_SC03_118/ov_SC03_118_jr_80135D20.c index d8c86064d..3bd6be672 100644 --- a/src/ov_SC03_118/ov_SC03_118_jr_80135D20.c +++ b/src/ov_SC03_118/ov_SC03_118_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80189EF8)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80189EF8)[2]; d = dx; denom = -(*(s16 **)&D_80189F04)[2]; } else { denom = (*(s16 **)&D_80189F04)[2]; - d = (*(s16 **)&D_80189EF8)[2] - (s16) arg2; + d = (*(s16 **)&D_80189EF8)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80189F00[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80189F00[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_118/ov_SC03_118_jr_80140608.c b/src/ov_SC03_118/ov_SC03_118_jr_80140608.c index 26e8ab884..508e5b897 100644 --- a/src/ov_SC03_118/ov_SC03_118_jr_80140608.c +++ b/src/ov_SC03_118/ov_SC03_118_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8018B2C4[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8018B2C4[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_118/ov_SC03_118_jr_8015C32C.c b/src/ov_SC03_118/ov_SC03_118_jr_8015C32C.c index 54f8f6319..727302c48 100644 --- a/src/ov_SC03_118/ov_SC03_118_jr_8015C32C.c +++ b/src/ov_SC03_118/ov_SC03_118_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_8018C004)[*(u16 *)param_1](); + ((void (**)(s32 *))D_8018C004)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_118/ov_SC03_118_jr_8016AB6C.c b/src/ov_SC03_118/ov_SC03_118_jr_8016AB6C.c index 081500b16..27f331ac1 100644 --- a/src/ov_SC03_118/ov_SC03_118_jr_8016AB6C.c +++ b/src/ov_SC03_118/ov_SC03_118_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8018CACC)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_121/ov_SC03_121_after.c b/src/ov_SC03_121/ov_SC03_121_after.c index db3aa17e2..e8ef35c74 100644 --- a/src/ov_SC03_121/ov_SC03_121_after.c +++ b/src/ov_SC03_121/ov_SC03_121_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_121/ov_SC03_121_jr_80135D20.c b/src/ov_SC03_121/ov_SC03_121_jr_80135D20.c index 904288daa..a7ea1e6ce 100644 --- a/src/ov_SC03_121/ov_SC03_121_jr_80135D20.c +++ b/src/ov_SC03_121/ov_SC03_121_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80182714)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80182714)[2]; d = dx; denom = -(*(s16 **)&D_80182720)[2]; } else { denom = (*(s16 **)&D_80182720)[2]; - d = (*(s16 **)&D_80182714)[2] - (s16) arg2; + d = (*(s16 **)&D_80182714)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8018271C[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8018271C[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_121/ov_SC03_121_jr_80140608.c b/src/ov_SC03_121/ov_SC03_121_jr_80140608.c index 16647d7aa..68de6d765 100644 --- a/src/ov_SC03_121/ov_SC03_121_jr_80140608.c +++ b/src/ov_SC03_121/ov_SC03_121_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80183AE0[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80183AE0[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_121/ov_SC03_121_jr_8015C32C.c b/src/ov_SC03_121/ov_SC03_121_jr_8015C32C.c index 29c7ef50e..f237a71d2 100644 --- a/src/ov_SC03_121/ov_SC03_121_jr_8015C32C.c +++ b/src/ov_SC03_121/ov_SC03_121_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80184820)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80184820)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_121/ov_SC03_121_jr_8016AB6C.c b/src/ov_SC03_121/ov_SC03_121_jr_8016AB6C.c index 74ee95e49..607f9ac2f 100644 --- a/src/ov_SC03_121/ov_SC03_121_jr_8016AB6C.c +++ b/src/ov_SC03_121/ov_SC03_121_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_801852E8)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_124/ov_SC03_124_after.c b/src/ov_SC03_124/ov_SC03_124_after.c index e102e4606..ad38d7203 100644 --- a/src/ov_SC03_124/ov_SC03_124_after.c +++ b/src/ov_SC03_124/ov_SC03_124_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_124/ov_SC03_124_jr_80135D20.c b/src/ov_SC03_124/ov_SC03_124_jr_80135D20.c index 6764ee6f2..80e7cba7e 100644 --- a/src/ov_SC03_124/ov_SC03_124_jr_80135D20.c +++ b/src/ov_SC03_124/ov_SC03_124_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8018B140)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8018B140)[2]; d = dx; denom = -(*(s16 **)&D_8018B14C)[2]; } else { denom = (*(s16 **)&D_8018B14C)[2]; - d = (*(s16 **)&D_8018B140)[2] - (s16) arg2; + d = (*(s16 **)&D_8018B140)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8018B148[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8018B148[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_124/ov_SC03_124_jr_80140608.c b/src/ov_SC03_124/ov_SC03_124_jr_80140608.c index fb4c6519b..8ba9227eb 100644 --- a/src/ov_SC03_124/ov_SC03_124_jr_80140608.c +++ b/src/ov_SC03_124/ov_SC03_124_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8018C50C[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8018C50C[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_124/ov_SC03_124_jr_8015C32C.c b/src/ov_SC03_124/ov_SC03_124_jr_8015C32C.c index 52c910356..650d2ae2a 100644 --- a/src/ov_SC03_124/ov_SC03_124_jr_8015C32C.c +++ b/src/ov_SC03_124/ov_SC03_124_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_8018D24C)[*(u16 *)param_1](); + ((void (**)(s32 *))D_8018D24C)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_124/ov_SC03_124_jr_8016AB6C.c b/src/ov_SC03_124/ov_SC03_124_jr_8016AB6C.c index a98423738..0951850b4 100644 --- a/src/ov_SC03_124/ov_SC03_124_jr_8016AB6C.c +++ b/src/ov_SC03_124/ov_SC03_124_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8018DD14)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC03_125/ov_SC03_125_after.c b/src/ov_SC03_125/ov_SC03_125_after.c index 9c0292e73..8e6417a7a 100644 --- a/src/ov_SC03_125/ov_SC03_125_after.c +++ b/src/ov_SC03_125/ov_SC03_125_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC03_125/ov_SC03_125_jr_80135D20.c b/src/ov_SC03_125/ov_SC03_125_jr_80135D20.c index cdf735f7e..c3e1450c5 100644 --- a/src/ov_SC03_125/ov_SC03_125_jr_80135D20.c +++ b/src/ov_SC03_125/ov_SC03_125_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80184310)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80184310)[2]; d = dx; denom = -(*(s16 **)&D_8018431C)[2]; } else { denom = (*(s16 **)&D_8018431C)[2]; - d = (*(s16 **)&D_80184310)[2] - (s16) arg2; + d = (*(s16 **)&D_80184310)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80184318[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80184318[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC03_125/ov_SC03_125_jr_80140608.c b/src/ov_SC03_125/ov_SC03_125_jr_80140608.c index 2f8569292..149421483 100644 --- a/src/ov_SC03_125/ov_SC03_125_jr_80140608.c +++ b/src/ov_SC03_125/ov_SC03_125_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_801856DC[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_801856DC[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC03_125/ov_SC03_125_jr_8015C32C.c b/src/ov_SC03_125/ov_SC03_125_jr_8015C32C.c index da5f00256..ecb66490c 100644 --- a/src/ov_SC03_125/ov_SC03_125_jr_8015C32C.c +++ b/src/ov_SC03_125/ov_SC03_125_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_8018641C)[*(u16 *)param_1](); + ((void (**)(s32 *))D_8018641C)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC03_125/ov_SC03_125_jr_8016AB6C.c b/src/ov_SC03_125/ov_SC03_125_jr_8016AB6C.c index c9f49952b..c12fddc32 100644 --- a/src/ov_SC03_125/ov_SC03_125_jr_8016AB6C.c +++ b/src/ov_SC03_125/ov_SC03_125_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80186EE4)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC04_000/ov_SC04_000_after.c b/src/ov_SC04_000/ov_SC04_000_after.c index 314d023b6..d6838e4d1 100644 --- a/src/ov_SC04_000/ov_SC04_000_after.c +++ b/src/ov_SC04_000/ov_SC04_000_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC04_000/ov_SC04_000_jr_80135D20.c b/src/ov_SC04_000/ov_SC04_000_jr_80135D20.c index 03a961192..b9a5b7366 100644 --- a/src/ov_SC04_000/ov_SC04_000_jr_80135D20.c +++ b/src/ov_SC04_000/ov_SC04_000_jr_80135D20.c @@ -938,11 +938,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -951,16 +951,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80183814)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80183814)[2]; d = dx; denom = -(*(s16 **)&D_80183820)[2]; } else { denom = (*(s16 **)&D_80183820)[2]; - d = (*(s16 **)&D_80183814)[2] - (s16) arg2; + d = (*(s16 **)&D_80183814)[2] - a2v; dx = -d; } n = -d; @@ -986,13 +986,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8018381C[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8018381C[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC04_000/ov_SC04_000_jr_80140608.c b/src/ov_SC04_000/ov_SC04_000_jr_80140608.c index 466ebbed2..520708dc1 100644 --- a/src/ov_SC04_000/ov_SC04_000_jr_80140608.c +++ b/src/ov_SC04_000/ov_SC04_000_jr_80140608.c @@ -2097,13 +2097,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80184BE0[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80184BE0[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC04_000/ov_SC04_000_jr_8015C32C.c b/src/ov_SC04_000/ov_SC04_000_jr_8015C32C.c index f08cad160..e97397384 100644 --- a/src/ov_SC04_000/ov_SC04_000_jr_8015C32C.c +++ b/src/ov_SC04_000/ov_SC04_000_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80185920)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80185920)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC04_000/ov_SC04_000_jr_8016AB6C.c b/src/ov_SC04_000/ov_SC04_000_jr_8016AB6C.c index 134f7fd92..2453a9918 100644 --- a/src/ov_SC04_000/ov_SC04_000_jr_8016AB6C.c +++ b/src/ov_SC04_000/ov_SC04_000_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_801863E8)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC04_002/ov_SC04_002_after.c b/src/ov_SC04_002/ov_SC04_002_after.c index 5644102ce..ed2be7c31 100644 --- a/src/ov_SC04_002/ov_SC04_002_after.c +++ b/src/ov_SC04_002/ov_SC04_002_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC04_002/ov_SC04_002_jr_80135D20.c b/src/ov_SC04_002/ov_SC04_002_jr_80135D20.c index 7f65d07de..f144a185c 100644 --- a/src/ov_SC04_002/ov_SC04_002_jr_80135D20.c +++ b/src/ov_SC04_002/ov_SC04_002_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80188980)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80188980)[2]; d = dx; denom = -(*(s16 **)&D_8018898C)[2]; } else { denom = (*(s16 **)&D_8018898C)[2]; - d = (*(s16 **)&D_80188980)[2] - (s16) arg2; + d = (*(s16 **)&D_80188980)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80188988[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80188988[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC04_002/ov_SC04_002_jr_80140608.c b/src/ov_SC04_002/ov_SC04_002_jr_80140608.c index 0ed14a003..462d6d292 100644 --- a/src/ov_SC04_002/ov_SC04_002_jr_80140608.c +++ b/src/ov_SC04_002/ov_SC04_002_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80189D4C[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80189D4C[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC04_002/ov_SC04_002_jr_8015C32C.c b/src/ov_SC04_002/ov_SC04_002_jr_8015C32C.c index ba614b381..280b21b3b 100644 --- a/src/ov_SC04_002/ov_SC04_002_jr_8015C32C.c +++ b/src/ov_SC04_002/ov_SC04_002_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_8018AA8C)[*(u16 *)param_1](); + ((void (**)(s32 *))D_8018AA8C)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC04_002/ov_SC04_002_jr_8016AB6C.c b/src/ov_SC04_002/ov_SC04_002_jr_8016AB6C.c index 897524472..ec2a700fc 100644 --- a/src/ov_SC04_002/ov_SC04_002_jr_8016AB6C.c +++ b/src/ov_SC04_002/ov_SC04_002_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8018B554)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC04_003/ov_SC04_003_after.c b/src/ov_SC04_003/ov_SC04_003_after.c index e614dd65e..d704bc873 100644 --- a/src/ov_SC04_003/ov_SC04_003_after.c +++ b/src/ov_SC04_003/ov_SC04_003_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC04_003/ov_SC04_003_jr_80135D20.c b/src/ov_SC04_003/ov_SC04_003_jr_80135D20.c index d65b29336..fecc138cc 100644 --- a/src/ov_SC04_003/ov_SC04_003_jr_80135D20.c +++ b/src/ov_SC04_003/ov_SC04_003_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8018271C)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8018271C)[2]; d = dx; denom = -(*(s16 **)&D_80182728)[2]; } else { denom = (*(s16 **)&D_80182728)[2]; - d = (*(s16 **)&D_8018271C)[2] - (s16) arg2; + d = (*(s16 **)&D_8018271C)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80182724[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80182724[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC04_003/ov_SC04_003_jr_80140608.c b/src/ov_SC04_003/ov_SC04_003_jr_80140608.c index e992463bd..41d44fc55 100644 --- a/src/ov_SC04_003/ov_SC04_003_jr_80140608.c +++ b/src/ov_SC04_003/ov_SC04_003_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80183AE8[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80183AE8[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC04_003/ov_SC04_003_jr_8015C32C.c b/src/ov_SC04_003/ov_SC04_003_jr_8015C32C.c index 39539c156..58918926a 100644 --- a/src/ov_SC04_003/ov_SC04_003_jr_8015C32C.c +++ b/src/ov_SC04_003/ov_SC04_003_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80184828)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80184828)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC04_003/ov_SC04_003_jr_8016AB6C.c b/src/ov_SC04_003/ov_SC04_003_jr_8016AB6C.c index 30cb817fd..e5bfabd11 100644 --- a/src/ov_SC04_003/ov_SC04_003_jr_8016AB6C.c +++ b/src/ov_SC04_003/ov_SC04_003_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_801852F0)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC04_004/ov_SC04_004_after.c b/src/ov_SC04_004/ov_SC04_004_after.c index f3423e91a..b302c7764 100644 --- a/src/ov_SC04_004/ov_SC04_004_after.c +++ b/src/ov_SC04_004/ov_SC04_004_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC04_004/ov_SC04_004_jr_80135D20.c b/src/ov_SC04_004/ov_SC04_004_jr_80135D20.c index a1c796a00..e7d3f3349 100644 --- a/src/ov_SC04_004/ov_SC04_004_jr_80135D20.c +++ b/src/ov_SC04_004/ov_SC04_004_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80184C50)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80184C50)[2]; d = dx; denom = -(*(s16 **)&D_80184C5C)[2]; } else { denom = (*(s16 **)&D_80184C5C)[2]; - d = (*(s16 **)&D_80184C50)[2] - (s16) arg2; + d = (*(s16 **)&D_80184C50)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80184C58[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80184C58[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC04_004/ov_SC04_004_jr_80140608.c b/src/ov_SC04_004/ov_SC04_004_jr_80140608.c index 047159522..f271185cf 100644 --- a/src/ov_SC04_004/ov_SC04_004_jr_80140608.c +++ b/src/ov_SC04_004/ov_SC04_004_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8018601C[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8018601C[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC04_004/ov_SC04_004_jr_8015C32C.c b/src/ov_SC04_004/ov_SC04_004_jr_8015C32C.c index e8c232672..532fd65af 100644 --- a/src/ov_SC04_004/ov_SC04_004_jr_8015C32C.c +++ b/src/ov_SC04_004/ov_SC04_004_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80186D5C)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80186D5C)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC04_004/ov_SC04_004_jr_8016AB6C.c b/src/ov_SC04_004/ov_SC04_004_jr_8016AB6C.c index dec518208..8453aab9b 100644 --- a/src/ov_SC04_004/ov_SC04_004_jr_8016AB6C.c +++ b/src/ov_SC04_004/ov_SC04_004_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80187824)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC04_005/ov_SC04_005_after.c b/src/ov_SC04_005/ov_SC04_005_after.c index 405be1287..da29a5ee4 100644 --- a/src/ov_SC04_005/ov_SC04_005_after.c +++ b/src/ov_SC04_005/ov_SC04_005_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC04_005/ov_SC04_005_jr_80135D20.c b/src/ov_SC04_005/ov_SC04_005_jr_80135D20.c index 9fad04584..e919e105d 100644 --- a/src/ov_SC04_005/ov_SC04_005_jr_80135D20.c +++ b/src/ov_SC04_005/ov_SC04_005_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80188084)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80188084)[2]; d = dx; denom = -(*(s16 **)&D_80188090)[2]; } else { denom = (*(s16 **)&D_80188090)[2]; - d = (*(s16 **)&D_80188084)[2] - (s16) arg2; + d = (*(s16 **)&D_80188084)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8018808C[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8018808C[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC04_005/ov_SC04_005_jr_80140608.c b/src/ov_SC04_005/ov_SC04_005_jr_80140608.c index bce136ba6..aa9bdac73 100644 --- a/src/ov_SC04_005/ov_SC04_005_jr_80140608.c +++ b/src/ov_SC04_005/ov_SC04_005_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80189450[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80189450[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC04_005/ov_SC04_005_jr_8015C32C.c b/src/ov_SC04_005/ov_SC04_005_jr_8015C32C.c index 72ce03ba1..5d78d3587 100644 --- a/src/ov_SC04_005/ov_SC04_005_jr_8015C32C.c +++ b/src/ov_SC04_005/ov_SC04_005_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_8018A190)[*(u16 *)param_1](); + ((void (**)(s32 *))D_8018A190)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC04_005/ov_SC04_005_jr_8016AB6C.c b/src/ov_SC04_005/ov_SC04_005_jr_8016AB6C.c index 0c2b8b2e7..1a58920ff 100644 --- a/src/ov_SC04_005/ov_SC04_005_jr_8016AB6C.c +++ b/src/ov_SC04_005/ov_SC04_005_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8018AC58)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC04_006/ov_SC04_006_after.c b/src/ov_SC04_006/ov_SC04_006_after.c index beae69aad..359173a65 100644 --- a/src/ov_SC04_006/ov_SC04_006_after.c +++ b/src/ov_SC04_006/ov_SC04_006_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC04_006/ov_SC04_006_jr_80135D20.c b/src/ov_SC04_006/ov_SC04_006_jr_80135D20.c index 66ce914b5..5941f175b 100644 --- a/src/ov_SC04_006/ov_SC04_006_jr_80135D20.c +++ b/src/ov_SC04_006/ov_SC04_006_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80180164)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80180164)[2]; d = dx; denom = -(*(s16 **)&D_80180170)[2]; } else { denom = (*(s16 **)&D_80180170)[2]; - d = (*(s16 **)&D_80180164)[2] - (s16) arg2; + d = (*(s16 **)&D_80180164)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8018016C[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8018016C[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC04_006/ov_SC04_006_jr_80140608.c b/src/ov_SC04_006/ov_SC04_006_jr_80140608.c index 9c1ca3089..285281683 100644 --- a/src/ov_SC04_006/ov_SC04_006_jr_80140608.c +++ b/src/ov_SC04_006/ov_SC04_006_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80181530[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80181530[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC04_006/ov_SC04_006_jr_8015C32C.c b/src/ov_SC04_006/ov_SC04_006_jr_8015C32C.c index 24914ab16..8aad18bb4 100644 --- a/src/ov_SC04_006/ov_SC04_006_jr_8015C32C.c +++ b/src/ov_SC04_006/ov_SC04_006_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80182270)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80182270)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC04_006/ov_SC04_006_jr_8016AB6C.c b/src/ov_SC04_006/ov_SC04_006_jr_8016AB6C.c index b049a6c06..cc992f92d 100644 --- a/src/ov_SC04_006/ov_SC04_006_jr_8016AB6C.c +++ b/src/ov_SC04_006/ov_SC04_006_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80182D38)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC04_007/ov_SC04_007_after.c b/src/ov_SC04_007/ov_SC04_007_after.c index 5cbd059b9..2110dd1a3 100644 --- a/src/ov_SC04_007/ov_SC04_007_after.c +++ b/src/ov_SC04_007/ov_SC04_007_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC04_007/ov_SC04_007_jr_80135D20.c b/src/ov_SC04_007/ov_SC04_007_jr_80135D20.c index 3ec7ad960..99ccb71c7 100644 --- a/src/ov_SC04_007/ov_SC04_007_jr_80135D20.c +++ b/src/ov_SC04_007/ov_SC04_007_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8018611C)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8018611C)[2]; d = dx; denom = -(*(s16 **)&D_80186128)[2]; } else { denom = (*(s16 **)&D_80186128)[2]; - d = (*(s16 **)&D_8018611C)[2] - (s16) arg2; + d = (*(s16 **)&D_8018611C)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80186124[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80186124[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC04_007/ov_SC04_007_jr_80140608.c b/src/ov_SC04_007/ov_SC04_007_jr_80140608.c index 580b195c3..b5390f79a 100644 --- a/src/ov_SC04_007/ov_SC04_007_jr_80140608.c +++ b/src/ov_SC04_007/ov_SC04_007_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_801874E8[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_801874E8[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC04_007/ov_SC04_007_jr_8015C32C.c b/src/ov_SC04_007/ov_SC04_007_jr_8015C32C.c index 5405eca1b..876f8e3b5 100644 --- a/src/ov_SC04_007/ov_SC04_007_jr_8015C32C.c +++ b/src/ov_SC04_007/ov_SC04_007_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80188228)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80188228)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC04_007/ov_SC04_007_jr_8016AB6C.c b/src/ov_SC04_007/ov_SC04_007_jr_8016AB6C.c index a3a811293..71ce0a08d 100644 --- a/src/ov_SC04_007/ov_SC04_007_jr_8016AB6C.c +++ b/src/ov_SC04_007/ov_SC04_007_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80188CF0)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC04_009/ov_SC04_009_after.c b/src/ov_SC04_009/ov_SC04_009_after.c index 6587e5327..ce6a76db6 100644 --- a/src/ov_SC04_009/ov_SC04_009_after.c +++ b/src/ov_SC04_009/ov_SC04_009_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC04_009/ov_SC04_009_jr_80135D20.c b/src/ov_SC04_009/ov_SC04_009_jr_80135D20.c index cd0305d1b..0e55abec8 100644 --- a/src/ov_SC04_009/ov_SC04_009_jr_80135D20.c +++ b/src/ov_SC04_009/ov_SC04_009_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8017F080)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8017F080)[2]; d = dx; denom = -(*(s16 **)&D_8017F08C)[2]; } else { denom = (*(s16 **)&D_8017F08C)[2]; - d = (*(s16 **)&D_8017F080)[2] - (s16) arg2; + d = (*(s16 **)&D_8017F080)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8017F088[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8017F088[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC04_009/ov_SC04_009_jr_80140608.c b/src/ov_SC04_009/ov_SC04_009_jr_80140608.c index fe4c79f4b..00627e29e 100644 --- a/src/ov_SC04_009/ov_SC04_009_jr_80140608.c +++ b/src/ov_SC04_009/ov_SC04_009_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8018044C[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8018044C[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC04_009/ov_SC04_009_jr_8015C32C.c b/src/ov_SC04_009/ov_SC04_009_jr_8015C32C.c index da39184e0..6a58cbbdc 100644 --- a/src/ov_SC04_009/ov_SC04_009_jr_8015C32C.c +++ b/src/ov_SC04_009/ov_SC04_009_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_8018118C)[*(u16 *)param_1](); + ((void (**)(s32 *))D_8018118C)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC04_009/ov_SC04_009_jr_8016AB6C.c b/src/ov_SC04_009/ov_SC04_009_jr_8016AB6C.c index 51baa4121..391ede032 100644 --- a/src/ov_SC04_009/ov_SC04_009_jr_8016AB6C.c +++ b/src/ov_SC04_009/ov_SC04_009_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80181C54)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC04_010/ov_SC04_010_after.c b/src/ov_SC04_010/ov_SC04_010_after.c index f5d43d2e4..b380eac5e 100644 --- a/src/ov_SC04_010/ov_SC04_010_after.c +++ b/src/ov_SC04_010/ov_SC04_010_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC04_010/ov_SC04_010_jr_80135D20.c b/src/ov_SC04_010/ov_SC04_010_jr_80135D20.c index 73690804b..3abb0b8c1 100644 --- a/src/ov_SC04_010/ov_SC04_010_jr_80135D20.c +++ b/src/ov_SC04_010/ov_SC04_010_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8017E72C)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8017E72C)[2]; d = dx; denom = -(*(s16 **)&D_8017E738)[2]; } else { denom = (*(s16 **)&D_8017E738)[2]; - d = (*(s16 **)&D_8017E72C)[2] - (s16) arg2; + d = (*(s16 **)&D_8017E72C)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8017E734[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8017E734[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC04_010/ov_SC04_010_jr_80140608.c b/src/ov_SC04_010/ov_SC04_010_jr_80140608.c index 34e42a8bd..295cb2e7b 100644 --- a/src/ov_SC04_010/ov_SC04_010_jr_80140608.c +++ b/src/ov_SC04_010/ov_SC04_010_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8017FAF8[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8017FAF8[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC04_010/ov_SC04_010_jr_8015C32C.c b/src/ov_SC04_010/ov_SC04_010_jr_8015C32C.c index d4c721100..f5bcb341d 100644 --- a/src/ov_SC04_010/ov_SC04_010_jr_8015C32C.c +++ b/src/ov_SC04_010/ov_SC04_010_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80180838)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80180838)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC04_010/ov_SC04_010_jr_8016AB6C.c b/src/ov_SC04_010/ov_SC04_010_jr_8016AB6C.c index 3fe72792b..4ae22a43f 100644 --- a/src/ov_SC04_010/ov_SC04_010_jr_8016AB6C.c +++ b/src/ov_SC04_010/ov_SC04_010_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80181300)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC04_011/ov_SC04_011_after.c b/src/ov_SC04_011/ov_SC04_011_after.c index 2ba479906..e2efa4467 100644 --- a/src/ov_SC04_011/ov_SC04_011_after.c +++ b/src/ov_SC04_011/ov_SC04_011_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B t3_tus1) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B t3_tus1) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC04_011/ov_SC04_011_jr_80135D20.c b/src/ov_SC04_011/ov_SC04_011_jr_80135D20.c index ce2d2ae7c..40142421b 100644 --- a/src/ov_SC04_011/ov_SC04_011_jr_80135D20.c +++ b/src/ov_SC04_011/ov_SC04_011_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B t3_tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B t3_tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_801909BC)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_801909BC)[2]; d = dx; denom = -(*(s16 **)&D_801909C8)[2]; } else { denom = (*(s16 **)&D_801909C8)[2]; - d = (*(s16 **)&D_801909BC)[2] - (s16) arg2; + d = (*(s16 **)&D_801909BC)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_801909C4[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B t3_tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_801909C4[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B t3_tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC04_011/ov_SC04_011_jr_80140608.c b/src/ov_SC04_011/ov_SC04_011_jr_80140608.c index 2f50c498f..b5f42a60a 100644 --- a/src/ov_SC04_011/ov_SC04_011_jr_80140608.c +++ b/src/ov_SC04_011/ov_SC04_011_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80191D88[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B t3_tus1) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80191D88[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c b/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c index bab337288..1f1a18738 100644 --- a/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c +++ b/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80192AC8)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80192AC8)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B t3_tus1) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c b/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c index 56586f792..93ce147b8 100644 --- a/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c +++ b/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B t3_tus1) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B t3_tus1) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80193590)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC04_012/ov_SC04_012_after.c b/src/ov_SC04_012/ov_SC04_012_after.c index 60cce49db..866aa8f22 100644 --- a/src/ov_SC04_012/ov_SC04_012_after.c +++ b/src/ov_SC04_012/ov_SC04_012_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC04_012/ov_SC04_012_jr_80135D20.c b/src/ov_SC04_012/ov_SC04_012_jr_80135D20.c index 7029676db..2aeb225c6 100644 --- a/src/ov_SC04_012/ov_SC04_012_jr_80135D20.c +++ b/src/ov_SC04_012/ov_SC04_012_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8017EB90)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8017EB90)[2]; d = dx; denom = -(*(s16 **)&D_8017EB9C)[2]; } else { denom = (*(s16 **)&D_8017EB9C)[2]; - d = (*(s16 **)&D_8017EB90)[2] - (s16) arg2; + d = (*(s16 **)&D_8017EB90)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8017EB98[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8017EB98[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC04_012/ov_SC04_012_jr_80140608.c b/src/ov_SC04_012/ov_SC04_012_jr_80140608.c index 1189d71a9..4e41b828e 100644 --- a/src/ov_SC04_012/ov_SC04_012_jr_80140608.c +++ b/src/ov_SC04_012/ov_SC04_012_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8017FF5C[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8017FF5C[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC04_012/ov_SC04_012_jr_8015C32C.c b/src/ov_SC04_012/ov_SC04_012_jr_8015C32C.c index b59b154d6..6e2f920a7 100644 --- a/src/ov_SC04_012/ov_SC04_012_jr_8015C32C.c +++ b/src/ov_SC04_012/ov_SC04_012_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80180C9C)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80180C9C)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC04_012/ov_SC04_012_jr_8016AB6C.c b/src/ov_SC04_012/ov_SC04_012_jr_8016AB6C.c index 30a1064d4..44900e7e1 100644 --- a/src/ov_SC04_012/ov_SC04_012_jr_8016AB6C.c +++ b/src/ov_SC04_012/ov_SC04_012_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80181764)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC04_015/ov_SC04_015_after.c b/src/ov_SC04_015/ov_SC04_015_after.c index 464049946..2150a7219 100644 --- a/src/ov_SC04_015/ov_SC04_015_after.c +++ b/src/ov_SC04_015/ov_SC04_015_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC04_015/ov_SC04_015_jr_80135D20.c b/src/ov_SC04_015/ov_SC04_015_jr_80135D20.c index 5335dc3d4..53ab949fe 100644 --- a/src/ov_SC04_015/ov_SC04_015_jr_80135D20.c +++ b/src/ov_SC04_015/ov_SC04_015_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80184AC8)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80184AC8)[2]; d = dx; denom = -(*(s16 **)&D_80184AD4)[2]; } else { denom = (*(s16 **)&D_80184AD4)[2]; - d = (*(s16 **)&D_80184AC8)[2] - (s16) arg2; + d = (*(s16 **)&D_80184AC8)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80184AD0[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80184AD0[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC04_015/ov_SC04_015_jr_80140608.c b/src/ov_SC04_015/ov_SC04_015_jr_80140608.c index 53d577624..4d866f051 100644 --- a/src/ov_SC04_015/ov_SC04_015_jr_80140608.c +++ b/src/ov_SC04_015/ov_SC04_015_jr_80140608.c @@ -2111,13 +2111,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80185E94[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80185E94[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC04_015/ov_SC04_015_jr_8015C32C.c b/src/ov_SC04_015/ov_SC04_015_jr_8015C32C.c index ce653df36..00e891783 100644 --- a/src/ov_SC04_015/ov_SC04_015_jr_8015C32C.c +++ b/src/ov_SC04_015/ov_SC04_015_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80186BD4)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80186BD4)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC04_015/ov_SC04_015_jr_8016AB6C.c b/src/ov_SC04_015/ov_SC04_015_jr_8016AB6C.c index a212565bd..5ac03f82e 100644 --- a/src/ov_SC04_015/ov_SC04_015_jr_8016AB6C.c +++ b/src/ov_SC04_015/ov_SC04_015_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8018769C)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC04_016/ov_SC04_016_after.c b/src/ov_SC04_016/ov_SC04_016_after.c index 50def03f4..c617f153a 100644 --- a/src/ov_SC04_016/ov_SC04_016_after.c +++ b/src/ov_SC04_016/ov_SC04_016_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC04_016/ov_SC04_016_jr_80135D20.c b/src/ov_SC04_016/ov_SC04_016_jr_80135D20.c index 551068258..b0d0d6d4d 100644 --- a/src/ov_SC04_016/ov_SC04_016_jr_80135D20.c +++ b/src/ov_SC04_016/ov_SC04_016_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8018058C)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8018058C)[2]; d = dx; denom = -(*(s16 **)&D_80180598)[2]; } else { denom = (*(s16 **)&D_80180598)[2]; - d = (*(s16 **)&D_8018058C)[2] - (s16) arg2; + d = (*(s16 **)&D_8018058C)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80180594[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80180594[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC04_016/ov_SC04_016_jr_80140608.c b/src/ov_SC04_016/ov_SC04_016_jr_80140608.c index a50f9abf6..b53c83673 100644 --- a/src/ov_SC04_016/ov_SC04_016_jr_80140608.c +++ b/src/ov_SC04_016/ov_SC04_016_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80181958[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80181958[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC04_016/ov_SC04_016_jr_8015C32C.c b/src/ov_SC04_016/ov_SC04_016_jr_8015C32C.c index 272177582..aff83029a 100644 --- a/src/ov_SC04_016/ov_SC04_016_jr_8015C32C.c +++ b/src/ov_SC04_016/ov_SC04_016_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80182698)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80182698)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC04_016/ov_SC04_016_jr_8016AB6C.c b/src/ov_SC04_016/ov_SC04_016_jr_8016AB6C.c index 9bc5c2ac4..a898ca21e 100644 --- a/src/ov_SC04_016/ov_SC04_016_jr_8016AB6C.c +++ b/src/ov_SC04_016/ov_SC04_016_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80183160)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC04_018/ov_SC04_018_after.c b/src/ov_SC04_018/ov_SC04_018_after.c index befeac115..082786d8f 100644 --- a/src/ov_SC04_018/ov_SC04_018_after.c +++ b/src/ov_SC04_018/ov_SC04_018_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC04_018/ov_SC04_018_jr_80135D20.c b/src/ov_SC04_018/ov_SC04_018_jr_80135D20.c index abb1acc5f..4420cf412 100644 --- a/src/ov_SC04_018/ov_SC04_018_jr_80135D20.c +++ b/src/ov_SC04_018/ov_SC04_018_jr_80135D20.c @@ -938,11 +938,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -951,16 +951,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8018D7A4)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8018D7A4)[2]; d = dx; denom = -(*(s16 **)&D_8018D7B0)[2]; } else { denom = (*(s16 **)&D_8018D7B0)[2]; - d = (*(s16 **)&D_8018D7A4)[2] - (s16) arg2; + d = (*(s16 **)&D_8018D7A4)[2] - a2v; dx = -d; } n = -d; @@ -986,13 +986,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8018D7AC[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8018D7AC[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC04_018/ov_SC04_018_jr_80140608.c b/src/ov_SC04_018/ov_SC04_018_jr_80140608.c index c7f65d210..6b5a1130a 100644 --- a/src/ov_SC04_018/ov_SC04_018_jr_80140608.c +++ b/src/ov_SC04_018/ov_SC04_018_jr_80140608.c @@ -2097,13 +2097,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8018EB70[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8018EB70[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC04_018/ov_SC04_018_jr_8015C32C.c b/src/ov_SC04_018/ov_SC04_018_jr_8015C32C.c index c448e356b..073ae458b 100644 --- a/src/ov_SC04_018/ov_SC04_018_jr_8015C32C.c +++ b/src/ov_SC04_018/ov_SC04_018_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_8018F8B0)[*(u16 *)param_1](); + ((void (**)(s32 *))D_8018F8B0)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC04_018/ov_SC04_018_jr_8016AB6C.c b/src/ov_SC04_018/ov_SC04_018_jr_8016AB6C.c index fcb51d7af..b75462e65 100644 --- a/src/ov_SC04_018/ov_SC04_018_jr_8016AB6C.c +++ b/src/ov_SC04_018/ov_SC04_018_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80190378)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC04_020/ov_SC04_020_after.c b/src/ov_SC04_020/ov_SC04_020_after.c index 37a8927ba..1f263f87f 100644 --- a/src/ov_SC04_020/ov_SC04_020_after.c +++ b/src/ov_SC04_020/ov_SC04_020_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC04_020/ov_SC04_020_jr_80135D20.c b/src/ov_SC04_020/ov_SC04_020_jr_80135D20.c index 4191eeda6..89f4a4013 100644 --- a/src/ov_SC04_020/ov_SC04_020_jr_80135D20.c +++ b/src/ov_SC04_020/ov_SC04_020_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_801838DC)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_801838DC)[2]; d = dx; denom = -(*(s16 **)&D_801838E8)[2]; } else { denom = (*(s16 **)&D_801838E8)[2]; - d = (*(s16 **)&D_801838DC)[2] - (s16) arg2; + d = (*(s16 **)&D_801838DC)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_801838E4[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_801838E4[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC04_020/ov_SC04_020_jr_80140608.c b/src/ov_SC04_020/ov_SC04_020_jr_80140608.c index 287bb8c62..cc6becec0 100644 --- a/src/ov_SC04_020/ov_SC04_020_jr_80140608.c +++ b/src/ov_SC04_020/ov_SC04_020_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80184CA8[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80184CA8[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC04_020/ov_SC04_020_jr_8015C32C.c b/src/ov_SC04_020/ov_SC04_020_jr_8015C32C.c index 1d4726c27..9947c63c0 100644 --- a/src/ov_SC04_020/ov_SC04_020_jr_8015C32C.c +++ b/src/ov_SC04_020/ov_SC04_020_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_801859E8)[*(u16 *)param_1](); + ((void (**)(s32 *))D_801859E8)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC04_020/ov_SC04_020_jr_8016AB6C.c b/src/ov_SC04_020/ov_SC04_020_jr_8016AB6C.c index 8397bedc2..a9dd4068a 100644 --- a/src/ov_SC04_020/ov_SC04_020_jr_8016AB6C.c +++ b/src/ov_SC04_020/ov_SC04_020_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_801864B0)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC05_000/ov_SC05_000_after.c b/src/ov_SC05_000/ov_SC05_000_after.c index 2f70879c0..499901044 100644 --- a/src/ov_SC05_000/ov_SC05_000_after.c +++ b/src/ov_SC05_000/ov_SC05_000_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC05_000/ov_SC05_000_jr_80135D20.c b/src/ov_SC05_000/ov_SC05_000_jr_80135D20.c index 23284f87d..807856382 100644 --- a/src/ov_SC05_000/ov_SC05_000_jr_80135D20.c +++ b/src/ov_SC05_000/ov_SC05_000_jr_80135D20.c @@ -938,11 +938,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -951,16 +951,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8017E81C)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8017E81C)[2]; d = dx; denom = -(*(s16 **)&D_8017E828)[2]; } else { denom = (*(s16 **)&D_8017E828)[2]; - d = (*(s16 **)&D_8017E81C)[2] - (s16) arg2; + d = (*(s16 **)&D_8017E81C)[2] - a2v; dx = -d; } n = -d; @@ -986,13 +986,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8017E824[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8017E824[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC05_000/ov_SC05_000_jr_80140608.c b/src/ov_SC05_000/ov_SC05_000_jr_80140608.c index 3b287c48e..285b68134 100644 --- a/src/ov_SC05_000/ov_SC05_000_jr_80140608.c +++ b/src/ov_SC05_000/ov_SC05_000_jr_80140608.c @@ -2097,13 +2097,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8017FBE8[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8017FBE8[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC05_000/ov_SC05_000_jr_8015C32C.c b/src/ov_SC05_000/ov_SC05_000_jr_8015C32C.c index 03bd87c1c..1cae6126d 100644 --- a/src/ov_SC05_000/ov_SC05_000_jr_8015C32C.c +++ b/src/ov_SC05_000/ov_SC05_000_jr_8015C32C.c @@ -2802,11 +2802,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80180928)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80180928)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC05_000/ov_SC05_000_jr_8016AB6C.c b/src/ov_SC05_000/ov_SC05_000_jr_8016AB6C.c index f52ae60d5..6f0c588e5 100644 --- a/src/ov_SC05_000/ov_SC05_000_jr_8016AB6C.c +++ b/src/ov_SC05_000/ov_SC05_000_jr_8016AB6C.c @@ -2032,12 +2032,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2050,16 +2050,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_801813F0)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC05_001/ov_SC05_001_after.c b/src/ov_SC05_001/ov_SC05_001_after.c index 277ecbfbc..2bd726ad7 100644 --- a/src/ov_SC05_001/ov_SC05_001_after.c +++ b/src/ov_SC05_001/ov_SC05_001_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC05_001/ov_SC05_001_jr_80135D20.c b/src/ov_SC05_001/ov_SC05_001_jr_80135D20.c index a7d898cb0..d1db2a8b8 100644 --- a/src/ov_SC05_001/ov_SC05_001_jr_80135D20.c +++ b/src/ov_SC05_001/ov_SC05_001_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80185FF8)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80185FF8)[2]; d = dx; denom = -(*(s16 **)&D_80186004)[2]; } else { denom = (*(s16 **)&D_80186004)[2]; - d = (*(s16 **)&D_80185FF8)[2] - (s16) arg2; + d = (*(s16 **)&D_80185FF8)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80186000[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80186000[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC05_001/ov_SC05_001_jr_80140608.c b/src/ov_SC05_001/ov_SC05_001_jr_80140608.c index 762a19ad5..88918e68e 100644 --- a/src/ov_SC05_001/ov_SC05_001_jr_80140608.c +++ b/src/ov_SC05_001/ov_SC05_001_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_801873C4[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_801873C4[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC05_001/ov_SC05_001_jr_8015C32C.c b/src/ov_SC05_001/ov_SC05_001_jr_8015C32C.c index 56f4efc93..e29ac627d 100644 --- a/src/ov_SC05_001/ov_SC05_001_jr_8015C32C.c +++ b/src/ov_SC05_001/ov_SC05_001_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80188104)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80188104)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC05_001/ov_SC05_001_jr_8016AB6C.c b/src/ov_SC05_001/ov_SC05_001_jr_8016AB6C.c index 0641e2ca0..b78e6cbf5 100644 --- a/src/ov_SC05_001/ov_SC05_001_jr_8016AB6C.c +++ b/src/ov_SC05_001/ov_SC05_001_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80188BCC)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC05_002/ov_SC05_002_after.c b/src/ov_SC05_002/ov_SC05_002_after.c index 61492b81d..6822bde2b 100644 --- a/src/ov_SC05_002/ov_SC05_002_after.c +++ b/src/ov_SC05_002/ov_SC05_002_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC05_002/ov_SC05_002_jr_80135D20.c b/src/ov_SC05_002/ov_SC05_002_jr_80135D20.c index 8b6b6ee06..6b17ca8b8 100644 --- a/src/ov_SC05_002/ov_SC05_002_jr_80135D20.c +++ b/src/ov_SC05_002/ov_SC05_002_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_801807B8)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_801807B8)[2]; d = dx; denom = -(*(s16 **)&D_801807C4)[2]; } else { denom = (*(s16 **)&D_801807C4)[2]; - d = (*(s16 **)&D_801807B8)[2] - (s16) arg2; + d = (*(s16 **)&D_801807B8)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_801807C0[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_801807C0[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC05_002/ov_SC05_002_jr_80140608.c b/src/ov_SC05_002/ov_SC05_002_jr_80140608.c index 21e4efc8b..6e69c226f 100644 --- a/src/ov_SC05_002/ov_SC05_002_jr_80140608.c +++ b/src/ov_SC05_002/ov_SC05_002_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80181B84[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80181B84[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC05_002/ov_SC05_002_jr_8015C32C.c b/src/ov_SC05_002/ov_SC05_002_jr_8015C32C.c index b01d0f31f..4646d27e0 100644 --- a/src/ov_SC05_002/ov_SC05_002_jr_8015C32C.c +++ b/src/ov_SC05_002/ov_SC05_002_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_801828C4)[*(u16 *)param_1](); + ((void (**)(s32 *))D_801828C4)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC05_002/ov_SC05_002_jr_8016AB6C.c b/src/ov_SC05_002/ov_SC05_002_jr_8016AB6C.c index ab83aa5f5..0a3cc43eb 100644 --- a/src/ov_SC05_002/ov_SC05_002_jr_8016AB6C.c +++ b/src/ov_SC05_002/ov_SC05_002_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8018338C)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC05_003/ov_SC05_003_after.c b/src/ov_SC05_003/ov_SC05_003_after.c index ed57ec716..aa45bc69b 100644 --- a/src/ov_SC05_003/ov_SC05_003_after.c +++ b/src/ov_SC05_003/ov_SC05_003_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC05_003/ov_SC05_003_jr_80135D20.c b/src/ov_SC05_003/ov_SC05_003_jr_80135D20.c index 9a708bfe7..78625b6c0 100644 --- a/src/ov_SC05_003/ov_SC05_003_jr_80135D20.c +++ b/src/ov_SC05_003/ov_SC05_003_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80182AF0)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80182AF0)[2]; d = dx; denom = -(*(s16 **)&D_80182AFC)[2]; } else { denom = (*(s16 **)&D_80182AFC)[2]; - d = (*(s16 **)&D_80182AF0)[2] - (s16) arg2; + d = (*(s16 **)&D_80182AF0)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80182AF8[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80182AF8[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC05_003/ov_SC05_003_jr_80140608.c b/src/ov_SC05_003/ov_SC05_003_jr_80140608.c index 67b12369d..b2c7c8a33 100644 --- a/src/ov_SC05_003/ov_SC05_003_jr_80140608.c +++ b/src/ov_SC05_003/ov_SC05_003_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80183EBC[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80183EBC[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC05_003/ov_SC05_003_jr_8015C32C.c b/src/ov_SC05_003/ov_SC05_003_jr_8015C32C.c index 46a3c7dc5..e0eff18f4 100644 --- a/src/ov_SC05_003/ov_SC05_003_jr_8015C32C.c +++ b/src/ov_SC05_003/ov_SC05_003_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80184BFC)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80184BFC)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC05_003/ov_SC05_003_jr_8016AB6C.c b/src/ov_SC05_003/ov_SC05_003_jr_8016AB6C.c index 8aa6634e7..61d96d9cc 100644 --- a/src/ov_SC05_003/ov_SC05_003_jr_8016AB6C.c +++ b/src/ov_SC05_003/ov_SC05_003_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_801856C4)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC05_004/ov_SC05_004_after.c b/src/ov_SC05_004/ov_SC05_004_after.c index 6507a55db..e2d2e3154 100644 --- a/src/ov_SC05_004/ov_SC05_004_after.c +++ b/src/ov_SC05_004/ov_SC05_004_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC05_004/ov_SC05_004_jr_80135D20.c b/src/ov_SC05_004/ov_SC05_004_jr_80135D20.c index 6ea8dd9e1..fa53240b8 100644 --- a/src/ov_SC05_004/ov_SC05_004_jr_80135D20.c +++ b/src/ov_SC05_004/ov_SC05_004_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80181BFC)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80181BFC)[2]; d = dx; denom = -(*(s16 **)&D_80181C08)[2]; } else { denom = (*(s16 **)&D_80181C08)[2]; - d = (*(s16 **)&D_80181BFC)[2] - (s16) arg2; + d = (*(s16 **)&D_80181BFC)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80181C04[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80181C04[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC05_004/ov_SC05_004_jr_80140608.c b/src/ov_SC05_004/ov_SC05_004_jr_80140608.c index 2a5a8c51b..a5c33845b 100644 --- a/src/ov_SC05_004/ov_SC05_004_jr_80140608.c +++ b/src/ov_SC05_004/ov_SC05_004_jr_80140608.c @@ -2131,13 +2131,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80182FC8[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80182FC8[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC05_004/ov_SC05_004_jr_8015C32C.c b/src/ov_SC05_004/ov_SC05_004_jr_8015C32C.c index 6cca9c442..6ef98eac6 100644 --- a/src/ov_SC05_004/ov_SC05_004_jr_8015C32C.c +++ b/src/ov_SC05_004/ov_SC05_004_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80183D08)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80183D08)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC05_004/ov_SC05_004_jr_8016AB6C.c b/src/ov_SC05_004/ov_SC05_004_jr_8016AB6C.c index ad0a28826..a4374750a 100644 --- a/src/ov_SC05_004/ov_SC05_004_jr_8016AB6C.c +++ b/src/ov_SC05_004/ov_SC05_004_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_801847D0)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC05_005/ov_SC05_005_after.c b/src/ov_SC05_005/ov_SC05_005_after.c index 5eab07eb3..ee97013d4 100644 --- a/src/ov_SC05_005/ov_SC05_005_after.c +++ b/src/ov_SC05_005/ov_SC05_005_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC05_005/ov_SC05_005_jr_80135D20.c b/src/ov_SC05_005/ov_SC05_005_jr_80135D20.c index 0861aa762..14482a1b0 100644 --- a/src/ov_SC05_005/ov_SC05_005_jr_80135D20.c +++ b/src/ov_SC05_005/ov_SC05_005_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_801829D0)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_801829D0)[2]; d = dx; denom = -(*(s16 **)&D_801829DC)[2]; } else { denom = (*(s16 **)&D_801829DC)[2]; - d = (*(s16 **)&D_801829D0)[2] - (s16) arg2; + d = (*(s16 **)&D_801829D0)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_801829D8[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_801829D8[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC05_005/ov_SC05_005_jr_80140608.c b/src/ov_SC05_005/ov_SC05_005_jr_80140608.c index 8bff216f2..1f40c442e 100644 --- a/src/ov_SC05_005/ov_SC05_005_jr_80140608.c +++ b/src/ov_SC05_005/ov_SC05_005_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80183D9C[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80183D9C[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC05_005/ov_SC05_005_jr_8015C32C.c b/src/ov_SC05_005/ov_SC05_005_jr_8015C32C.c index bbac1990d..9acd5ff57 100644 --- a/src/ov_SC05_005/ov_SC05_005_jr_8015C32C.c +++ b/src/ov_SC05_005/ov_SC05_005_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80184ADC)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80184ADC)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC05_005/ov_SC05_005_jr_8016AB6C.c b/src/ov_SC05_005/ov_SC05_005_jr_8016AB6C.c index 0207790d2..cccdbb926 100644 --- a/src/ov_SC05_005/ov_SC05_005_jr_8016AB6C.c +++ b/src/ov_SC05_005/ov_SC05_005_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_801855A4)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC05_006/ov_SC05_006_after.c b/src/ov_SC05_006/ov_SC05_006_after.c index 239f5d12a..d5bcef6af 100644 --- a/src/ov_SC05_006/ov_SC05_006_after.c +++ b/src/ov_SC05_006/ov_SC05_006_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC05_006/ov_SC05_006_jr_80135D20.c b/src/ov_SC05_006/ov_SC05_006_jr_80135D20.c index 385077ebb..a67af2c34 100644 --- a/src/ov_SC05_006/ov_SC05_006_jr_80135D20.c +++ b/src/ov_SC05_006/ov_SC05_006_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8017F9F0)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8017F9F0)[2]; d = dx; denom = -(*(s16 **)&D_8017F9FC)[2]; } else { denom = (*(s16 **)&D_8017F9FC)[2]; - d = (*(s16 **)&D_8017F9F0)[2] - (s16) arg2; + d = (*(s16 **)&D_8017F9F0)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8017F9F8[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8017F9F8[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC05_006/ov_SC05_006_jr_80140608.c b/src/ov_SC05_006/ov_SC05_006_jr_80140608.c index 90a9bf178..9298adb20 100644 --- a/src/ov_SC05_006/ov_SC05_006_jr_80140608.c +++ b/src/ov_SC05_006/ov_SC05_006_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80180DBC[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80180DBC[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC05_006/ov_SC05_006_jr_8015C32C.c b/src/ov_SC05_006/ov_SC05_006_jr_8015C32C.c index f2692fd44..a922d893f 100644 --- a/src/ov_SC05_006/ov_SC05_006_jr_8015C32C.c +++ b/src/ov_SC05_006/ov_SC05_006_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80181AFC)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80181AFC)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC05_006/ov_SC05_006_jr_8016AB6C.c b/src/ov_SC05_006/ov_SC05_006_jr_8016AB6C.c index 6e97777c8..40de37dc6 100644 --- a/src/ov_SC05_006/ov_SC05_006_jr_8016AB6C.c +++ b/src/ov_SC05_006/ov_SC05_006_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_801825C4)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC05_007/ov_SC05_007_after.c b/src/ov_SC05_007/ov_SC05_007_after.c index 9a91295f8..169f54797 100644 --- a/src/ov_SC05_007/ov_SC05_007_after.c +++ b/src/ov_SC05_007/ov_SC05_007_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC05_007/ov_SC05_007_jr_80135D20.c b/src/ov_SC05_007/ov_SC05_007_jr_80135D20.c index d14c897d1..bb9ee2118 100644 --- a/src/ov_SC05_007/ov_SC05_007_jr_80135D20.c +++ b/src/ov_SC05_007/ov_SC05_007_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80180FEC)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80180FEC)[2]; d = dx; denom = -(*(s16 **)&D_80180FF8)[2]; } else { denom = (*(s16 **)&D_80180FF8)[2]; - d = (*(s16 **)&D_80180FEC)[2] - (s16) arg2; + d = (*(s16 **)&D_80180FEC)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80180FF4[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80180FF4[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC05_007/ov_SC05_007_jr_80140608.c b/src/ov_SC05_007/ov_SC05_007_jr_80140608.c index 7450c76aa..e3e733f02 100644 --- a/src/ov_SC05_007/ov_SC05_007_jr_80140608.c +++ b/src/ov_SC05_007/ov_SC05_007_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_801823B8[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_801823B8[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC05_007/ov_SC05_007_jr_8015C32C.c b/src/ov_SC05_007/ov_SC05_007_jr_8015C32C.c index 70e129fea..1b935c0aa 100644 --- a/src/ov_SC05_007/ov_SC05_007_jr_8015C32C.c +++ b/src/ov_SC05_007/ov_SC05_007_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_801830F8)[*(u16 *)param_1](); + ((void (**)(s32 *))D_801830F8)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC05_007/ov_SC05_007_jr_8016AB6C.c b/src/ov_SC05_007/ov_SC05_007_jr_8016AB6C.c index 66d85060d..2195105fa 100644 --- a/src/ov_SC05_007/ov_SC05_007_jr_8016AB6C.c +++ b/src/ov_SC05_007/ov_SC05_007_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80183BC0)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC05_008/ov_SC05_008_after.c b/src/ov_SC05_008/ov_SC05_008_after.c index 991306515..8747f9254 100644 --- a/src/ov_SC05_008/ov_SC05_008_after.c +++ b/src/ov_SC05_008/ov_SC05_008_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC05_008/ov_SC05_008_jr_80135D20.c b/src/ov_SC05_008/ov_SC05_008_jr_80135D20.c index 8b6ebada2..888a406af 100644 --- a/src/ov_SC05_008/ov_SC05_008_jr_80135D20.c +++ b/src/ov_SC05_008/ov_SC05_008_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80182F44)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80182F44)[2]; d = dx; denom = -(*(s16 **)&D_80182F50)[2]; } else { denom = (*(s16 **)&D_80182F50)[2]; - d = (*(s16 **)&D_80182F44)[2] - (s16) arg2; + d = (*(s16 **)&D_80182F44)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80182F4C[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80182F4C[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC05_008/ov_SC05_008_jr_80140608.c b/src/ov_SC05_008/ov_SC05_008_jr_80140608.c index 6da13cf0a..5bdcc4d81 100644 --- a/src/ov_SC05_008/ov_SC05_008_jr_80140608.c +++ b/src/ov_SC05_008/ov_SC05_008_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80184310[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80184310[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC05_008/ov_SC05_008_jr_8015C32C.c b/src/ov_SC05_008/ov_SC05_008_jr_8015C32C.c index 934e5e9ac..26c4e81f2 100644 --- a/src/ov_SC05_008/ov_SC05_008_jr_8015C32C.c +++ b/src/ov_SC05_008/ov_SC05_008_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80185050)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80185050)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC05_008/ov_SC05_008_jr_8016AB6C.c b/src/ov_SC05_008/ov_SC05_008_jr_8016AB6C.c index a5952b681..6a35ad62c 100644 --- a/src/ov_SC05_008/ov_SC05_008_jr_8016AB6C.c +++ b/src/ov_SC05_008/ov_SC05_008_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus6) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus6) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80185B18)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC05_010/ov_SC05_010_after.c b/src/ov_SC05_010/ov_SC05_010_after.c index 2cc2a1d13..3bf8d9759 100644 --- a/src/ov_SC05_010/ov_SC05_010_after.c +++ b/src/ov_SC05_010/ov_SC05_010_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC05_010/ov_SC05_010_jr_80135D20.c b/src/ov_SC05_010/ov_SC05_010_jr_80135D20.c index 773c4c4ff..8d991dbaa 100644 --- a/src/ov_SC05_010/ov_SC05_010_jr_80135D20.c +++ b/src/ov_SC05_010/ov_SC05_010_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A tus1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A tus1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80188F30)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80188F30)[2]; d = dx; denom = -(*(s16 **)&D_80188F3C)[2]; } else { denom = (*(s16 **)&D_80188F3C)[2]; - d = (*(s16 **)&D_80188F30)[2] - (s16) arg2; + d = (*(s16 **)&D_80188F30)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80188F38[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A tus1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80188F38[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A tus1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC05_010/ov_SC05_010_jr_80140608.c b/src/ov_SC05_010/ov_SC05_010_jr_80140608.c index 689841da2..23bf7bfaf 100644 --- a/src/ov_SC05_010/ov_SC05_010_jr_80140608.c +++ b/src/ov_SC05_010/ov_SC05_010_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8018A2FC[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8018A2FC[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC05_010/ov_SC05_010_jr_8015C32C.c b/src/ov_SC05_010/ov_SC05_010_jr_8015C32C.c index d6cda93ee..a61cedf5e 100644 --- a/src/ov_SC05_010/ov_SC05_010_jr_8015C32C.c +++ b/src/ov_SC05_010/ov_SC05_010_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_8018B03C)[*(u16 *)param_1](); + ((void (**)(s32 *))D_8018B03C)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC05_010/ov_SC05_010_jr_8016AB6C.c b/src/ov_SC05_010/ov_SC05_010_jr_8016AB6C.c index e3959350f..1af8db92d 100644 --- a/src/ov_SC05_010/ov_SC05_010_jr_8016AB6C.c +++ b/src/ov_SC05_010/ov_SC05_010_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus7) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus7) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8018BB04)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC05_011/ov_SC05_011_after.c b/src/ov_SC05_011/ov_SC05_011_after.c index a15cca9fd..b947d73ef 100644 --- a/src/ov_SC05_011/ov_SC05_011_after.c +++ b/src/ov_SC05_011/ov_SC05_011_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC05_011/ov_SC05_011_jr_80135D20.c b/src/ov_SC05_011/ov_SC05_011_jr_80135D20.c index 3e23a567b..0cbc98298 100644 --- a/src/ov_SC05_011/ov_SC05_011_jr_80135D20.c +++ b/src/ov_SC05_011/ov_SC05_011_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus6) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus6) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8017E2A8)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8017E2A8)[2]; d = dx; denom = -(*(s16 **)&D_8017E2B4)[2]; } else { denom = (*(s16 **)&D_8017E2B4)[2]; - d = (*(s16 **)&D_8017E2A8)[2] - (s16) arg2; + d = (*(s16 **)&D_8017E2A8)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8017E2B0[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus6) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8017E2B0[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus6) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC05_011/ov_SC05_011_jr_80140608.c b/src/ov_SC05_011/ov_SC05_011_jr_80140608.c index 1d8b4596b..6c5f5b7c2 100644 --- a/src/ov_SC05_011/ov_SC05_011_jr_80140608.c +++ b/src/ov_SC05_011/ov_SC05_011_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8017F674[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8017F674[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC05_011/ov_SC05_011_jr_8015C32C.c b/src/ov_SC05_011/ov_SC05_011_jr_8015C32C.c index eec437eeb..638f55b71 100644 --- a/src/ov_SC05_011/ov_SC05_011_jr_8015C32C.c +++ b/src/ov_SC05_011/ov_SC05_011_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_801803B4)[*(u16 *)param_1](); + ((void (**)(s32 *))D_801803B4)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC05_011/ov_SC05_011_jr_8016AB6C.c b/src/ov_SC05_011/ov_SC05_011_jr_8016AB6C.c index 357509d5f..cae4ecf89 100644 --- a/src/ov_SC05_011/ov_SC05_011_jr_8016AB6C.c +++ b/src/ov_SC05_011/ov_SC05_011_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus7) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus7) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80180E7C)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC05_017/ov_SC05_017_after.c b/src/ov_SC05_017/ov_SC05_017_after.c index 159be1bb5..62c48986c 100644 --- a/src/ov_SC05_017/ov_SC05_017_after.c +++ b/src/ov_SC05_017/ov_SC05_017_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC05_017/ov_SC05_017_jr_80135D20.c b/src/ov_SC05_017/ov_SC05_017_jr_80135D20.c index ab9d8ef98..a1f76864f 100644 --- a/src/ov_SC05_017/ov_SC05_017_jr_80135D20.c +++ b/src/ov_SC05_017/ov_SC05_017_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus6) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus6) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8018D768)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8018D768)[2]; d = dx; denom = -(*(s16 **)&D_8018D774)[2]; } else { denom = (*(s16 **)&D_8018D774)[2]; - d = (*(s16 **)&D_8018D768)[2] - (s16) arg2; + d = (*(s16 **)&D_8018D768)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8018D770[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus6) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8018D770[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus6) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC05_017/ov_SC05_017_jr_80140608.c b/src/ov_SC05_017/ov_SC05_017_jr_80140608.c index 7894fa8fb..6a4aec8b5 100644 --- a/src/ov_SC05_017/ov_SC05_017_jr_80140608.c +++ b/src/ov_SC05_017/ov_SC05_017_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8018EB34[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8018EB34[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC05_017/ov_SC05_017_jr_8015C32C.c b/src/ov_SC05_017/ov_SC05_017_jr_8015C32C.c index b8483eb9d..ff1f6e6c2 100644 --- a/src/ov_SC05_017/ov_SC05_017_jr_8015C32C.c +++ b/src/ov_SC05_017/ov_SC05_017_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_8018F874)[*(u16 *)param_1](); + ((void (**)(s32 *))D_8018F874)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC05_017/ov_SC05_017_jr_8016AB6C.c b/src/ov_SC05_017/ov_SC05_017_jr_8016AB6C.c index e2be3da79..c1e5d1e9a 100644 --- a/src/ov_SC05_017/ov_SC05_017_jr_8016AB6C.c +++ b/src/ov_SC05_017/ov_SC05_017_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus7) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus7) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8019033C)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC05_018/ov_SC05_018_after.c b/src/ov_SC05_018/ov_SC05_018_after.c index e53a582a8..9f9f7d1ac 100644 --- a/src/ov_SC05_018/ov_SC05_018_after.c +++ b/src/ov_SC05_018/ov_SC05_018_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC05_018/ov_SC05_018_jr_80135D20.c b/src/ov_SC05_018/ov_SC05_018_jr_80135D20.c index 82ab1130e..f68321ad8 100644 --- a/src/ov_SC05_018/ov_SC05_018_jr_80135D20.c +++ b/src/ov_SC05_018/ov_SC05_018_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus6) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus6) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80186EC4)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80186EC4)[2]; d = dx; denom = -(*(s16 **)&D_80186ED0)[2]; } else { denom = (*(s16 **)&D_80186ED0)[2]; - d = (*(s16 **)&D_80186EC4)[2] - (s16) arg2; + d = (*(s16 **)&D_80186EC4)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80186ECC[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus6) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80186ECC[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus6) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC05_018/ov_SC05_018_jr_80140608.c b/src/ov_SC05_018/ov_SC05_018_jr_80140608.c index 513896f64..2e5e3df9a 100644 --- a/src/ov_SC05_018/ov_SC05_018_jr_80140608.c +++ b/src/ov_SC05_018/ov_SC05_018_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80188290[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80188290[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC05_018/ov_SC05_018_jr_8015C32C.c b/src/ov_SC05_018/ov_SC05_018_jr_8015C32C.c index 1368af455..3cc33b1b0 100644 --- a/src/ov_SC05_018/ov_SC05_018_jr_8015C32C.c +++ b/src/ov_SC05_018/ov_SC05_018_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80188FD0)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80188FD0)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC05_018/ov_SC05_018_jr_8016AB6C.c b/src/ov_SC05_018/ov_SC05_018_jr_8016AB6C.c index baa34a5e8..a28c4cc2e 100644 --- a/src/ov_SC05_018/ov_SC05_018_jr_8016AB6C.c +++ b/src/ov_SC05_018/ov_SC05_018_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus7) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus7) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80189A98)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC06_000/ov_SC06_000_after.c b/src/ov_SC06_000/ov_SC06_000_after.c index 0e4007f06..022b2ecb6 100644 --- a/src/ov_SC06_000/ov_SC06_000_after.c +++ b/src/ov_SC06_000/ov_SC06_000_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC06_000/ov_SC06_000_jr_80135D20.c b/src/ov_SC06_000/ov_SC06_000_jr_80135D20.c index ad9629eb6..99f3026fb 100644 --- a/src/ov_SC06_000/ov_SC06_000_jr_80135D20.c +++ b/src/ov_SC06_000/ov_SC06_000_jr_80135D20.c @@ -938,11 +938,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus6) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -951,16 +951,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus6) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80188818)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80188818)[2]; d = dx; denom = -(*(s16 **)&D_80188824)[2]; } else { denom = (*(s16 **)&D_80188824)[2]; - d = (*(s16 **)&D_80188818)[2] - (s16) arg2; + d = (*(s16 **)&D_80188818)[2] - a2v; dx = -d; } n = -d; @@ -986,13 +986,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80188820[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus6) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80188820[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus6) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC06_000/ov_SC06_000_jr_80140608.c b/src/ov_SC06_000/ov_SC06_000_jr_80140608.c index f448ef311..ea432fba0 100644 --- a/src/ov_SC06_000/ov_SC06_000_jr_80140608.c +++ b/src/ov_SC06_000/ov_SC06_000_jr_80140608.c @@ -2149,13 +2149,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80189BE4[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80189BE4[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC06_000/ov_SC06_000_jr_8015C32C.c b/src/ov_SC06_000/ov_SC06_000_jr_8015C32C.c index 0564ca9c3..e09ac7611 100644 --- a/src/ov_SC06_000/ov_SC06_000_jr_8015C32C.c +++ b/src/ov_SC06_000/ov_SC06_000_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_8018A924)[*(u16 *)param_1](); + ((void (**)(s32 *))D_8018A924)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC06_000/ov_SC06_000_jr_8016AB6C.c b/src/ov_SC06_000/ov_SC06_000_jr_8016AB6C.c index 31442c3a0..ecb3446ae 100644 --- a/src/ov_SC06_000/ov_SC06_000_jr_8016AB6C.c +++ b/src/ov_SC06_000/ov_SC06_000_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus7) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus7) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8018B3EC)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC06_006/ov_SC06_006_after.c b/src/ov_SC06_006/ov_SC06_006_after.c index 42fd738aa..d419fb572 100644 --- a/src/ov_SC06_006/ov_SC06_006_after.c +++ b/src/ov_SC06_006/ov_SC06_006_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC06_006/ov_SC06_006_jr_80135D20.c b/src/ov_SC06_006/ov_SC06_006_jr_80135D20.c index c1a3b0064..9b5855caa 100644 --- a/src/ov_SC06_006/ov_SC06_006_jr_80135D20.c +++ b/src/ov_SC06_006/ov_SC06_006_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus6) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus6) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8018233C)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8018233C)[2]; d = dx; denom = -(*(s16 **)&D_80182348)[2]; } else { denom = (*(s16 **)&D_80182348)[2]; - d = (*(s16 **)&D_8018233C)[2] - (s16) arg2; + d = (*(s16 **)&D_8018233C)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80182344[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus6) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80182344[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus6) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC06_006/ov_SC06_006_jr_80140608.c b/src/ov_SC06_006/ov_SC06_006_jr_80140608.c index 6d0224cfe..e234e35ec 100644 --- a/src/ov_SC06_006/ov_SC06_006_jr_80140608.c +++ b/src/ov_SC06_006/ov_SC06_006_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80183708[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80183708[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC06_006/ov_SC06_006_jr_8015C32C.c b/src/ov_SC06_006/ov_SC06_006_jr_8015C32C.c index 80e5c29cd..d51132f85 100644 --- a/src/ov_SC06_006/ov_SC06_006_jr_8015C32C.c +++ b/src/ov_SC06_006/ov_SC06_006_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80184448)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80184448)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC06_006/ov_SC06_006_jr_8016AB6C.c b/src/ov_SC06_006/ov_SC06_006_jr_8016AB6C.c index 8f1a8e73e..92b8cf3a9 100644 --- a/src/ov_SC06_006/ov_SC06_006_jr_8016AB6C.c +++ b/src/ov_SC06_006/ov_SC06_006_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus7) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus7) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80184F10)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC06_008/ov_SC06_008_after.c b/src/ov_SC06_008/ov_SC06_008_after.c index a43bfbbb5..f62a5dd08 100644 --- a/src/ov_SC06_008/ov_SC06_008_after.c +++ b/src/ov_SC06_008/ov_SC06_008_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC06_008/ov_SC06_008_jr_80135D20.c b/src/ov_SC06_008/ov_SC06_008_jr_80135D20.c index 32e22b0a2..3a3798272 100644 --- a/src/ov_SC06_008/ov_SC06_008_jr_80135D20.c +++ b/src/ov_SC06_008/ov_SC06_008_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus6) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus6) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80185DA4)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80185DA4)[2]; d = dx; denom = -(*(s16 **)&D_80185DB0)[2]; } else { denom = (*(s16 **)&D_80185DB0)[2]; - d = (*(s16 **)&D_80185DA4)[2] - (s16) arg2; + d = (*(s16 **)&D_80185DA4)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80185DAC[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus6) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80185DAC[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus6) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC06_008/ov_SC06_008_jr_80140608.c b/src/ov_SC06_008/ov_SC06_008_jr_80140608.c index 56e94424f..08c62395e 100644 --- a/src/ov_SC06_008/ov_SC06_008_jr_80140608.c +++ b/src/ov_SC06_008/ov_SC06_008_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80187170[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80187170[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC06_008/ov_SC06_008_jr_8015C32C.c b/src/ov_SC06_008/ov_SC06_008_jr_8015C32C.c index 0712e20a6..dbd8972cd 100644 --- a/src/ov_SC06_008/ov_SC06_008_jr_8015C32C.c +++ b/src/ov_SC06_008/ov_SC06_008_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80187EB0)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80187EB0)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC06_008/ov_SC06_008_jr_8016AB6C.c b/src/ov_SC06_008/ov_SC06_008_jr_8016AB6C.c index 3cdbed150..4c72f9ae4 100644 --- a/src/ov_SC06_008/ov_SC06_008_jr_8016AB6C.c +++ b/src/ov_SC06_008/ov_SC06_008_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus7) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus7) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80188978)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC06_010/ov_SC06_010_after.c b/src/ov_SC06_010/ov_SC06_010_after.c index abb2c69e5..1ff417604 100644 --- a/src/ov_SC06_010/ov_SC06_010_after.c +++ b/src/ov_SC06_010/ov_SC06_010_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC06_010/ov_SC06_010_jr_80135D20.c b/src/ov_SC06_010/ov_SC06_010_jr_80135D20.c index 0cf9b6a5d..cd44ae95b 100644 --- a/src/ov_SC06_010/ov_SC06_010_jr_80135D20.c +++ b/src/ov_SC06_010/ov_SC06_010_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus6) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus6) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80186F80)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80186F80)[2]; d = dx; denom = -(*(s16 **)&D_80186F8C)[2]; } else { denom = (*(s16 **)&D_80186F8C)[2]; - d = (*(s16 **)&D_80186F80)[2] - (s16) arg2; + d = (*(s16 **)&D_80186F80)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80186F88[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus6) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80186F88[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus6) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC06_010/ov_SC06_010_jr_80140608.c b/src/ov_SC06_010/ov_SC06_010_jr_80140608.c index fce70c55b..3678a92bd 100644 --- a/src/ov_SC06_010/ov_SC06_010_jr_80140608.c +++ b/src/ov_SC06_010/ov_SC06_010_jr_80140608.c @@ -2131,13 +2131,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8018834C[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8018834C[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC06_010/ov_SC06_010_jr_8015C32C.c b/src/ov_SC06_010/ov_SC06_010_jr_8015C32C.c index a033fbba4..56654c2a0 100644 --- a/src/ov_SC06_010/ov_SC06_010_jr_8015C32C.c +++ b/src/ov_SC06_010/ov_SC06_010_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_8018908C)[*(u16 *)param_1](); + ((void (**)(s32 *))D_8018908C)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC06_010/ov_SC06_010_jr_8016AB6C.c b/src/ov_SC06_010/ov_SC06_010_jr_8016AB6C.c index 0a5384e1e..0d9f68f51 100644 --- a/src/ov_SC06_010/ov_SC06_010_jr_8016AB6C.c +++ b/src/ov_SC06_010/ov_SC06_010_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus7) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus7) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80189B54)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC06_011/ov_SC06_011_after.c b/src/ov_SC06_011/ov_SC06_011_after.c index d093a700b..ccc2e0a49 100644 --- a/src/ov_SC06_011/ov_SC06_011_after.c +++ b/src/ov_SC06_011/ov_SC06_011_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC06_011/ov_SC06_011_jr_80135D20.c b/src/ov_SC06_011/ov_SC06_011_jr_80135D20.c index 19372fdb8..715ec48d2 100644 --- a/src/ov_SC06_011/ov_SC06_011_jr_80135D20.c +++ b/src/ov_SC06_011/ov_SC06_011_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus6) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus6) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_801809E0)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_801809E0)[2]; d = dx; denom = -(*(s16 **)&D_801809EC)[2]; } else { denom = (*(s16 **)&D_801809EC)[2]; - d = (*(s16 **)&D_801809E0)[2] - (s16) arg2; + d = (*(s16 **)&D_801809E0)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_801809E8[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus6) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_801809E8[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus6) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC06_011/ov_SC06_011_jr_80140608.c b/src/ov_SC06_011/ov_SC06_011_jr_80140608.c index d5c5e69b0..0a8c5331b 100644 --- a/src/ov_SC06_011/ov_SC06_011_jr_80140608.c +++ b/src/ov_SC06_011/ov_SC06_011_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80181DAC[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80181DAC[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC06_011/ov_SC06_011_jr_8015C32C.c b/src/ov_SC06_011/ov_SC06_011_jr_8015C32C.c index 48c41f634..73ab731cc 100644 --- a/src/ov_SC06_011/ov_SC06_011_jr_8015C32C.c +++ b/src/ov_SC06_011/ov_SC06_011_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80182AEC)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80182AEC)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC06_011/ov_SC06_011_jr_8016AB6C.c b/src/ov_SC06_011/ov_SC06_011_jr_8016AB6C.c index eeeaceda2..bd09f997e 100644 --- a/src/ov_SC06_011/ov_SC06_011_jr_8016AB6C.c +++ b/src/ov_SC06_011/ov_SC06_011_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus7) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus7) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_801835B4)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC06_013/ov_SC06_013_after.c b/src/ov_SC06_013/ov_SC06_013_after.c index 1b2d7fbd8..eccc31c47 100644 --- a/src/ov_SC06_013/ov_SC06_013_after.c +++ b/src/ov_SC06_013/ov_SC06_013_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC06_013/ov_SC06_013_jr_80135D20.c b/src/ov_SC06_013/ov_SC06_013_jr_80135D20.c index 09cba83be..0dc754cae 100644 --- a/src/ov_SC06_013/ov_SC06_013_jr_80135D20.c +++ b/src/ov_SC06_013/ov_SC06_013_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus6) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus6) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8017F15C)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8017F15C)[2]; d = dx; denom = -(*(s16 **)&D_8017F168)[2]; } else { denom = (*(s16 **)&D_8017F168)[2]; - d = (*(s16 **)&D_8017F15C)[2] - (s16) arg2; + d = (*(s16 **)&D_8017F15C)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8017F164[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus6) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8017F164[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus6) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC06_013/ov_SC06_013_jr_80140608.c b/src/ov_SC06_013/ov_SC06_013_jr_80140608.c index 045c779a9..c6663d889 100644 --- a/src/ov_SC06_013/ov_SC06_013_jr_80140608.c +++ b/src/ov_SC06_013/ov_SC06_013_jr_80140608.c @@ -2096,13 +2096,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80180528[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80180528[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC06_013/ov_SC06_013_jr_8015C32C.c b/src/ov_SC06_013/ov_SC06_013_jr_8015C32C.c index 1162d577e..15e010eca 100644 --- a/src/ov_SC06_013/ov_SC06_013_jr_8015C32C.c +++ b/src/ov_SC06_013/ov_SC06_013_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80181268)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80181268)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC06_013/ov_SC06_013_jr_8016AB6C.c b/src/ov_SC06_013/ov_SC06_013_jr_8016AB6C.c index 6665ebf97..99247436b 100644 --- a/src/ov_SC06_013/ov_SC06_013_jr_8016AB6C.c +++ b/src/ov_SC06_013/ov_SC06_013_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus7) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus7) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80181D30)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC06_014/ov_SC06_014_after.c b/src/ov_SC06_014/ov_SC06_014_after.c index 35bb1d378..f78bb1357 100644 --- a/src/ov_SC06_014/ov_SC06_014_after.c +++ b/src/ov_SC06_014/ov_SC06_014_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC06_014/ov_SC06_014_jr_80135D20.c b/src/ov_SC06_014/ov_SC06_014_jr_80135D20.c index da5f71472..60de36a62 100644 --- a/src/ov_SC06_014/ov_SC06_014_jr_80135D20.c +++ b/src/ov_SC06_014/ov_SC06_014_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus6) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus6) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_801804C0)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_801804C0)[2]; d = dx; denom = -(*(s16 **)&D_801804CC)[2]; } else { denom = (*(s16 **)&D_801804CC)[2]; - d = (*(s16 **)&D_801804C0)[2] - (s16) arg2; + d = (*(s16 **)&D_801804C0)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_801804C8[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus6) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_801804C8[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus6) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC06_014/ov_SC06_014_jr_80140608.c b/src/ov_SC06_014/ov_SC06_014_jr_80140608.c index 9332a0540..75221fbbf 100644 --- a/src/ov_SC06_014/ov_SC06_014_jr_80140608.c +++ b/src/ov_SC06_014/ov_SC06_014_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8018188C[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8018188C[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC06_014/ov_SC06_014_jr_8015C32C.c b/src/ov_SC06_014/ov_SC06_014_jr_8015C32C.c index 76bf946d8..e117f5267 100644 --- a/src/ov_SC06_014/ov_SC06_014_jr_8015C32C.c +++ b/src/ov_SC06_014/ov_SC06_014_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_801825CC)[*(u16 *)param_1](); + ((void (**)(s32 *))D_801825CC)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC06_014/ov_SC06_014_jr_8016AB6C.c b/src/ov_SC06_014/ov_SC06_014_jr_8016AB6C.c index 6038a3921..c591a6341 100644 --- a/src/ov_SC06_014/ov_SC06_014_jr_8016AB6C.c +++ b/src/ov_SC06_014/ov_SC06_014_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus7) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus7) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80183094)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC06_015/ov_SC06_015_after.c b/src/ov_SC06_015/ov_SC06_015_after.c index 2ef1ee5c3..f10eedd5d 100644 --- a/src/ov_SC06_015/ov_SC06_015_after.c +++ b/src/ov_SC06_015/ov_SC06_015_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC06_015/ov_SC06_015_jr_80135D20.c b/src/ov_SC06_015/ov_SC06_015_jr_80135D20.c index 78ca9e6ff..e65c97001 100644 --- a/src/ov_SC06_015/ov_SC06_015_jr_80135D20.c +++ b/src/ov_SC06_015/ov_SC06_015_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus6) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus6) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8017F018)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8017F018)[2]; d = dx; denom = -(*(s16 **)&D_8017F024)[2]; } else { denom = (*(s16 **)&D_8017F024)[2]; - d = (*(s16 **)&D_8017F018)[2] - (s16) arg2; + d = (*(s16 **)&D_8017F018)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8017F020[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus6) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8017F020[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus6) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC06_015/ov_SC06_015_jr_80140608.c b/src/ov_SC06_015/ov_SC06_015_jr_80140608.c index 146506933..f47a4e769 100644 --- a/src/ov_SC06_015/ov_SC06_015_jr_80140608.c +++ b/src/ov_SC06_015/ov_SC06_015_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_801803E4[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_801803E4[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC06_015/ov_SC06_015_jr_8015C32C.c b/src/ov_SC06_015/ov_SC06_015_jr_8015C32C.c index b864cf0a9..42c2e312c 100644 --- a/src/ov_SC06_015/ov_SC06_015_jr_8015C32C.c +++ b/src/ov_SC06_015/ov_SC06_015_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80181124)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80181124)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC06_015/ov_SC06_015_jr_8016AB6C.c b/src/ov_SC06_015/ov_SC06_015_jr_8016AB6C.c index afaea73af..b15bfd04f 100644 --- a/src/ov_SC06_015/ov_SC06_015_jr_8016AB6C.c +++ b/src/ov_SC06_015/ov_SC06_015_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus7) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus7) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80181BEC)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC06_016/ov_SC06_016_after.c b/src/ov_SC06_016/ov_SC06_016_after.c index 0ab68a3cd..4c8c2261c 100644 --- a/src/ov_SC06_016/ov_SC06_016_after.c +++ b/src/ov_SC06_016/ov_SC06_016_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC06_016/ov_SC06_016_jr_80135D20.c b/src/ov_SC06_016/ov_SC06_016_jr_80135D20.c index a7cbfb888..5b62a32c3 100644 --- a/src/ov_SC06_016/ov_SC06_016_jr_80135D20.c +++ b/src/ov_SC06_016/ov_SC06_016_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus6) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus6) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80185428)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80185428)[2]; d = dx; denom = -(*(s16 **)&D_80185434)[2]; } else { denom = (*(s16 **)&D_80185434)[2]; - d = (*(s16 **)&D_80185428)[2] - (s16) arg2; + d = (*(s16 **)&D_80185428)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80185430[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus6) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80185430[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus6) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC06_016/ov_SC06_016_jr_80140608.c b/src/ov_SC06_016/ov_SC06_016_jr_80140608.c index 512cea7da..59702d8e5 100644 --- a/src/ov_SC06_016/ov_SC06_016_jr_80140608.c +++ b/src/ov_SC06_016/ov_SC06_016_jr_80140608.c @@ -2111,13 +2111,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_801867F4[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_801867F4[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC06_016/ov_SC06_016_jr_8015C32C.c b/src/ov_SC06_016/ov_SC06_016_jr_8015C32C.c index 491431c83..a3ee10564 100644 --- a/src/ov_SC06_016/ov_SC06_016_jr_8015C32C.c +++ b/src/ov_SC06_016/ov_SC06_016_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80187534)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80187534)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC06_016/ov_SC06_016_jr_8016AB6C.c b/src/ov_SC06_016/ov_SC06_016_jr_8016AB6C.c index de5637c5a..5e3eae312 100644 --- a/src/ov_SC06_016/ov_SC06_016_jr_8016AB6C.c +++ b/src/ov_SC06_016/ov_SC06_016_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus7) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus7) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80187FFC)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC06_018/ov_SC06_018_after.c b/src/ov_SC06_018/ov_SC06_018_after.c index a93297ac4..2d61e01f8 100644 --- a/src/ov_SC06_018/ov_SC06_018_after.c +++ b/src/ov_SC06_018/ov_SC06_018_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC06_018/ov_SC06_018_jr_80135D20.c b/src/ov_SC06_018/ov_SC06_018_jr_80135D20.c index d33ea6c32..756fd659f 100644 --- a/src/ov_SC06_018/ov_SC06_018_jr_80135D20.c +++ b/src/ov_SC06_018/ov_SC06_018_jr_80135D20.c @@ -1096,11 +1096,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus6) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -1109,16 +1109,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus6) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80193B64)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80193B64)[2]; d = dx; denom = -(*(s16 **)&D_80193B70)[2]; } else { denom = (*(s16 **)&D_80193B70)[2]; - d = (*(s16 **)&D_80193B64)[2] - (s16) arg2; + d = (*(s16 **)&D_80193B64)[2] - a2v; dx = -d; } n = -d; @@ -1144,13 +1144,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80193B6C[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus6) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80193B6C[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus6) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC06_018/ov_SC06_018_jr_80140608.c b/src/ov_SC06_018/ov_SC06_018_jr_80140608.c index 65b243984..507012647 100644 --- a/src/ov_SC06_018/ov_SC06_018_jr_80140608.c +++ b/src/ov_SC06_018/ov_SC06_018_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80194F30[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80194F30[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC06_018/ov_SC06_018_jr_8015C32C.c b/src/ov_SC06_018/ov_SC06_018_jr_8015C32C.c index 8926abff0..cc838283a 100644 --- a/src/ov_SC06_018/ov_SC06_018_jr_8015C32C.c +++ b/src/ov_SC06_018/ov_SC06_018_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80195C70)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80195C70)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC06_018/ov_SC06_018_jr_8016AB6C.c b/src/ov_SC06_018/ov_SC06_018_jr_8016AB6C.c index 2a4719e8a..974f7d915 100644 --- a/src/ov_SC06_018/ov_SC06_018_jr_8016AB6C.c +++ b/src/ov_SC06_018/ov_SC06_018_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus7) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus7) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80196738)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC06_020/ov_SC06_020_after.c b/src/ov_SC06_020/ov_SC06_020_after.c index 2d283c4dd..1acfb4f7b 100644 --- a/src/ov_SC06_020/ov_SC06_020_after.c +++ b/src/ov_SC06_020/ov_SC06_020_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC06_020/ov_SC06_020_jr_80135D20.c b/src/ov_SC06_020/ov_SC06_020_jr_80135D20.c index 69334b9f2..535ae3c5a 100644 --- a/src/ov_SC06_020/ov_SC06_020_jr_80135D20.c +++ b/src/ov_SC06_020/ov_SC06_020_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus6) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus6) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_801855EC)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_801855EC)[2]; d = dx; denom = -(*(s16 **)&D_801855F8)[2]; } else { denom = (*(s16 **)&D_801855F8)[2]; - d = (*(s16 **)&D_801855EC)[2] - (s16) arg2; + d = (*(s16 **)&D_801855EC)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_801855F4[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus6) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_801855F4[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus6) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC06_020/ov_SC06_020_jr_80140608.c b/src/ov_SC06_020/ov_SC06_020_jr_80140608.c index 29173209f..a272d81ae 100644 --- a/src/ov_SC06_020/ov_SC06_020_jr_80140608.c +++ b/src/ov_SC06_020/ov_SC06_020_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_801869B8[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_801869B8[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC06_020/ov_SC06_020_jr_8015C32C.c b/src/ov_SC06_020/ov_SC06_020_jr_8015C32C.c index 462b68428..57d639a92 100644 --- a/src/ov_SC06_020/ov_SC06_020_jr_8015C32C.c +++ b/src/ov_SC06_020/ov_SC06_020_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_801876F8)[*(u16 *)param_1](); + ((void (**)(s32 *))D_801876F8)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus3) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC06_020/ov_SC06_020_jr_8016AB6C.c b/src/ov_SC06_020/ov_SC06_020_jr_8016AB6C.c index 69e6cdd5f..1b5d0efa0 100644 --- a/src/ov_SC06_020/ov_SC06_020_jr_8016AB6C.c +++ b/src/ov_SC06_020/ov_SC06_020_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus7) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus7) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_801881C0)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC06_022/ov_SC06_022_after.c b/src/ov_SC06_022/ov_SC06_022_after.c index 99eca9dde..753d4e7ab 100644 --- a/src/ov_SC06_022/ov_SC06_022_after.c +++ b/src/ov_SC06_022/ov_SC06_022_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC06_022/ov_SC06_022_jr_80135D20.c b/src/ov_SC06_022/ov_SC06_022_jr_80135D20.c index 918e39ab1..b60b10ec2 100644 --- a/src/ov_SC06_022/ov_SC06_022_jr_80135D20.c +++ b/src/ov_SC06_022/ov_SC06_022_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus6) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus6) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8018D8A8)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8018D8A8)[2]; d = dx; denom = -(*(s16 **)&D_8018D8B4)[2]; } else { denom = (*(s16 **)&D_8018D8B4)[2]; - d = (*(s16 **)&D_8018D8A8)[2] - (s16) arg2; + d = (*(s16 **)&D_8018D8A8)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8018D8B0[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus6) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8018D8B0[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus6) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC06_022/ov_SC06_022_jr_80140608.c b/src/ov_SC06_022/ov_SC06_022_jr_80140608.c index 0fba983fe..8ec742842 100644 --- a/src/ov_SC06_022/ov_SC06_022_jr_80140608.c +++ b/src/ov_SC06_022/ov_SC06_022_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8018EC74[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8018EC74[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC06_022/ov_SC06_022_jr_8015C32C.c b/src/ov_SC06_022/ov_SC06_022_jr_8015C32C.c index 1c17cfe61..88a7b27ab 100644 --- a/src/ov_SC06_022/ov_SC06_022_jr_8015C32C.c +++ b/src/ov_SC06_022/ov_SC06_022_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_8018F9B4)[*(u16 *)param_1](); + ((void (**)(s32 *))D_8018F9B4)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus4) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC06_022/ov_SC06_022_jr_8016AB6C.c b/src/ov_SC06_022/ov_SC06_022_jr_8016AB6C.c index a9fe985d9..a70e329af 100644 --- a/src/ov_SC06_022/ov_SC06_022_jr_8016AB6C.c +++ b/src/ov_SC06_022/ov_SC06_022_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus7) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus7) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8019047C)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC06_024/ov_SC06_024_after.c b/src/ov_SC06_024/ov_SC06_024_after.c index 617d18f36..928b7a519 100644 --- a/src/ov_SC06_024/ov_SC06_024_after.c +++ b/src/ov_SC06_024/ov_SC06_024_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC06_024/ov_SC06_024_jr_80135D20.c b/src/ov_SC06_024/ov_SC06_024_jr_80135D20.c index 2bb88c978..712720d2f 100644 --- a/src/ov_SC06_024/ov_SC06_024_jr_80135D20.c +++ b/src/ov_SC06_024/ov_SC06_024_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus6) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus6) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8018FD80)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8018FD80)[2]; d = dx; denom = -(*(s16 **)&D_8018FD8C)[2]; } else { denom = (*(s16 **)&D_8018FD8C)[2]; - d = (*(s16 **)&D_8018FD80)[2] - (s16) arg2; + d = (*(s16 **)&D_8018FD80)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8018FD88[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus6) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8018FD88[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus6) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC06_024/ov_SC06_024_jr_80140608.c b/src/ov_SC06_024/ov_SC06_024_jr_80140608.c index 3ec885a58..d2c9dca65 100644 --- a/src/ov_SC06_024/ov_SC06_024_jr_80140608.c +++ b/src/ov_SC06_024/ov_SC06_024_jr_80140608.c @@ -2111,13 +2111,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8019114C[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8019114C[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC06_024/ov_SC06_024_jr_8015C32C.c b/src/ov_SC06_024/ov_SC06_024_jr_8015C32C.c index 48aa557bd..7de47fa14 100644 --- a/src/ov_SC06_024/ov_SC06_024_jr_8015C32C.c +++ b/src/ov_SC06_024/ov_SC06_024_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80191E8C)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80191E8C)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus4) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC06_024/ov_SC06_024_jr_8016AB6C.c b/src/ov_SC06_024/ov_SC06_024_jr_8016AB6C.c index bcacdab08..7ede2a511 100644 --- a/src/ov_SC06_024/ov_SC06_024_jr_8016AB6C.c +++ b/src/ov_SC06_024/ov_SC06_024_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus7) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus7) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80192954)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC06_025/ov_SC06_025_after.c b/src/ov_SC06_025/ov_SC06_025_after.c index 26f64a3a5..0804ea60d 100644 --- a/src/ov_SC06_025/ov_SC06_025_after.c +++ b/src/ov_SC06_025/ov_SC06_025_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus4) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus4) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC06_025/ov_SC06_025_jr_80135D20.c b/src/ov_SC06_025/ov_SC06_025_jr_80135D20.c index 516afcc61..effc8cd44 100644 --- a/src/ov_SC06_025/ov_SC06_025_jr_80135D20.c +++ b/src/ov_SC06_025/ov_SC06_025_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus6) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus6) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80185224)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80185224)[2]; d = dx; denom = -(*(s16 **)&D_80185230)[2]; } else { denom = (*(s16 **)&D_80185230)[2]; - d = (*(s16 **)&D_80185224)[2] - (s16) arg2; + d = (*(s16 **)&D_80185224)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8018522C[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus6) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8018522C[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus6) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC06_025/ov_SC06_025_jr_80140608.c b/src/ov_SC06_025/ov_SC06_025_jr_80140608.c index c482ea78e..b9820af81 100644 --- a/src/ov_SC06_025/ov_SC06_025_jr_80140608.c +++ b/src/ov_SC06_025/ov_SC06_025_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_801865F0[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_801865F0[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC06_025/ov_SC06_025_jr_8015C32C.c b/src/ov_SC06_025/ov_SC06_025_jr_8015C32C.c index d2cdea364..dc95aa0a6 100644 --- a/src/ov_SC06_025/ov_SC06_025_jr_8015C32C.c +++ b/src/ov_SC06_025/ov_SC06_025_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80187330)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80187330)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus4) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC06_025/ov_SC06_025_jr_8016AB6C.c b/src/ov_SC06_025/ov_SC06_025_jr_8016AB6C.c index 9b8dab1e6..b5718221a 100644 --- a/src/ov_SC06_025/ov_SC06_025_jr_8016AB6C.c +++ b/src/ov_SC06_025/ov_SC06_025_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus7) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus7) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80187DF8)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC06_027/ov_SC06_027_after.c b/src/ov_SC06_027/ov_SC06_027_after.c index d02826382..53a725f35 100644 --- a/src/ov_SC06_027/ov_SC06_027_after.c +++ b/src/ov_SC06_027/ov_SC06_027_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus5) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus5) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC06_027/ov_SC06_027_jr_80135D20.c b/src/ov_SC06_027/ov_SC06_027_jr_80135D20.c index 03143016b..7671f0f8b 100644 --- a/src/ov_SC06_027/ov_SC06_027_jr_80135D20.c +++ b/src/ov_SC06_027/ov_SC06_027_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus6) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus6) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8017E564)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8017E564)[2]; d = dx; denom = -(*(s16 **)&D_8017E570)[2]; } else { denom = (*(s16 **)&D_8017E570)[2]; - d = (*(s16 **)&D_8017E564)[2] - (s16) arg2; + d = (*(s16 **)&D_8017E564)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8017E56C[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus6) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8017E56C[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus6) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC06_027/ov_SC06_027_jr_80140608.c b/src/ov_SC06_027/ov_SC06_027_jr_80140608.c index 4744ddd9a..c60e9bae0 100644 --- a/src/ov_SC06_027/ov_SC06_027_jr_80140608.c +++ b/src/ov_SC06_027/ov_SC06_027_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8017F930[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8017F930[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC06_027/ov_SC06_027_jr_8015C32C.c b/src/ov_SC06_027/ov_SC06_027_jr_8015C32C.c index 8abf0d006..caddf4217 100644 --- a/src/ov_SC06_027/ov_SC06_027_jr_8015C32C.c +++ b/src/ov_SC06_027/ov_SC06_027_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80180670)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80180670)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus4) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC06_027/ov_SC06_027_jr_8016AB6C.c b/src/ov_SC06_027/ov_SC06_027_jr_8016AB6C.c index 8c8224f85..42cab595e 100644 --- a/src/ov_SC06_027/ov_SC06_027_jr_8016AB6C.c +++ b/src/ov_SC06_027/ov_SC06_027_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus7) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus7) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80181138)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC06_029/ov_SC06_029_after.c b/src/ov_SC06_029/ov_SC06_029_after.c index 21272d9e1..1bedb2c83 100644 --- a/src/ov_SC06_029/ov_SC06_029_after.c +++ b/src/ov_SC06_029/ov_SC06_029_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus5) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus5) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC06_029/ov_SC06_029_jr_80135D20.c b/src/ov_SC06_029/ov_SC06_029_jr_80135D20.c index 77be30b14..3a05ca6c5 100644 --- a/src/ov_SC06_029/ov_SC06_029_jr_80135D20.c +++ b/src/ov_SC06_029/ov_SC06_029_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus6) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus6) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8018CAF8)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8018CAF8)[2]; d = dx; denom = -(*(s16 **)&D_8018CB04)[2]; } else { denom = (*(s16 **)&D_8018CB04)[2]; - d = (*(s16 **)&D_8018CAF8)[2] - (s16) arg2; + d = (*(s16 **)&D_8018CAF8)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8018CB00[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus6) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8018CB00[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus6) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC06_029/ov_SC06_029_jr_80140608.c b/src/ov_SC06_029/ov_SC06_029_jr_80140608.c index b98aa1452..115edcca5 100644 --- a/src/ov_SC06_029/ov_SC06_029_jr_80140608.c +++ b/src/ov_SC06_029/ov_SC06_029_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8018DEC4[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8018DEC4[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC06_029/ov_SC06_029_jr_8015C32C.c b/src/ov_SC06_029/ov_SC06_029_jr_8015C32C.c index b24d31832..b20b2052d 100644 --- a/src/ov_SC06_029/ov_SC06_029_jr_8015C32C.c +++ b/src/ov_SC06_029/ov_SC06_029_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_8018EC04)[*(u16 *)param_1](); + ((void (**)(s32 *))D_8018EC04)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus4) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC06_029/ov_SC06_029_jr_8016AB6C.c b/src/ov_SC06_029/ov_SC06_029_jr_8016AB6C.c index 0670b69c7..a70b8a011 100644 --- a/src/ov_SC06_029/ov_SC06_029_jr_8016AB6C.c +++ b/src/ov_SC06_029/ov_SC06_029_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus7) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus7) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8018F6CC)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC06_030/ov_SC06_030_after.c b/src/ov_SC06_030/ov_SC06_030_after.c index 850623045..91a17e823 100644 --- a/src/ov_SC06_030/ov_SC06_030_after.c +++ b/src/ov_SC06_030/ov_SC06_030_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus5) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus5) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC06_030/ov_SC06_030_jr_80135D20.c b/src/ov_SC06_030/ov_SC06_030_jr_80135D20.c index 822a12099..9f5dc2cf3 100644 --- a/src/ov_SC06_030/ov_SC06_030_jr_80135D20.c +++ b/src/ov_SC06_030/ov_SC06_030_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus6) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus6) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_801823E8)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_801823E8)[2]; d = dx; denom = -(*(s16 **)&D_801823F4)[2]; } else { denom = (*(s16 **)&D_801823F4)[2]; - d = (*(s16 **)&D_801823E8)[2] - (s16) arg2; + d = (*(s16 **)&D_801823E8)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_801823F0[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus6) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_801823F0[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus6) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC06_030/ov_SC06_030_jr_80140608.c b/src/ov_SC06_030/ov_SC06_030_jr_80140608.c index abc829def..9c236c383 100644 --- a/src/ov_SC06_030/ov_SC06_030_jr_80140608.c +++ b/src/ov_SC06_030/ov_SC06_030_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_801837B4[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_801837B4[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC06_030/ov_SC06_030_jr_8015C32C.c b/src/ov_SC06_030/ov_SC06_030_jr_8015C32C.c index 62977379d..674282e8b 100644 --- a/src/ov_SC06_030/ov_SC06_030_jr_8015C32C.c +++ b/src/ov_SC06_030/ov_SC06_030_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_801844F4)[*(u16 *)param_1](); + ((void (**)(s32 *))D_801844F4)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus4) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC06_030/ov_SC06_030_jr_8016AB6C.c b/src/ov_SC06_030/ov_SC06_030_jr_8016AB6C.c index 03d20e0b9..86ce9fdb1 100644 --- a/src/ov_SC06_030/ov_SC06_030_jr_8016AB6C.c +++ b/src/ov_SC06_030/ov_SC06_030_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus7) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus7) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80184FBC)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC06_032/ov_SC06_032_after.c b/src/ov_SC06_032/ov_SC06_032_after.c index cf379d814..4929cda73 100644 --- a/src/ov_SC06_032/ov_SC06_032_after.c +++ b/src/ov_SC06_032/ov_SC06_032_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus5) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus5) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC06_032/ov_SC06_032_jr_80135D20.c b/src/ov_SC06_032/ov_SC06_032_jr_80135D20.c index d99ebc99a..4c39e3b20 100644 --- a/src/ov_SC06_032/ov_SC06_032_jr_80135D20.c +++ b/src/ov_SC06_032/ov_SC06_032_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus6) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus6) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_801938B4)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_801938B4)[2]; d = dx; denom = -(*(s16 **)&D_801938C0)[2]; } else { denom = (*(s16 **)&D_801938C0)[2]; - d = (*(s16 **)&D_801938B4)[2] - (s16) arg2; + d = (*(s16 **)&D_801938B4)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_801938BC[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus6) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_801938BC[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus6) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC06_032/ov_SC06_032_jr_80140608.c b/src/ov_SC06_032/ov_SC06_032_jr_80140608.c index 5f589b9a0..81fef7ffe 100644 --- a/src/ov_SC06_032/ov_SC06_032_jr_80140608.c +++ b/src/ov_SC06_032/ov_SC06_032_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80194C80[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80194C80[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC06_032/ov_SC06_032_jr_8015C32C.c b/src/ov_SC06_032/ov_SC06_032_jr_8015C32C.c index 4dcfbecb4..eb7ab4f72 100644 --- a/src/ov_SC06_032/ov_SC06_032_jr_8015C32C.c +++ b/src/ov_SC06_032/ov_SC06_032_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_801959C0)[*(u16 *)param_1](); + ((void (**)(s32 *))D_801959C0)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus4) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC06_032/ov_SC06_032_jr_8016AB6C.c b/src/ov_SC06_032/ov_SC06_032_jr_8016AB6C.c index 531d1c485..1ba9d8f7f 100644 --- a/src/ov_SC06_032/ov_SC06_032_jr_8016AB6C.c +++ b/src/ov_SC06_032/ov_SC06_032_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus7) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus7) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80196488)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC06_033/ov_SC06_033_after.c b/src/ov_SC06_033/ov_SC06_033_after.c index a8c011871..603835af6 100644 --- a/src/ov_SC06_033/ov_SC06_033_after.c +++ b/src/ov_SC06_033/ov_SC06_033_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus5) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus5) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC06_033/ov_SC06_033_jr_80135D20.c b/src/ov_SC06_033/ov_SC06_033_jr_80135D20.c index d135a4f37..9f700f1a3 100644 --- a/src/ov_SC06_033/ov_SC06_033_jr_80135D20.c +++ b/src/ov_SC06_033/ov_SC06_033_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus6) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus6) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80191DC4)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80191DC4)[2]; d = dx; denom = -(*(s16 **)&D_80191DD0)[2]; } else { denom = (*(s16 **)&D_80191DD0)[2]; - d = (*(s16 **)&D_80191DC4)[2] - (s16) arg2; + d = (*(s16 **)&D_80191DC4)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80191DCC[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus6) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80191DCC[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus6) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC06_033/ov_SC06_033_jr_80140608.c b/src/ov_SC06_033/ov_SC06_033_jr_80140608.c index cd23573ee..8d4a8e4a0 100644 --- a/src/ov_SC06_033/ov_SC06_033_jr_80140608.c +++ b/src/ov_SC06_033/ov_SC06_033_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80193190[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80193190[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC06_033/ov_SC06_033_jr_8015C32C.c b/src/ov_SC06_033/ov_SC06_033_jr_8015C32C.c index cdee53158..067742a39 100644 --- a/src/ov_SC06_033/ov_SC06_033_jr_8015C32C.c +++ b/src/ov_SC06_033/ov_SC06_033_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80193ED0)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80193ED0)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus4) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC06_033/ov_SC06_033_jr_8016AB6C.c b/src/ov_SC06_033/ov_SC06_033_jr_8016AB6C.c index a677b8355..07c14e7e4 100644 --- a/src/ov_SC06_033/ov_SC06_033_jr_8016AB6C.c +++ b/src/ov_SC06_033/ov_SC06_033_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus7) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus7) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80194998)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC07_000/ov_SC07_000_after.c b/src/ov_SC07_000/ov_SC07_000_after.c index 77b679acb..b41bd84de 100644 --- a/src/ov_SC07_000/ov_SC07_000_after.c +++ b/src/ov_SC07_000/ov_SC07_000_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus5) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus5) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC07_000/ov_SC07_000_jr_80135D20.c b/src/ov_SC07_000/ov_SC07_000_jr_80135D20.c index ca30e8656..744288a7a 100644 --- a/src/ov_SC07_000/ov_SC07_000_jr_80135D20.c +++ b/src/ov_SC07_000/ov_SC07_000_jr_80135D20.c @@ -938,11 +938,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus6) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -951,16 +951,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus6) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80182C0C)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80182C0C)[2]; d = dx; denom = -(*(s16 **)&D_80182C18)[2]; } else { denom = (*(s16 **)&D_80182C18)[2]; - d = (*(s16 **)&D_80182C0C)[2] - (s16) arg2; + d = (*(s16 **)&D_80182C0C)[2] - a2v; dx = -d; } n = -d; @@ -986,13 +986,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80182C14[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus6) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80182C14[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus6) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC07_000/ov_SC07_000_jr_80140608.c b/src/ov_SC07_000/ov_SC07_000_jr_80140608.c index cbb3fbd9b..5c5f99022 100644 --- a/src/ov_SC07_000/ov_SC07_000_jr_80140608.c +++ b/src/ov_SC07_000/ov_SC07_000_jr_80140608.c @@ -2097,13 +2097,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80183FD8[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80183FD8[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC07_000/ov_SC07_000_jr_8015C32C.c b/src/ov_SC07_000/ov_SC07_000_jr_8015C32C.c index fe176fd0b..41a2ccb33 100644 --- a/src/ov_SC07_000/ov_SC07_000_jr_8015C32C.c +++ b/src/ov_SC07_000/ov_SC07_000_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80184D18)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80184D18)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus4) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC07_000/ov_SC07_000_jr_8016AB6C.c b/src/ov_SC07_000/ov_SC07_000_jr_8016AB6C.c index 2dd5c4315..fa4373776 100644 --- a/src/ov_SC07_000/ov_SC07_000_jr_8016AB6C.c +++ b/src/ov_SC07_000/ov_SC07_000_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus7) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus7) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_801857E0)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC07_001/ov_SC07_001_after.c b/src/ov_SC07_001/ov_SC07_001_after.c index f053c7932..a00d32095 100644 --- a/src/ov_SC07_001/ov_SC07_001_after.c +++ b/src/ov_SC07_001/ov_SC07_001_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus5) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus5) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC07_001/ov_SC07_001_jr_80135D20.c b/src/ov_SC07_001/ov_SC07_001_jr_80135D20.c index 4322f5e29..77d574aad 100644 --- a/src/ov_SC07_001/ov_SC07_001_jr_80135D20.c +++ b/src/ov_SC07_001/ov_SC07_001_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus6) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus6) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80181ABC)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80181ABC)[2]; d = dx; denom = -(*(s16 **)&D_80181AC8)[2]; } else { denom = (*(s16 **)&D_80181AC8)[2]; - d = (*(s16 **)&D_80181ABC)[2] - (s16) arg2; + d = (*(s16 **)&D_80181ABC)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80181AC4[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus6) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80181AC4[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus6) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC07_001/ov_SC07_001_jr_80140608.c b/src/ov_SC07_001/ov_SC07_001_jr_80140608.c index 37a12912a..077e8c3eb 100644 --- a/src/ov_SC07_001/ov_SC07_001_jr_80140608.c +++ b/src/ov_SC07_001/ov_SC07_001_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80182E88[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80182E88[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC07_001/ov_SC07_001_jr_8015C32C.c b/src/ov_SC07_001/ov_SC07_001_jr_8015C32C.c index 79567a5fc..0b5d2245c 100644 --- a/src/ov_SC07_001/ov_SC07_001_jr_8015C32C.c +++ b/src/ov_SC07_001/ov_SC07_001_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80183BC8)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80183BC8)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus4) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC07_001/ov_SC07_001_jr_8016AB6C.c b/src/ov_SC07_001/ov_SC07_001_jr_8016AB6C.c index bee466659..7d9f2d09e 100644 --- a/src/ov_SC07_001/ov_SC07_001_jr_8016AB6C.c +++ b/src/ov_SC07_001/ov_SC07_001_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus7) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus7) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80184690)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC07_002/ov_SC07_002_after.c b/src/ov_SC07_002/ov_SC07_002_after.c index 937da94af..81ba9b83f 100644 --- a/src/ov_SC07_002/ov_SC07_002_after.c +++ b/src/ov_SC07_002/ov_SC07_002_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus5) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus5) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC07_002/ov_SC07_002_jr_80135D20.c b/src/ov_SC07_002/ov_SC07_002_jr_80135D20.c index d89710bdc..c2ea14395 100644 --- a/src/ov_SC07_002/ov_SC07_002_jr_80135D20.c +++ b/src/ov_SC07_002/ov_SC07_002_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus6) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus6) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_80186D78)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_80186D78)[2]; d = dx; denom = -(*(s16 **)&D_80186D84)[2]; } else { denom = (*(s16 **)&D_80186D84)[2]; - d = (*(s16 **)&D_80186D78)[2] - (s16) arg2; + d = (*(s16 **)&D_80186D78)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_80186D80[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus6) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_80186D80[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus6) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC07_002/ov_SC07_002_jr_80140608.c b/src/ov_SC07_002/ov_SC07_002_jr_80140608.c index 10358383f..8d77f4304 100644 --- a/src/ov_SC07_002/ov_SC07_002_jr_80140608.c +++ b/src/ov_SC07_002/ov_SC07_002_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_80188144[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80188144[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC07_002/ov_SC07_002_jr_8015C32C.c b/src/ov_SC07_002/ov_SC07_002_jr_8015C32C.c index 1021352fd..c2e8d9bf1 100644 --- a/src/ov_SC07_002/ov_SC07_002_jr_8015C32C.c +++ b/src/ov_SC07_002/ov_SC07_002_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80188E84)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80188E84)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus4) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC07_002/ov_SC07_002_jr_8016AB6C.c b/src/ov_SC07_002/ov_SC07_002_jr_8016AB6C.c index 6ee0b9919..0ef07d75d 100644 --- a/src/ov_SC07_002/ov_SC07_002_jr_8016AB6C.c +++ b/src/ov_SC07_002/ov_SC07_002_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus7) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus7) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_8018994C)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC07_006/ov_SC07_006_jr_80140608.c b/src/ov_SC07_006/ov_SC07_006_jr_80140608.c index ff49fda7e..37c9480a5 100644 --- a/src/ov_SC07_006/ov_SC07_006_jr_80140608.c +++ b/src/ov_SC07_006/ov_SC07_006_jr_80140608.c @@ -2089,13 +2089,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8018BD68[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8018BD68[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC07_007/ov_SC07_007_jr_80140608.c b/src/ov_SC07_007/ov_SC07_007_jr_80140608.c index 30e862670..4d11dd318 100644 --- a/src/ov_SC07_007/ov_SC07_007_jr_80140608.c +++ b/src/ov_SC07_007/ov_SC07_007_jr_80140608.c @@ -2082,13 +2082,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8018488C[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8018488C[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC07_008/ov_SC07_008_after.c b/src/ov_SC07_008/ov_SC07_008_after.c index 24c9d7acf..8945b1153 100644 --- a/src/ov_SC07_008/ov_SC07_008_after.c +++ b/src/ov_SC07_008/ov_SC07_008_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus5) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus5) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC07_008/ov_SC07_008_jr_80135D20.c b/src/ov_SC07_008/ov_SC07_008_jr_80135D20.c index be86c8110..dd5af4077 100644 --- a/src/ov_SC07_008/ov_SC07_008_jr_80135D20.c +++ b/src/ov_SC07_008/ov_SC07_008_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus6) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus6) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8017D890)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8017D890)[2]; d = dx; denom = -(*(s16 **)&D_8017D89C)[2]; } else { denom = (*(s16 **)&D_8017D89C)[2]; - d = (*(s16 **)&D_8017D890)[2] - (s16) arg2; + d = (*(s16 **)&D_8017D890)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8017D898[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus6) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8017D898[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus6) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC07_008/ov_SC07_008_jr_80140608.c b/src/ov_SC07_008/ov_SC07_008_jr_80140608.c index 8f2c5e93b..85b6bc5c1 100644 --- a/src/ov_SC07_008/ov_SC07_008_jr_80140608.c +++ b/src/ov_SC07_008/ov_SC07_008_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8017EC5C[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8017EC5C[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC07_008/ov_SC07_008_jr_8015C32C.c b/src/ov_SC07_008/ov_SC07_008_jr_8015C32C.c index e78e8a9d3..a3008e280 100644 --- a/src/ov_SC07_008/ov_SC07_008_jr_8015C32C.c +++ b/src/ov_SC07_008/ov_SC07_008_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_8017F99C)[*(u16 *)param_1](); + ((void (**)(s32 *))D_8017F99C)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus4) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC07_008/ov_SC07_008_jr_8016AB6C.c b/src/ov_SC07_008/ov_SC07_008_jr_8016AB6C.c index e57b95d0e..28b7a4c96 100644 --- a/src/ov_SC07_008/ov_SC07_008_jr_8016AB6C.c +++ b/src/ov_SC07_008/ov_SC07_008_jr_8016AB6C.c @@ -2033,12 +2033,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus7) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus7) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2051,16 +2051,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80180464)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC07_009/ov_SC07_009_after.c b/src/ov_SC07_009/ov_SC07_009_after.c index 9b2a4c118..166c03f08 100644 --- a/src/ov_SC07_009/ov_SC07_009_after.c +++ b/src/ov_SC07_009/ov_SC07_009_after.c @@ -1578,7 +1578,7 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -1614,7 +1614,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus5) V4 out[3]; V4 pos; Desc desc; @@ -1638,7 +1637,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus5) t = a2[0]; u = a1[0]; dx = t - u; @@ -1667,7 +1665,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC07_009/ov_SC07_009_jr_80135D20.c b/src/ov_SC07_009/ov_SC07_009_jr_80135D20.c index 94a17f783..700df2901 100644 --- a/src/ov_SC07_009/ov_SC07_009_jr_80135D20.c +++ b/src/ov_SC07_009/ov_SC07_009_jr_80135D20.c @@ -936,11 +936,11 @@ s32 func_80135EB0(void *arg0, s32 arg1_) { s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus6) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -949,16 +949,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus6) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8017E334)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8017E334)[2]; d = dx; denom = -(*(s16 **)&D_8017E340)[2]; } else { denom = (*(s16 **)&D_8017E340)[2]; - d = (*(s16 **)&D_8017E334)[2] - (s16) arg2; + d = (*(s16 **)&D_8017E334)[2] - a2v; dx = -d; } n = -d; @@ -984,13 +984,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8017E33C[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus6) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8017E33C[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus6) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/ov_SC07_009/ov_SC07_009_jr_80140608.c b/src/ov_SC07_009/ov_SC07_009_jr_80140608.c index becd646c0..7b9775976 100644 --- a/src/ov_SC07_009/ov_SC07_009_jr_80140608.c +++ b/src/ov_SC07_009/ov_SC07_009_jr_80140608.c @@ -2095,13 +2095,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8017F700[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8017F700[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/ov_SC07_009/ov_SC07_009_jr_8015C32C.c b/src/ov_SC07_009/ov_SC07_009_jr_8015C32C.c index 3fa8a5282..45362575a 100644 --- a/src/ov_SC07_009/ov_SC07_009_jr_8015C32C.c +++ b/src/ov_SC07_009/ov_SC07_009_jr_8015C32C.c @@ -2804,11 +2804,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80180440)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80180440)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus4) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/ov_SC07_009/ov_SC07_009_jr_8016AB6C.c b/src/ov_SC07_009/ov_SC07_009_jr_8016AB6C.c index 05599061c..dd97dbc39 100644 --- a/src/ov_SC07_009/ov_SC07_009_jr_8016AB6C.c +++ b/src/ov_SC07_009/ov_SC07_009_jr_8016AB6C.c @@ -2034,12 +2034,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus7) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus7) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2052,16 +2052,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80180F08)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC07_010/ov_SC07_010_jr_801457A4.c b/src/ov_SC07_010/ov_SC07_010_jr_801457A4.c index 108f835c3..4356bd4b7 100644 --- a/src/ov_SC07_010/ov_SC07_010_jr_801457A4.c +++ b/src/ov_SC07_010/ov_SC07_010_jr_801457A4.c @@ -2326,13 +2326,10 @@ extern void func_800139C8(s32 a0, void *a1, void *a2); extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8014DCE0(s32 a0, s32 a1, s32 a2); extern s32 func_80133784(s32 a0, void *a1, s32 a2); -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { - /* [T51] scoped in from file scope: a file-scope decl of these symbols constrains every - LATER function in this TU, which blocks a byte-true decl of a different type. - Declaration-only move (cookbook §103); the whole-binary byte-gate is the arbiter. */ - extern u8 D_801202A0[]; + extern u8 D_801202A0[]; extern u8 D_80183C10[]; extern u8 D_801152A8[]; extern s16 D_801152AC; @@ -2365,7 +2362,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2) V4 out[3]; V4 pos; Desc desc; @@ -2389,7 +2385,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2) t = a2[0]; u = a1[0]; dx = t - u; @@ -2418,7 +2413,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/ov_SC07_010/ov_SC07_010_jr_8016AE5C.c b/src/ov_SC07_010/ov_SC07_010_jr_8016AE5C.c index 8f438c577..200c28b96 100644 --- a/src/ov_SC07_010/ov_SC07_010_jr_8016AE5C.c +++ b/src/ov_SC07_010/ov_SC07_010_jr_8016AE5C.c @@ -2030,12 +2030,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus9) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus9) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -2048,16 +2048,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80185124)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/ov_SC07_011/ov_SC07_011_jr_80140608.c b/src/ov_SC07_011/ov_SC07_011_jr_80140608.c index 2aa802531..14f421871 100644 --- a/src/ov_SC07_011/ov_SC07_011_jr_80140608.c +++ b/src/ov_SC07_011/ov_SC07_011_jr_80140608.c @@ -2084,13 +2084,14 @@ extern void func_8012C218(void *a0); void func_80143D28(s32 param_1) { extern MatEntry D_8017FFDC[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_8017FFDC[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/shared/ov/func_80136334__6e7f4730.h b/src/shared/ov/func_80136334__6e7f4730.h index 2db824e75..12df40b12 100644 --- a/src/shared/ov/func_80136334__6e7f4730.h +++ b/src/shared/ov/func_80136334__6e7f4730.h @@ -3,11 +3,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A headers2) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -16,16 +16,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A headers2) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8017F054)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8017F054)[2]; d = dx; denom = -(*(s16 **)&D_8017F060)[2]; } else { denom = (*(s16 **)&D_8017F060)[2]; - d = (*(s16 **)&D_8017F054)[2] - (s16) arg2; + d = (*(s16 **)&D_8017F054)[2] - a2v; dx = -d; } n = -d; @@ -51,13 +51,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8017F05C[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A headers2) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8017F05C[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A headers2) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/shared/ov/func_80136334__ecfcc6f1.h b/src/shared/ov/func_80136334__ecfcc6f1.h index fee1d1b7e..b2b0e77c3 100644 --- a/src/shared/ov/func_80136334__ecfcc6f1.h +++ b/src/shared/ov/func_80136334__ecfcc6f1.h @@ -3,11 +3,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { extern u8 D_801152A8[]; extern s16 D_801152AA; - extern s16 D_801152AC; + extern s16 D_801152AC[]; extern s16 D_80126722; extern s16 D_80126724; - s32 a1v; - register s32 a2v __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung A headers1) + u16 a1v; + s16 a2v; s32 n; s16 *b4; s32 d; @@ -16,16 +16,16 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { s32 result; s32 frame_pad[2]; (void)&frame_pad; - __asm__("" : "=r"(a1v) : "0"(arg1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A headers1) + a1v = arg1; a2v = arg2; - if (!(arg1 & 1)) { - dx = (s16) arg2 - (*(s16 **)&D_8017F808)[2]; + if (!(a1v & 1)) { + dx = a2v - (*(s16 **)&D_8017F808)[2]; d = dx; denom = -(*(s16 **)&D_8017F814)[2]; } else { denom = (*(s16 **)&D_8017F814)[2]; - d = (*(s16 **)&D_8017F808)[2] - (s16) arg2; + d = (*(s16 **)&D_8017F808)[2] - a2v; dx = -d; } n = -d; @@ -51,13 +51,11 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) { (*(s16 *)D_801152A8) = 0; if (a1v & 1) { D_8017F810[2] = a2v + 2; - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung A headers1) - D_801152AC = 0xFFF; + D_801152AC[0] = 0xFFF; } else { - D_801152AC = -0xFFF; + D_801152AC[0] = -0xFFF; D_8017F810[2] = a2v - 2; } - __asm__ __volatile__("" :: "r"(a1v), "r"(a2v)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung A headers1) (*(s16 *)D_80126720) = (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1; D_80126722 = (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1; result = 1; diff --git a/src/shared/ov/func_80143D28__b958d830.h b/src/shared/ov/func_80143D28__b958d830.h index 6bf4b210d..1e6143e33 100644 --- a/src/shared/ov/func_80143D28__b958d830.h +++ b/src/shared/ov/func_80143D28__b958d830.h @@ -3,13 +3,14 @@ void func_80143D28(s32 param_1) { extern MatEntry D_80180420[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung A headers2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80180420[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/shared/ov/func_80143D28__ebe16725.h b/src/shared/ov/func_80143D28__ebe16725.h index 17a450647..ff5a55322 100644 --- a/src/shared/ov/func_80143D28__ebe16725.h +++ b/src/shared/ov/func_80143D28__ebe16725.h @@ -3,13 +3,14 @@ void func_80143D28(s32 param_1) { extern MatEntry D_80180BD4[]; - register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung A headers2) s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */ MatEntry *p = &D_80180BD4[*(s16 *)(param_1 + 0x70)]; + u16 uVar5 = p->f8; + s32 iVar3 = *(s32 *)(param_1 + 0x20); s32 sVar4; s32 iVar1; - *(s16 *)(iVar3 + 0x14) = p->f8; + *(s16 *)(iVar3 + 0x14) = uVar5; *(u16 *)(iVar3 + 0x12) = *(u16 *)(iVar3 + 0x12) + p->fa; sVar4 = 0x1000; ((void (*)(void *, void *, void *))ApplyMatrixSV)((void *)(*(s32 *)(param_1 + 0x20) + 0x34), p, (void *)(param_1 + 0x50)); diff --git a/src/shared/ov/func_8014D820__9ab0f3b9.h b/src/shared/ov/func_8014D820__9ab0f3b9.h index bc0b61408..75d90782c 100644 --- a/src/shared/ov/func_8014D820__9ab0f3b9.h +++ b/src/shared/ov/func_8014D820__9ab0f3b9.h @@ -1,6 +1,6 @@ /* func_8014D820 — shared body (overlay slot 0x80128158, h_exact 9ab0f3b9). ONE source: instantiated by #include at each * member's site in address order; the members are recorded in config/dedup.us.yaml (Phase 35). */ -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -36,7 +36,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung A headers2) V4 out[3]; V4 pos; Desc desc; @@ -60,7 +59,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung A s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A headers2) t = a2[0]; u = a1[0]; dx = t - u; @@ -89,7 +87,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/shared/ov/func_8014D820__ce76d008.h b/src/shared/ov/func_8014D820__ce76d008.h index dc45bca6a..c905ec7e9 100644 --- a/src/shared/ov/func_8014D820__ce76d008.h +++ b/src/shared/ov/func_8014D820__ce76d008.h @@ -1,6 +1,6 @@ /* func_8014D820 — shared body (overlay slot 0x80128158, h_exact ce76d008). ONE source: instantiated by #include at each * member's site in address order; the members are recorded in config/dedup.us.yaml (Phase 35). */ -s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) +s32 func_8014D820(s32 a0, u16 *a1, u16 *a2) { extern u8 D_801202A0[]; @@ -36,7 +36,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x) } Ent; int new_var2; s16 new_var3; -register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung A headers2) V4 out[3]; V4 pos; Desc desc; @@ -60,7 +59,6 @@ register u16 *a2 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung A s32 t; s32 u; s32 a0v; -__asm__ __volatile__("" : "=r"(a2) : "0"(a2x)); // !FAKE: launder — NEEDED DIFFERS (P36 rung A headers2) t = a2[0]; u = a1[0]; dx = t - u; @@ -89,7 +87,7 @@ a0v = a0; { goto fail; } - if (((s32 (*)(s32, s32, s32)) func_80135A4C)(ent->f20, ent->f58, (s32) a1) == 0) + if (func_80135A4C(ent->f20, ent->f58, (s32 *) a1, (s32) a2) == 0) { goto fail; } diff --git a/src/shared/ov/func_8015FBE0__7e0b6b06.h b/src/shared/ov/func_8015FBE0__7e0b6b06.h index b65a41308..67bc52933 100644 --- a/src/shared/ov/func_8015FBE0__7e0b6b06.h +++ b/src/shared/ov/func_8015FBE0__7e0b6b06.h @@ -5,11 +5,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80181160)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80181160)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B headers2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/shared/ov/func_8015FBE0__dd2ea6e8.h b/src/shared/ov/func_8015FBE0__dd2ea6e8.h index 140ede62d..87d037008 100644 --- a/src/shared/ov/func_8015FBE0__dd2ea6e8.h +++ b/src/shared/ov/func_8015FBE0__dd2ea6e8.h @@ -5,11 +5,10 @@ void func_8015FBE0(s32 *param_1) extern u8 D_800B9A17; if (param_1[0x61] < 0) { - ((void (**)())D_80181914)[*(u16 *)param_1](); + ((void (**)(s32 *))D_80181914)[*(u16 *)param_1](param_1); ((void (*)(s32 *, s16))func_80147078)(param_1, 0); ((void (*)(s32 *))func_80159B70)(param_1); } else { - __asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B headers2) D_80078EC1 = 0; ((void (*)(s32 *, s32))func_80154150)(param_1, 0x20); ((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18); diff --git a/src/shared/ov/func_8016B234__1b494b73.h b/src/shared/ov/func_8016B234__1b494b73.h index 08f29627c..de8e19fbc 100644 --- a/src/shared/ov/func_8016B234__1b494b73.h +++ b/src/shared/ov/func_8016B234__1b494b73.h @@ -8,12 +8,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung A headers2) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung A headers2) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -26,16 +26,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_80181C28)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/src/shared/ov/func_8016B234__c187857f.h b/src/shared/ov/func_8016B234__c187857f.h index 6d99f4330..333017ac8 100644 --- a/src/shared/ov/func_8016B234__c187857f.h +++ b/src/shared/ov/func_8016B234__c187857f.h @@ -8,12 +8,12 @@ void func_8016B234(s32 param_1) { Prim_B234 prim; struct { s16 xy[2]; s32 sp1c; s32 flag; } out; void *dp; - u32 uVar1; + u32 uVar1; /* the projected screen Y, then the UV column index */ s16 iVar2; s32 X, Y0, Y1, base, ni; - register s32 sy __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung A headers2) s16 xtmp; - register s32 sxy __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung A headers2) + s32 sxy; + s32 hh; dp = &D_800AF648; func_8004914C(dp); @@ -26,16 +26,15 @@ void func_8016B234(s32 param_1) { sxy = *(s32 *)out.xy; prim.a04 = 0x10; X = *(u16 *)(param_1 + 0x2a) + sxy; - sy = (u16)out.xy[1]; + uVar1 = (u16)out.xy[1]; prim.ax = prim.cx = X; prim.bx = prim.dx = X + 8; - Y0 = sy - *(u16 *)(param_1 + 0x26); + Y0 = uVar1 - *(u16 *)(param_1 + 0x26); prim.ay = prim.by = Y0; - sxy = *(u16 *)(param_1 + 0x26); + hh = *(u16 *)(param_1 + 0x26); prim.v0 = prim.v1 = 0x1d0; prim.v2 = prim.v3 = 0x1d8; - sxy = sy + sxy; - prim.cy = prim.dy = sxy; + prim.cy = prim.dy = uVar1 + hh; prim.r = prim.g = prim.b = *(u8 *)(param_1 + 0x24); prim.code = (&D_801823DC)[*(s32 *)(param_1 + 0x2c)]; if (*(s16 *)(param_1 + 0x26) < 5) { diff --git a/tools/delever.py b/tools/delever.py index 1d89374fd..cb3b0fe43 100644 --- a/tools/delever.py +++ b/tools/delever.py @@ -652,9 +652,14 @@ def includers(use_cache=True): (direct if rel.endswith(".c") else hdr_inc)[k2].add(rel) if use_cache: RUN.mkdir(parents=True, exist_ok=True) - tmp = INCLUDERS_CACHE.with_suffix(".tmp") - tmp.write_text(json.dumps(new_cache)) - os.replace(tmp, INCLUDERS_CACHE) + # a UNIQUE temp per process: the name used to be fixed, so concurrent readers clobbered each other's os.replace + # and the loser saw `FileNotFoundError: includers_cache.tmp -> includers_cache.json`, which reads like a compiler + # crash on the candidate. Found by an agent in S102's burst of 20 (R48: never key a shared path by a bare name). + import tempfile + fd, tmpname = tempfile.mkstemp(dir=str(RUN), prefix="includers_cache.", suffix=".tmp") + with os.fdopen(fd, "w") as fh: + json.dump(new_cache, fh) + os.replace(tmpname, INCLUDERS_CACHE) out = {} def resolve(h, seen=()): if h in out: