# `curves.c` -> `camcontrol.c` gap windows

Generated by `python tools/orig/source_gap_windows.py --materialize-all`.

## Summary
- left anchor: `dll/curves.c`
- right anchor: `dll/CAM/camcontrol.c`
- current EN gap: `0x800E56A4-0x80102D3C` size=`0x1D698` functions=`462`
- layout mode: `resolved-gap-hints`
- confidence: `medium`
- confidence note: Resolved gap names give a usable local skeleton, but the interval is only partially constrained.
- debug size total for estimated paths: `0x1D14` EN/debug ratio=`16.18x`
- estimated windows: `4`
- omitted exact-interval paths: `111`

## Estimated Windows
### `dll/gameplay.c`
- current EN window: `0x800E56A4-0x800FD9E0` size=`0x1833C` functions=`321`
- debug split: `0x8012CF08-0x8012E6F8` size=`0x17F0` functions=`53`
- scaled target: `0x18366` delta=`-0x2a`
- functions:
  - `fn_800E56A4@0x800E56A4-0x800E56B0` size=`0xC`
  - `fn_800E56B0@0x800E56B0-0x800E56B4` size=`0x4`
  - `fn_800E56B4@0x800E56B4-0x800E56B8` size=`0x4`
  - `fn_800E56B8@0x800E56B8-0x800E5928` size=`0x270`
  - `fn_800E5928@0x800E5928-0x800E5B80` size=`0x258`
  - `fn_800E5B80@0x800E5B80-0x800E5F40` size=`0x3C0`
  - `fn_800E5F40@0x800E5F40-0x800E60BC` size=`0x17C`
  - `fn_800E60BC@0x800E60BC-0x800E61A0` size=`0xE4`
  - `fn_800E61A0@0x800E61A0-0x800E6410` size=`0x270`
  - `fn_800E6410@0x800E6410-0x800E6778` size=`0x368`
  - `fn_800E6778@0x800E6778-0x800E6A30` size=`0x2B8`
  - `fn_800E6A30@0x800E6A30-0x800E6BA0` size=`0x170`
  - `fn_800E6BA0@0x800E6BA0-0x800E6D14` size=`0x174`
  - `fn_800E6D14@0x800E6D14-0x800E6DBC` size=`0xA8`
  - `fn_800E6DBC@0x800E6DBC-0x800E6F68` size=`0x1AC`
  - `fn_800E6F68@0x800E6F68-0x800E7910` size=`0x9A8`
  - ... (+305 more functions)
### `dll/pickup.c`
- current EN window: `0x800FD9E0-0x80102CA0` size=`0x52C0` functions=`137`
- debug split: `0x8012F578-0x8012FA8C` size=`0x514` functions=`13`
- scaled target: `0x522F` delta=`+0x91`
- functions:
  - `fn_800FD9E0@0x800FD9E0-0x800FDD2C` size=`0x34C`
  - `fn_800FDD2C@0x800FDD2C-0x800FDD30` size=`0x4`
  - `fn_800FDD30@0x800FDD30-0x800FDD34` size=`0x4`
  - `fn_800FDD34@0x800FDD34-0x800FE0AC` size=`0x378`
  - `fn_800FE0AC@0x800FE0AC-0x800FE0B0` size=`0x4`
  - `fn_800FE0B0@0x800FE0B0-0x800FE0B4` size=`0x4`
  - `fn_800FE0B4@0x800FE0B4-0x800FE4D4` size=`0x420`
  - `fn_800FE4D4@0x800FE4D4-0x800FE4D8` size=`0x4`
  - `fn_800FE4D8@0x800FE4D8-0x800FE4DC` size=`0x4`
  - `fn_800FE4DC@0x800FE4DC-0x800FE83C` size=`0x360`
  - `fn_800FE83C@0x800FE83C-0x800FE840` size=`0x4`
  - `fn_800FE840@0x800FE840-0x800FE844` size=`0x4`
  - `fn_800FE844@0x800FE844-0x800FEBBC` size=`0x378`
  - `fn_800FEBBC@0x800FEBBC-0x800FEBC0` size=`0x4`
  - `fn_800FEBC0@0x800FEBC0-0x800FEBC4` size=`0x4`
  - `fn_800FEBC4@0x800FEBC4-0x800FEF08` size=`0x344`
  - ... (+121 more functions)
### `dll/modanimeflash1.c`
- current EN window: `0x80102CA0-0x80102CC8` size=`0x28` functions=`1`
- debug split: `0x8012FB7C-0x8012FB84` size=`0x8` functions=`2`
- scaled target: `0x81` delta=`-0x59`
- functions:
  - `fn_80102CA0@0x80102CA0-0x80102CC8` size=`0x28`
### `dll/modcloudrunner2.c`
- current EN window: `0x80102CC8-0x80102D3C` size=`0x74` functions=`3`
- debug split: `0x8013B838-0x8013B840` size=`0x8` functions=`2`
- scaled target: `0x81` delta=`-0xd`
- functions:
  - `fn_80102CC8@0x80102CC8-0x80102CFC` size=`0x34`
  - `fn_80102CFC@0x80102CFC-0x80102D24` size=`0x28`
  - `fn_80102D24@0x80102D24-0x80102D3C` size=`0x18`

## Recommended Next Steps
- Use these windows as first-pass split boundaries, not source-truth.
- Verify nearby rodata/data ownership before materializing stubs or final split paths.
