re: recapture TurnEvents boundaries

This commit is contained in:
alex 2026-09-10 01:07:05 -04:00
parent 3e850a4a88
commit 41a6840162
36 changed files with 12510 additions and 2 deletions

View file

@ -21,7 +21,7 @@
"path": "/home/alex/sots-re" "path": "/home/alex/sots-re"
} }
}, },
"checkpoint": "campaign/runtime/checkpoints/research-completion-abi-ed14042366e407a5dc26e7a1.json", "checkpoint": "campaign/runtime/checkpoints/research-completion-abi-82fa3b0a12b0863401b9b0d1.json",
"dependencies": [ "dependencies": [
"controls-bootstrap" "controls-bootstrap"
], ],

View file

@ -20,6 +20,15 @@ package found three additional truncated historical stops (ObservedTech append/r
string allocation/replacement); their widened streams are now the byte authority. No archive string allocation/replacement); their widened streams are now the byte authority. No archive
production-history inference or live-safety claim is made. production-history inference or live-safety claim is made.
The TurnEvents correction's current-session boundary authority is
`verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/`. It supersedes the stale-session
attribution and truncated nested-copy stream invalidated by decisions
`d-fd5aff1eaf78a8c15d96723c` and `d-0bb927e63b915c87a58d4257`. The package binds the actual session
and a fail-if-used output directory; captures complete helper authority through `0x0077992f`; and
retains `0x00779a20` as an expected-failing boundary beside complete `0x00779a21`, `0x00779a23`, and
`0x00779a28` controls plus raw bytes. It is analyst static evidence awaiting a fresh independent
verifier, not restored acceptance.
## Implementable machine boundaries recovered ## Implementable machine boundaries recovered
* `0x008562a0`: ObservedTech default constructor, ECX receiver, EAX return, plain `ret`. * `0x008562a0`: ObservedTech default constructor, ECX receiver, EAX return, plain `ret`.

View file

@ -0,0 +1,55 @@
{
"actor": "research-abi-analyst",
"artifacts": [
{
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/manifest.json",
"sha256": "aaada07613a2d2b10d99c4b0a5ee795501a5eba13250c5d3beece587acd8d4a4"
},
{
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/report.md",
"sha256": "6e74ff0197adc6c97f5924ad3f973d5e8922f1480268d1c96dac3dd89000e38f"
},
{
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/capture.py",
"sha256": "66e230d79a2f9903941ff206656b7c26123adb528cbe807c2e1d3132137a20d1"
},
{
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-stop-a20.stdout.txt",
"sha256": "e3988aa615066dce65ec16de0d61051ffc5deafe8c8eef4aeb0bbfbe931204a1"
},
{
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-stop-a21.stdout.txt",
"sha256": "b6d58767d00328c37139f439db480c9bb5ce6767dabf212f9e750a31fea0d3d7"
},
{
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-stop-a23.stdout.txt",
"sha256": "e8cc66eb74730fcf7853d66df8caa620ddb3fc8c75335f0573ac490037a7a88e"
},
{
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-stop-a28.stdout.txt",
"sha256": "7b02af65ab916de02fc44b2004f8acedc127bf686874bd0c75d4a277c40d9560"
},
{
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-boundary-bytes.stdout.txt",
"sha256": "b2d9b57274be71fcdd853f04758bc65d701e7b4cc169d0d5ede24c8788ef82d5"
},
{
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-authority.stdout.txt",
"sha256": "973c87ccab76a8454a4e43c83b59cdeace1e4f8c124c5aa9630cb956e3156bb8"
},
{
"path": "campaign/research/research-completion-abi.md",
"sha256": "8540eeb93aa377eeaff1c71541e918786966f7ed4df09e4c2add30451622ff0e"
}
],
"basis": "aaddeb76f74bbd1a43671f882770ec84a7d690b4060d060ef1a68f918e8edbb0",
"contract": "research-completion-abi",
"id": "82fa3b0a12b0863401b9b0d1",
"model": "openai/gpt-5.6-sol",
"next_action": "Lead schedules an independent research-completion-abi verifier in a fresh real session to reproduce run-9daf5c3b75547271d5c3b4ed with its own fail-if-exists directory and execute the falsifiers listed in report.md.",
"role": "analyst",
"schema": "sots-checkpoint/1",
"session": "run-9daf5c3b75547271d5c3b4ed",
"summary": "Quantum-end handoff. OBSERVATIONS vs DECISIONS: Normal analyst recovery read canonical controls, needs-revision contract, resolver checkpoint, all surprise records (zero open), and governing decisions. Requested/claimed model is openai/gpt-5.6-sol, actor research-abi-analyst, role analyst, session run-9daf5c3b75547271d5c3b4ed; launcher registry agrees. Assigned worktrees remain baseline HEAD/common-dir identities: engine 7741d42fc5e4e761e6449bdaf0e4a61d00036a23 /home/alex/sots-engine/.git; RE 3bfde5a70d874a723e797a695bbd847fd82c0aa7 /home/alex/sots-re/.git. Preexisting dirt was not modified. Fresh source bindings before/after capture are engine ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd and RE 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8. Fresh owned package has 12 positive objdump executions with pinned binary/tool and no failed manifest checks. Measured facts: a20 truncates terminal 74 despite success; a21/a23/a28 terminate complete 74 10 / 8b cf / e8 28 6a ff ff, matching raw bytes; bounded 0x779850..0x779930 contains normal return, unwind cleanup/deallocation and padding while excluding later code; other helper exact stops terminate complete. DECISION: a20 remains negative control; static get/create/nested-vector ordering and dependencies are reported, with live allocator safety, exceptional cleanup, event field semantics and runtime states explicitly unclaimed. Original helper ledger and missing spare/full, empty/nonempty, short/long, sentinel and throw inputs are in report. Independent falsifiers require own session/directory, fresh identities, held-out complete boundary, expected rejection of a20, distinct branch/state accounting and archived event-record checking. Tests: initial capture exit 0; deliberate second execution failed closed with FileExistsError before writes; all four package hashes remained checkpoint hashes; canonical campaign validate passed for five contracts; status remains needs-revision, evidence empty, zero open surprises. Changed only owned campaign/research/research-completion-abi.md and owned run directory. No commit/stage/push. Resources: no VM, Ghidra or build-host access; no leases acquired or held; no side effects/cleanup beyond read-only local objdump outputs.",
"timestamp": "2026-09-10T05:03:57.074281+00:00"
}

View file

@ -0,0 +1,27 @@
{
"actor": "research-abi-analyst",
"artifacts": [
{
"path": "campaign/runtime/decisions/d-fd5aff1eaf78a8c15d96723c.json",
"sha256": "c58922b1bb4fd2c0c4bb5106bcc72de72a6f92c4ad533f7cd0c9f711d4b44ea7"
},
{
"path": "campaign/runtime/decisions/d-0bb927e63b915c87a58d4257.json",
"sha256": "866054afc1970b3cbb231d52386313a865d1165d87df72ca0057782fa81ead10"
},
{
"path": "verify/results/research-completion-abi/run-79357a65226f61d6a86c042d/manifest.json",
"sha256": "9961d182f025c669b116cab8e522fb840798d90776773b70a7dd602a79e1c224"
}
],
"basis": "aaddeb76f74bbd1a43671f882770ec84a7d690b4060d060ef1a68f918e8edbb0",
"contract": "research-completion-abi",
"id": "993135dfa29517709b113a40",
"model": "openai/gpt-5.6-sol",
"next_action": "Create a fail-if-exists session-specific capture recipe for run-9daf5c3b75547271d5c3b4ed, then run the complete ownership windows, nested-copy boundary controls at 0x00779a20/21/23 and raw bytes through 0x00779a28 against the pinned executable.",
"role": "analyst",
"schema": "sots-checkpoint/1",
"session": "run-9daf5c3b75547271d5c3b4ed",
"summary": "Recovery checkpoint before experiment. OBSERVATIONS: canonical README/current policy, contract, resolver checkpoint, all 13 surprise records, and decisions d-fd5aff1eaf78a8c15d96723c/d-0bb927e63b915c87a58d4257 were read; campaign status reports needs-revision with zero open surprises and owner research-abi-analyst. Launcher record requests openai/gpt-5.6-sol for analyst and session run-9daf5c3b75547271d5c3b4ed; registry matches. Direct Git checks: engine /tmp/opencode/sots-final-research-engine HEAD 7741d42fc5e4e761e6449bdaf0e4a61d00036a23 common-dir /home/alex/sots-engine/.git; RE /tmp/opencode/sots-final-research-re HEAD 3bfde5a70d874a723e797a695bbd847fd82c0aa7 common-dir /home/alex/sots-re/.git. Both contain extensive preexisting dirty/untracked files; no source edits made. Launch source_before records complete source snapshots. Historical run-79357a65226f61d6a86c042d is not this session and cannot satisfy the resolver-required new current-session directory. DECISION: execute only the resolver-prescribed fresh static objdump capture in owned verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed, fail if it exists, with explicit session and negative stale-session/location checks. No VM/Ghidra/build-host use or mutation; no lease acquired or held. Tests so far: campaign status succeeded; Git baseline/common-dir checks matched. BLOCKERS: none for static capture; live allocator safety and runtime branch inputs remain unavailable and out of this experiment.",
"timestamp": "2026-09-10T04:56:19.749144+00:00"
}

View file

@ -0,0 +1,31 @@
{
"actor": "research-abi-analyst",
"artifacts": [
{
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/manifest.json",
"sha256": "aaada07613a2d2b10d99c4b0a5ee795501a5eba13250c5d3beece587acd8d4a4"
},
{
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/report.md",
"sha256": "6e74ff0197adc6c97f5924ad3f973d5e8922f1480268d1c96dac3dd89000e38f"
},
{
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/capture.py",
"sha256": "66e230d79a2f9903941ff206656b7c26123adb528cbe807c2e1d3132137a20d1"
},
{
"path": "campaign/research/research-completion-abi.md",
"sha256": "8540eeb93aa377eeaff1c71541e918786966f7ed4df09e4c2add30451622ff0e"
}
],
"basis": "aaddeb76f74bbd1a43671f882770ec84a7d690b4060d060ef1a68f918e8edbb0",
"contract": "research-completion-abi",
"id": "ecf64f48db3b07d6312f2adf",
"model": "openai/gpt-5.6-sol",
"next_action": "Run the recipe a second time and require fail-closed reuse rejection, then validate canonical campaign state and write the quantum-end checkpoint handing this package to an independent verifier.",
"role": "analyst",
"schema": "sots-checkpoint/1",
"session": "run-9daf5c3b75547271d5c3b4ed",
"summary": "Post-experiment checkpoint. OBSERVATIONS: created fresh owned directory verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed only after fail-if-exists check. Session-bound capture recipe positively rejected missing/stale session, stale output and simulated reuse, then executed 12 read-only objdump commands; all return 0, stdout nonempty, stderr empty. Fresh binary identity 7898624 bytes/SHA256 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841; objdump 2.38 373888 bytes/SHA256 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd. Source before/after stable: engine ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd, RE 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8 at baseline HEADs/assigned paths. Measured boundary: stop a20 emits truncated 74 despite zero exit; a21 emits complete 74 10; a23 adds complete 8b cf; a28 adds complete e8 28 6a ff ff; raw bytes match. Bounded authority 0x779850..0x779930 includes normal ret 4, unwind cleanup/deallocation and padding through 0x77992f, excluding later routine. Other exact windows terminate complete and wide controls add padding/prologue. DECISION: retain a20 only as expected-failing negative; report static ordering/ownership and no runtime safety. Updated owned campaign handoff to point to this package. Verifier falsifiers and missing distinct states are explicit in report. No surprise: resolver predictions held. No VM/Ghidra/build-host use; no lease acquired/held; no cleanup required. No engine/worktree source edits, staging, commit or push.",
"timestamp": "2026-09-10T05:02:39.753309+00:00"
}

View file

@ -1,5 +1,5 @@
{ {
"contract": "research-completion-abi", "contract": "research-completion-abi",
"run": "run-daefd1b77558f324ae730b27", "run": "run-9daf5c3b75547271d5c3b4ed",
"status": "complete" "status": "complete"
} }

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,163 @@
#!/usr/bin/env python3
"""Fresh, session-bound static capture required by two 2026-09-10 Astra decisions."""
import argparse
import hashlib
import json
import subprocess
from datetime import datetime, timezone
from pathlib import Path
ROOT = Path("/home/alex/sots-re")
SESSION = "run-9daf5c3b75547271d5c3b4ed"
STALE_SESSION = "run-ee78b8773688ca09f8046e21"
REL_OUT = Path("verify/results/research-completion-abi") / SESSION
OUT = ROOT / REL_OUT
BINARY = ROOT / "dumps/sots.exe"
TOOL = Path("/usr/bin/objdump")
CAMPAIGN = ROOT / "tools/campaign.py"
ENGINE_TREE = Path("/tmp/opencode/sots-final-research-engine")
RE_TREE = Path("/tmp/opencode/sots-final-research-re")
EXPECTED_BINARY = "970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841"
EXPECTED_TOOL = "1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd"
# Exact historical windows remain controls. Each companion widened stop was already shown
# to add rows without changing the exact rows, except nested-copy's known-bad historical stop.
DISASSEMBLY = (
("turn-get-create-exact", 0x00885380, 0x0088544A, "complete-control"),
("turn-get-create-wide", 0x00885380, 0x0088544E, "boundary-audit"),
("turn-append-exact", 0x00884CB0, 0x00884D8F, "complete-control"),
("turn-append-wide", 0x00884CB0, 0x00884D93, "boundary-audit"),
("nested-dtor-exact", 0x00629580, 0x006295CA, "complete-control"),
("nested-dtor-wide", 0x00629580, 0x006295CE, "boundary-audit"),
("nested-copy-authority", 0x00779850, 0x00779930, "bounded-authority"),
("nested-copy-stop-a20", 0x00779850, 0x00779A20, "expected-truncated-negative"),
("nested-copy-stop-a21", 0x00779850, 0x00779A21, "predicted-complete-je"),
("nested-copy-stop-a23", 0x00779850, 0x00779A23, "predicted-complete-mov"),
("nested-copy-stop-a28", 0x00779850, 0x00779A28, "complete-call-boundary-control"),
)
RAW_BYTES = (
("nested-copy-boundary-bytes", 0x00779A1F, 0x00779A28),
)
def sha(data: bytes) -> str:
return hashlib.sha256(data).hexdigest()
def file_identity(path: Path) -> dict:
data = path.read_bytes()
return {"path": str(path), "bytes": len(data), "sha256": sha(data)}
def validate_identity(session: str, output: Path, entries: list[str]) -> None:
if not session:
raise ValueError("missing session")
if session == STALE_SESSION or session != SESSION:
raise ValueError("stale or unexpected session")
if output.resolve() != OUT.resolve() or output.name != session:
raise ValueError("output location is not bound to session")
if sorted(entries) not in ([], ["capture.py"]):
raise FileExistsError("output location was already used")
def source_binding() -> dict:
argv = [
"python3", str(CAMPAIGN), "--state-root", str(ROOT), "source-binding",
"research-completion-abi", "--engine-worktree", str(ENGINE_TREE),
"--re-worktree", str(RE_TREE),
]
proc = subprocess.run(argv, cwd=ROOT, check=True, capture_output=True, text=True)
return {"argv": argv, "value": json.loads(proc.stdout)}
def run_capture(name: str, argv: list[str], classification: str) -> dict:
proc = subprocess.run(argv, cwd=ROOT, check=False, capture_output=True)
stdout_path = OUT / f"{name}.stdout.txt"
stderr_path = OUT / f"{name}.stderr.txt"
stdout_path.write_bytes(proc.stdout)
stderr_path.write_bytes(proc.stderr)
return {
"name": name,
"classification": classification,
"argv": argv,
"cwd": str(ROOT),
"returncode": proc.returncode,
"stdout": {"path": str(stdout_path.relative_to(ROOT)), "bytes": len(proc.stdout), "sha256": sha(proc.stdout)},
"stderr": {"path": str(stderr_path.relative_to(ROOT)), "bytes": len(proc.stderr), "sha256": sha(proc.stderr)},
}
parser = argparse.ArgumentParser()
parser.add_argument("--session", required=True)
parser.add_argument("--output", required=True, type=Path)
args = parser.parse_args()
negative_preflight = []
for name, candidate_session, candidate_output, entries in (
("reject-missing-session", "", OUT, ["capture.py"]),
("reject-stale-session", STALE_SESSION, OUT, ["capture.py"]),
("reject-stale-output", SESSION, ROOT / "verify/results/research-completion-abi" / STALE_SESSION, ["capture.py"]),
("reject-reused-output", SESSION, OUT, ["capture.py", "prior-output.txt"]),
):
try:
validate_identity(candidate_session, candidate_output, entries)
except (ValueError, FileExistsError) as exc:
negative_preflight.append({"name": name, "status": "pass", "rejection": str(exc)})
else:
raise SystemExit(f"negative preflight unexpectedly accepted: {name}")
validate_identity(args.session, args.output, [p.name for p in OUT.iterdir()])
before = source_binding()
binary = file_identity(BINARY)
tool = file_identity(TOOL)
if binary["sha256"] != EXPECTED_BINARY or tool["sha256"] != EXPECTED_TOOL:
raise SystemExit("binary/tool identity drift")
records = []
for name, start, stop, classification in DISASSEMBLY:
records.append(run_capture(name, [
str(TOOL), "-D", "-Mintel", f"--start-address=0x{start:08x}",
f"--stop-address=0x{stop:08x}", str(BINARY),
], classification))
for name, start, stop in RAW_BYTES:
records.append(run_capture(name, [
str(TOOL), "-s", "-j", ".text", f"--start-address=0x{start:08x}",
f"--stop-address=0x{stop:08x}", str(BINARY),
], "raw-byte-boundary-control"))
after = source_binding()
checks = {
"explicit-session": args.session == SESSION,
"session-output-match": args.output.resolve() == OUT.resolve(),
"negative-preflight-all-rejected": all(x["status"] == "pass" for x in negative_preflight),
"binary-hash": binary["sha256"] == EXPECTED_BINARY,
"tool-hash": tool["sha256"] == EXPECTED_TOOL,
"source-stable": before["value"] == after["value"],
"all-return-zero": all(x["returncode"] == 0 for x in records),
"all-stdout-nonempty": all(x["stdout"]["bytes"] > 0 for x in records),
"all-stderr-empty": all(x["stderr"]["bytes"] == 0 for x in records),
}
manifest = {
"schema": "sots-abi-static-capture/1",
"session": SESSION,
"actor": "research-abi-analyst",
"role": "analyst",
"model": "openai/gpt-5.6-sol",
"timestamp": datetime.now(timezone.utc).isoformat(),
"decisions": ["d-fd5aff1eaf78a8c15d96723c", "d-0bb927e63b915c87a58d4257"],
"scope": "Fresh read-only static capture; no game, allocator, constructor, destructor, exception, or RNG execution.",
"negative_preflight": negative_preflight,
"source_before": before,
"source_after": after,
"input": binary,
"tool": {**tool, "version": subprocess.run([str(TOOL), "--version"], check=True, capture_output=True, text=True).stdout.splitlines()[0]},
"commands": records,
"checks": [{"name": name, "status": "pass" if status else "fail"} for name, status in checks.items()],
"failed": [name for name, status in checks.items() if not status],
}
(OUT / "manifest.json").write_text(json.dumps(manifest, indent=2) + "\n")
print(json.dumps({"commands": len(records), "failed": manifest["failed"], "manifest": str((OUT / "manifest.json").relative_to(ROOT))}, indent=2))
raise SystemExit(bool(manifest["failed"]))

View file

@ -0,0 +1,428 @@
{
"schema": "sots-abi-static-capture/1",
"session": "run-9daf5c3b75547271d5c3b4ed",
"actor": "research-abi-analyst",
"role": "analyst",
"model": "openai/gpt-5.6-sol",
"timestamp": "2026-09-10T04:59:38.840348+00:00",
"decisions": [
"d-fd5aff1eaf78a8c15d96723c",
"d-0bb927e63b915c87a58d4257"
],
"scope": "Fresh read-only static capture; no game, allocator, constructor, destructor, exception, or RNG execution.",
"negative_preflight": [
{
"name": "reject-missing-session",
"status": "pass",
"rejection": "missing session"
},
{
"name": "reject-stale-session",
"status": "pass",
"rejection": "stale or unexpected session"
},
{
"name": "reject-stale-output",
"status": "pass",
"rejection": "output location is not bound to session"
},
{
"name": "reject-reused-output",
"status": "pass",
"rejection": "output location was already used"
}
],
"source_before": {
"argv": [
"python3",
"/home/alex/sots-re/tools/campaign.py",
"--state-root",
"/home/alex/sots-re",
"source-binding",
"research-completion-abi",
"--engine-worktree",
"/tmp/opencode/sots-final-research-engine",
"--re-worktree",
"/tmp/opencode/sots-final-research-re"
],
"value": {
"engine": {
"commit": "7741d42fc5e4e761e6449bdaf0e4a61d00036a23",
"path": "/tmp/opencode/sots-final-research-engine",
"sha256": "ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd"
},
"re": {
"commit": "3bfde5a70d874a723e797a695bbd847fd82c0aa7",
"path": "/tmp/opencode/sots-final-research-re",
"sha256": "6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8"
}
}
},
"source_after": {
"argv": [
"python3",
"/home/alex/sots-re/tools/campaign.py",
"--state-root",
"/home/alex/sots-re",
"source-binding",
"research-completion-abi",
"--engine-worktree",
"/tmp/opencode/sots-final-research-engine",
"--re-worktree",
"/tmp/opencode/sots-final-research-re"
],
"value": {
"engine": {
"commit": "7741d42fc5e4e761e6449bdaf0e4a61d00036a23",
"path": "/tmp/opencode/sots-final-research-engine",
"sha256": "ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd"
},
"re": {
"commit": "3bfde5a70d874a723e797a695bbd847fd82c0aa7",
"path": "/tmp/opencode/sots-final-research-re",
"sha256": "6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8"
}
}
},
"input": {
"path": "/home/alex/sots-re/dumps/sots.exe",
"bytes": 7898624,
"sha256": "970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841"
},
"tool": {
"path": "/usr/bin/objdump",
"bytes": 373888,
"sha256": "1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd",
"version": "GNU objdump (GNU Binutils for Ubuntu) 2.38"
},
"commands": [
{
"name": "turn-get-create-exact",
"classification": "complete-control",
"argv": [
"/usr/bin/objdump",
"-D",
"-Mintel",
"--start-address=0x00885380",
"--stop-address=0x0088544a",
"/home/alex/sots-re/dumps/sots.exe"
],
"cwd": "/home/alex/sots-re",
"returncode": 0,
"stdout": {
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/turn-get-create-exact.stdout.txt",
"bytes": 3974,
"sha256": "f6e72ba9b08fdf48d70f39379b2fb30a5adbe796072485f70c5795c10ab45ca3"
},
"stderr": {
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/turn-get-create-exact.stderr.txt",
"bytes": 0,
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
},
{
"name": "turn-get-create-wide",
"classification": "boundary-audit",
"argv": [
"/usr/bin/objdump",
"-D",
"-Mintel",
"--start-address=0x00885380",
"--stop-address=0x0088544e",
"/home/alex/sots-re/dumps/sots.exe"
],
"cwd": "/home/alex/sots-re",
"returncode": 0,
"stdout": {
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/turn-get-create-wide.stdout.txt",
"bytes": 4134,
"sha256": "9cb7d2ccfcc645b3b642e520ba51c85330c57d6d4395ed3fbd4a4a1950436e80"
},
"stderr": {
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/turn-get-create-wide.stderr.txt",
"bytes": 0,
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
},
{
"name": "turn-append-exact",
"classification": "complete-control",
"argv": [
"/usr/bin/objdump",
"-D",
"-Mintel",
"--start-address=0x00884cb0",
"--stop-address=0x00884d8f",
"/home/alex/sots-re/dumps/sots.exe"
],
"cwd": "/home/alex/sots-re",
"returncode": 0,
"stdout": {
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/turn-append-exact.stdout.txt",
"bytes": 4179,
"sha256": "57d6655feed0fc137bb2b7eee4bfcb09536b5a715603c917ee142770f1d52a15"
},
"stderr": {
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/turn-append-exact.stderr.txt",
"bytes": 0,
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
},
{
"name": "turn-append-wide",
"classification": "boundary-audit",
"argv": [
"/usr/bin/objdump",
"-D",
"-Mintel",
"--start-address=0x00884cb0",
"--stop-address=0x00884d93",
"/home/alex/sots-re/dumps/sots.exe"
],
"cwd": "/home/alex/sots-re",
"returncode": 0,
"stdout": {
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/turn-append-wide.stdout.txt",
"bytes": 4309,
"sha256": "957339f40b2af8947cb883cc1d3a9d1e151bf7663305415065472ef9171dc33d"
},
"stderr": {
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/turn-append-wide.stderr.txt",
"bytes": 0,
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
},
{
"name": "nested-dtor-exact",
"classification": "complete-control",
"argv": [
"/usr/bin/objdump",
"-D",
"-Mintel",
"--start-address=0x00629580",
"--stop-address=0x006295ca",
"/home/alex/sots-re/dumps/sots.exe"
],
"cwd": "/home/alex/sots-re",
"returncode": 0,
"stdout": {
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-dtor-exact.stdout.txt",
"bytes": 1727,
"sha256": "3c38887e60d009ab904772b13be93ac1eedd9bee85024e37110160a625db3a83"
},
"stderr": {
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-dtor-exact.stderr.txt",
"bytes": 0,
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
},
{
"name": "nested-dtor-wide",
"classification": "boundary-audit",
"argv": [
"/usr/bin/objdump",
"-D",
"-Mintel",
"--start-address=0x00629580",
"--stop-address=0x006295ce",
"/home/alex/sots-re/dumps/sots.exe"
],
"cwd": "/home/alex/sots-re",
"returncode": 0,
"stdout": {
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-dtor-wide.stdout.txt",
"bytes": 1887,
"sha256": "0aba6fc800760e3a113c07238cfb6e721623eb0bb8a933a990d3e2e82823d00f"
},
"stderr": {
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-dtor-wide.stderr.txt",
"bytes": 0,
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
},
{
"name": "nested-copy-authority",
"classification": "bounded-authority",
"argv": [
"/usr/bin/objdump",
"-D",
"-Mintel",
"--start-address=0x00779850",
"--stop-address=0x00779930",
"/home/alex/sots-re/dumps/sots.exe"
],
"cwd": "/home/alex/sots-re",
"returncode": 0,
"stdout": {
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-authority.stdout.txt",
"bytes": 4465,
"sha256": "973c87ccab76a8454a4e43c83b59cdeace1e4f8c124c5aa9630cb956e3156bb8"
},
"stderr": {
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-authority.stderr.txt",
"bytes": 0,
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
},
{
"name": "nested-copy-stop-a20",
"classification": "expected-truncated-negative",
"argv": [
"/usr/bin/objdump",
"-D",
"-Mintel",
"--start-address=0x00779850",
"--stop-address=0x00779a20",
"/home/alex/sots-re/dumps/sots.exe"
],
"cwd": "/home/alex/sots-re",
"returncode": 0,
"stdout": {
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-stop-a20.stdout.txt",
"bytes": 8469,
"sha256": "e3988aa615066dce65ec16de0d61051ffc5deafe8c8eef4aeb0bbfbe931204a1"
},
"stderr": {
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-stop-a20.stderr.txt",
"bytes": 0,
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
},
{
"name": "nested-copy-stop-a21",
"classification": "predicted-complete-je",
"argv": [
"/usr/bin/objdump",
"-D",
"-Mintel",
"--start-address=0x00779850",
"--stop-address=0x00779a21",
"/home/alex/sots-re/dumps/sots.exe"
],
"cwd": "/home/alex/sots-re",
"returncode": 0,
"stdout": {
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-stop-a21.stdout.txt",
"bytes": 8471,
"sha256": "b6d58767d00328c37139f439db480c9bb5ce6767dabf212f9e750a31fea0d3d7"
},
"stderr": {
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-stop-a21.stderr.txt",
"bytes": 0,
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
},
{
"name": "nested-copy-stop-a23",
"classification": "predicted-complete-mov",
"argv": [
"/usr/bin/objdump",
"-D",
"-Mintel",
"--start-address=0x00779850",
"--stop-address=0x00779a23",
"/home/alex/sots-re/dumps/sots.exe"
],
"cwd": "/home/alex/sots-re",
"returncode": 0,
"stdout": {
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-stop-a23.stdout.txt",
"bytes": 8518,
"sha256": "e8cc66eb74730fcf7853d66df8caa620ddb3fc8c75335f0573ac490037a7a88e"
},
"stderr": {
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-stop-a23.stderr.txt",
"bytes": 0,
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
},
{
"name": "nested-copy-stop-a28",
"classification": "complete-call-boundary-control",
"argv": [
"/usr/bin/objdump",
"-D",
"-Mintel",
"--start-address=0x00779850",
"--stop-address=0x00779a28",
"/home/alex/sots-re/dumps/sots.exe"
],
"cwd": "/home/alex/sots-re",
"returncode": 0,
"stdout": {
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-stop-a28.stdout.txt",
"bytes": 8566,
"sha256": "7b02af65ab916de02fc44b2004f8acedc127bf686874bd0c75d4a277c40d9560"
},
"stderr": {
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-stop-a28.stderr.txt",
"bytes": 0,
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
},
{
"name": "nested-copy-boundary-bytes",
"classification": "raw-byte-boundary-control",
"argv": [
"/usr/bin/objdump",
"-s",
"-j",
".text",
"--start-address=0x00779a1f",
"--stop-address=0x00779a28",
"/home/alex/sots-re/dumps/sots.exe"
],
"cwd": "/home/alex/sots-re",
"returncode": 0,
"stdout": {
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-boundary-bytes.stdout.txt",
"bytes": 151,
"sha256": "b2d9b57274be71fcdd853f04758bc65d701e7b4cc169d0d5ede24c8788ef82d5"
},
"stderr": {
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-boundary-bytes.stderr.txt",
"bytes": 0,
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
}
],
"checks": [
{
"name": "explicit-session",
"status": "pass"
},
{
"name": "session-output-match",
"status": "pass"
},
{
"name": "negative-preflight-all-rejected",
"status": "pass"
},
{
"name": "binary-hash",
"status": "pass"
},
{
"name": "tool-hash",
"status": "pass"
},
{
"name": "source-stable",
"status": "pass"
},
{
"name": "all-return-zero",
"status": "pass"
},
{
"name": "all-stdout-nonempty",
"status": "pass"
},
{
"name": "all-stderr-empty",
"status": "pass"
}
],
"failed": []
}

View file

@ -0,0 +1,94 @@
/home/alex/sots-re/dumps/sots.exe: file format pei-i386
Disassembly of section .text:
00779850 <.text+0x378850>:
779850: 55 push ebp
779851: 8b ec mov ebp,esp
779853: 6a ff push 0xffffffff
779855: 68 10 7b 98 00 push 0x987b10
77985a: 64 a1 00 00 00 00 mov eax,fs:0x0
779860: 50 push eax
779861: 83 ec 08 sub esp,0x8
779864: 53 push ebx
779865: 56 push esi
779866: 57 push edi
779867: a1 78 8b af 00 mov eax,ds:0xaf8b78
77986c: 33 c5 xor eax,ebp
77986e: 50 push eax
77986f: 8d 45 f4 lea eax,[ebp-0xc]
779872: 64 a3 00 00 00 00 mov fs:0x0,eax
779878: 89 65 f0 mov DWORD PTR [ebp-0x10],esp
77987b: 8b f1 mov esi,ecx
77987d: 89 75 ec mov DWORD PTR [ebp-0x14],esi
779880: 8b 5d 08 mov ebx,DWORD PTR [ebp+0x8]
779883: 33 c0 xor eax,eax
779885: 89 06 mov DWORD PTR [esi],eax
779887: 89 46 04 mov DWORD PTR [esi+0x4],eax
77988a: 89 46 08 mov DWORD PTR [esi+0x8],eax
77988d: 8b 4b 04 mov ecx,DWORD PTR [ebx+0x4]
779890: 2b 0b sub ecx,DWORD PTR [ebx]
779892: b8 09 cb 3d 8d mov eax,0x8d3dcb09
779897: f7 e9 imul ecx
779899: 03 d1 add edx,ecx
77989b: c1 fa 06 sar edx,0x6
77989e: 8b fa mov edi,edx
7798a0: b8 00 00 00 00 mov eax,0x0
7798a5: c1 ef 1f shr edi,0x1f
7798a8: 03 fa add edi,edx
7798aa: 89 06 mov DWORD PTR [esi],eax
7798ac: 89 46 04 mov DWORD PTR [esi+0x4],eax
7798af: 89 46 08 mov DWORD PTR [esi+0x8],eax
7798b2: 74 4b je 0x7798ff
7798b4: 81 ff 2c f7 34 02 cmp edi,0x234f72c
7798ba: 76 0b jbe 0x7798c7
7798bc: 68 90 1f 9e 00 push 0x9e1f90
7798c1: ff 15 50 d1 9d 00 call DWORD PTR ds:0x9dd150
7798c7: 8d 4e 0c lea ecx,[esi+0xc]
7798ca: 57 push edi
7798cb: e8 70 16 01 00 call 0x78af40
7798d0: 6b ff 74 imul edi,edi,0x74
7798d3: 8b 55 08 mov edx,DWORD PTR [ebp+0x8]
7798d6: 52 push edx
7798d7: 8d 56 0c lea edx,[esi+0xc]
7798da: 52 push edx
7798db: 03 f8 add edi,eax
7798dd: 89 06 mov DWORD PTR [esi],eax
7798df: 89 46 04 mov DWORD PTR [esi+0x4],eax
7798e2: 89 7e 08 mov DWORD PTR [esi+0x8],edi
7798e5: 8b 4b 04 mov ecx,DWORD PTR [ebx+0x4]
7798e8: 8b 1b mov ebx,DWORD PTR [ebx]
7798ea: 50 push eax
7798eb: 51 push ecx
7798ec: 53 push ebx
7798ed: c7 45 fc 00 00 00 00 mov DWORD PTR [ebp-0x4],0x0
7798f4: e8 a7 8c ff ff call 0x7725a0
7798f9: 83 c4 14 add esp,0x14
7798fc: 89 46 04 mov DWORD PTR [esi+0x4],eax
7798ff: 8b c6 mov eax,esi
779901: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc]
779904: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx
77990b: 59 pop ecx
77990c: 5f pop edi
77990d: 5e pop esi
77990e: 5b pop ebx
77990f: 8b e5 mov esp,ebp
779911: 5d pop ebp
779912: c2 04 00 ret 0x4
779915: 8b 4d ec mov ecx,DWORD PTR [ebp-0x14]
779918: e8 63 fc ea ff call 0x629580
77991d: 6a 00 push 0x0
77991f: 6a 00 push 0x0
779921: e8 96 b6 1a 00 call 0x924fbc
779926: cc int3
779927: cc int3
779928: cc int3
779929: cc int3
77992a: cc int3
77992b: cc int3
77992c: cc int3
77992d: cc int3
77992e: cc int3
77992f: cc int3

View file

@ -0,0 +1,5 @@
/home/alex/sots-re/dumps/sots.exe: file format pei-i386
Contents of section .text:
779a1f 74 108bcfe8 286affff t....(j..

View file

@ -0,0 +1,175 @@
/home/alex/sots-re/dumps/sots.exe: file format pei-i386
Disassembly of section .text:
00779850 <.text+0x378850>:
779850: 55 push ebp
779851: 8b ec mov ebp,esp
779853: 6a ff push 0xffffffff
779855: 68 10 7b 98 00 push 0x987b10
77985a: 64 a1 00 00 00 00 mov eax,fs:0x0
779860: 50 push eax
779861: 83 ec 08 sub esp,0x8
779864: 53 push ebx
779865: 56 push esi
779866: 57 push edi
779867: a1 78 8b af 00 mov eax,ds:0xaf8b78
77986c: 33 c5 xor eax,ebp
77986e: 50 push eax
77986f: 8d 45 f4 lea eax,[ebp-0xc]
779872: 64 a3 00 00 00 00 mov fs:0x0,eax
779878: 89 65 f0 mov DWORD PTR [ebp-0x10],esp
77987b: 8b f1 mov esi,ecx
77987d: 89 75 ec mov DWORD PTR [ebp-0x14],esi
779880: 8b 5d 08 mov ebx,DWORD PTR [ebp+0x8]
779883: 33 c0 xor eax,eax
779885: 89 06 mov DWORD PTR [esi],eax
779887: 89 46 04 mov DWORD PTR [esi+0x4],eax
77988a: 89 46 08 mov DWORD PTR [esi+0x8],eax
77988d: 8b 4b 04 mov ecx,DWORD PTR [ebx+0x4]
779890: 2b 0b sub ecx,DWORD PTR [ebx]
779892: b8 09 cb 3d 8d mov eax,0x8d3dcb09
779897: f7 e9 imul ecx
779899: 03 d1 add edx,ecx
77989b: c1 fa 06 sar edx,0x6
77989e: 8b fa mov edi,edx
7798a0: b8 00 00 00 00 mov eax,0x0
7798a5: c1 ef 1f shr edi,0x1f
7798a8: 03 fa add edi,edx
7798aa: 89 06 mov DWORD PTR [esi],eax
7798ac: 89 46 04 mov DWORD PTR [esi+0x4],eax
7798af: 89 46 08 mov DWORD PTR [esi+0x8],eax
7798b2: 74 4b je 0x7798ff
7798b4: 81 ff 2c f7 34 02 cmp edi,0x234f72c
7798ba: 76 0b jbe 0x7798c7
7798bc: 68 90 1f 9e 00 push 0x9e1f90
7798c1: ff 15 50 d1 9d 00 call DWORD PTR ds:0x9dd150
7798c7: 8d 4e 0c lea ecx,[esi+0xc]
7798ca: 57 push edi
7798cb: e8 70 16 01 00 call 0x78af40
7798d0: 6b ff 74 imul edi,edi,0x74
7798d3: 8b 55 08 mov edx,DWORD PTR [ebp+0x8]
7798d6: 52 push edx
7798d7: 8d 56 0c lea edx,[esi+0xc]
7798da: 52 push edx
7798db: 03 f8 add edi,eax
7798dd: 89 06 mov DWORD PTR [esi],eax
7798df: 89 46 04 mov DWORD PTR [esi+0x4],eax
7798e2: 89 7e 08 mov DWORD PTR [esi+0x8],edi
7798e5: 8b 4b 04 mov ecx,DWORD PTR [ebx+0x4]
7798e8: 8b 1b mov ebx,DWORD PTR [ebx]
7798ea: 50 push eax
7798eb: 51 push ecx
7798ec: 53 push ebx
7798ed: c7 45 fc 00 00 00 00 mov DWORD PTR [ebp-0x4],0x0
7798f4: e8 a7 8c ff ff call 0x7725a0
7798f9: 83 c4 14 add esp,0x14
7798fc: 89 46 04 mov DWORD PTR [esi+0x4],eax
7798ff: 8b c6 mov eax,esi
779901: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc]
779904: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx
77990b: 59 pop ecx
77990c: 5f pop edi
77990d: 5e pop esi
77990e: 5b pop ebx
77990f: 8b e5 mov esp,ebp
779911: 5d pop ebp
779912: c2 04 00 ret 0x4
779915: 8b 4d ec mov ecx,DWORD PTR [ebp-0x14]
779918: e8 63 fc ea ff call 0x629580
77991d: 6a 00 push 0x0
77991f: 6a 00 push 0x0
779921: e8 96 b6 1a 00 call 0x924fbc
779926: cc int3
779927: cc int3
779928: cc int3
779929: cc int3
77992a: cc int3
77992b: cc int3
77992c: cc int3
77992d: cc int3
77992e: cc int3
77992f: cc int3
779930: 55 push ebp
779931: 8b ec mov ebp,esp
779933: 6a ff push 0xffffffff
779935: 68 38 06 97 00 push 0x970638
77993a: 64 a1 00 00 00 00 mov eax,fs:0x0
779940: 50 push eax
779941: 83 ec 20 sub esp,0x20
779944: a1 78 8b af 00 mov eax,ds:0xaf8b78
779949: 33 c5 xor eax,ebp
77994b: 89 45 f0 mov DWORD PTR [ebp-0x10],eax
77994e: 56 push esi
77994f: 50 push eax
779950: 8d 45 f4 lea eax,[ebp-0xc]
779953: 64 a3 00 00 00 00 mov fs:0x0,eax
779959: 8b f1 mov esi,ecx
77995b: 8b 86 8c 00 00 00 mov eax,DWORD PTR [esi+0x8c]
779961: 85 c0 test eax,eax
779963: 75 0c jne 0x779971
779965: 68 34 24 a2 00 push 0xa22434
77996a: e8 e1 05 14 00 call 0x8b9f50
77996f: eb 7e jmp 0x7799ef
779971: 50 push eax
779972: e8 09 cc c9 ff call 0x416580
779977: 83 c4 04 add esp,0x4
77997a: 85 c0 test eax,eax
77997c: 74 0c je 0x77998a
77997e: 68 f8 23 a2 00 push 0xa223f8
779983: e8 58 08 14 00 call 0x8ba1e0
779988: eb 65 jmp 0x7799ef
77998a: e8 d1 58 dc ff call 0x53f260
77998f: c7 45 e8 0f 00 00 00 mov DWORD PTR [ebp-0x18],0xf
779996: c7 45 e4 00 00 00 00 mov DWORD PTR [ebp-0x1c],0x0
77999d: c6 45 d4 00 mov BYTE PTR [ebp-0x2c],0x0
7799a1: 8d 4d d4 lea ecx,[ebp-0x2c]
7799a4: 51 push ecx
7799a5: 50 push eax
7799a6: c7 45 fc 00 00 00 00 mov DWORD PTR [ebp-0x4],0x0
7799ad: e8 fe 52 dc ff call 0x53ecb0
7799b2: 8b 45 d4 mov eax,DWORD PTR [ebp-0x2c]
7799b5: 83 c4 08 add esp,0x8
7799b8: 83 7d e8 10 cmp DWORD PTR [ebp-0x18],0x10
7799bc: 73 03 jae 0x7799c1
7799be: 8d 45 d4 lea eax,[ebp-0x2c]
7799c1: 8b 96 8c 00 00 00 mov edx,DWORD PTR [esi+0x8c]
7799c7: 6a 00 push 0x0
7799c9: 56 push esi
7799ca: 68 a0 8d 77 00 push 0x778da0
7799cf: 68 e0 ea 76 00 push 0x76eae0
7799d4: 6a 00 push 0x0
7799d6: 50 push eax
7799d7: 52 push edx
7799d8: e8 f3 d7 c9 ff call 0x4171d0
7799dd: 83 c4 1c add esp,0x1c
7799e0: 83 7d e8 10 cmp DWORD PTR [ebp-0x18],0x10
7799e4: 72 0c jb 0x7799f2
7799e6: 8b 45 d4 mov eax,DWORD PTR [ebp-0x2c]
7799e9: 50 push eax
7799ea: e8 bb b5 1a 00 call 0x924faa
7799ef: 83 c4 04 add esp,0x4
7799f2: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc]
7799f5: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx
7799fc: 59 pop ecx
7799fd: 5e pop esi
7799fe: 8b 4d f0 mov ecx,DWORD PTR [ebp-0x10]
779a01: 33 cd xor ecx,ebp
779a03: e8 7a b3 1a 00 call 0x924d82
779a08: 8b e5 mov esp,ebp
779a0a: 5d pop ebp
779a0b: c3 ret
779a0c: cc int3
779a0d: cc int3
779a0e: cc int3
779a0f: cc int3
779a10: 53 push ebx
779a11: 56 push esi
779a12: 8b f1 mov esi,ecx
779a14: 57 push edi
779a15: 8b be 24 01 00 00 mov edi,DWORD PTR [esi+0x124]
779a1b: 33 db xor ebx,ebx
779a1d: 3b fb cmp edi,ebx
779a1f: 74 je 0x779a31

View file

@ -0,0 +1,175 @@
/home/alex/sots-re/dumps/sots.exe: file format pei-i386
Disassembly of section .text:
00779850 <.text+0x378850>:
779850: 55 push ebp
779851: 8b ec mov ebp,esp
779853: 6a ff push 0xffffffff
779855: 68 10 7b 98 00 push 0x987b10
77985a: 64 a1 00 00 00 00 mov eax,fs:0x0
779860: 50 push eax
779861: 83 ec 08 sub esp,0x8
779864: 53 push ebx
779865: 56 push esi
779866: 57 push edi
779867: a1 78 8b af 00 mov eax,ds:0xaf8b78
77986c: 33 c5 xor eax,ebp
77986e: 50 push eax
77986f: 8d 45 f4 lea eax,[ebp-0xc]
779872: 64 a3 00 00 00 00 mov fs:0x0,eax
779878: 89 65 f0 mov DWORD PTR [ebp-0x10],esp
77987b: 8b f1 mov esi,ecx
77987d: 89 75 ec mov DWORD PTR [ebp-0x14],esi
779880: 8b 5d 08 mov ebx,DWORD PTR [ebp+0x8]
779883: 33 c0 xor eax,eax
779885: 89 06 mov DWORD PTR [esi],eax
779887: 89 46 04 mov DWORD PTR [esi+0x4],eax
77988a: 89 46 08 mov DWORD PTR [esi+0x8],eax
77988d: 8b 4b 04 mov ecx,DWORD PTR [ebx+0x4]
779890: 2b 0b sub ecx,DWORD PTR [ebx]
779892: b8 09 cb 3d 8d mov eax,0x8d3dcb09
779897: f7 e9 imul ecx
779899: 03 d1 add edx,ecx
77989b: c1 fa 06 sar edx,0x6
77989e: 8b fa mov edi,edx
7798a0: b8 00 00 00 00 mov eax,0x0
7798a5: c1 ef 1f shr edi,0x1f
7798a8: 03 fa add edi,edx
7798aa: 89 06 mov DWORD PTR [esi],eax
7798ac: 89 46 04 mov DWORD PTR [esi+0x4],eax
7798af: 89 46 08 mov DWORD PTR [esi+0x8],eax
7798b2: 74 4b je 0x7798ff
7798b4: 81 ff 2c f7 34 02 cmp edi,0x234f72c
7798ba: 76 0b jbe 0x7798c7
7798bc: 68 90 1f 9e 00 push 0x9e1f90
7798c1: ff 15 50 d1 9d 00 call DWORD PTR ds:0x9dd150
7798c7: 8d 4e 0c lea ecx,[esi+0xc]
7798ca: 57 push edi
7798cb: e8 70 16 01 00 call 0x78af40
7798d0: 6b ff 74 imul edi,edi,0x74
7798d3: 8b 55 08 mov edx,DWORD PTR [ebp+0x8]
7798d6: 52 push edx
7798d7: 8d 56 0c lea edx,[esi+0xc]
7798da: 52 push edx
7798db: 03 f8 add edi,eax
7798dd: 89 06 mov DWORD PTR [esi],eax
7798df: 89 46 04 mov DWORD PTR [esi+0x4],eax
7798e2: 89 7e 08 mov DWORD PTR [esi+0x8],edi
7798e5: 8b 4b 04 mov ecx,DWORD PTR [ebx+0x4]
7798e8: 8b 1b mov ebx,DWORD PTR [ebx]
7798ea: 50 push eax
7798eb: 51 push ecx
7798ec: 53 push ebx
7798ed: c7 45 fc 00 00 00 00 mov DWORD PTR [ebp-0x4],0x0
7798f4: e8 a7 8c ff ff call 0x7725a0
7798f9: 83 c4 14 add esp,0x14
7798fc: 89 46 04 mov DWORD PTR [esi+0x4],eax
7798ff: 8b c6 mov eax,esi
779901: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc]
779904: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx
77990b: 59 pop ecx
77990c: 5f pop edi
77990d: 5e pop esi
77990e: 5b pop ebx
77990f: 8b e5 mov esp,ebp
779911: 5d pop ebp
779912: c2 04 00 ret 0x4
779915: 8b 4d ec mov ecx,DWORD PTR [ebp-0x14]
779918: e8 63 fc ea ff call 0x629580
77991d: 6a 00 push 0x0
77991f: 6a 00 push 0x0
779921: e8 96 b6 1a 00 call 0x924fbc
779926: cc int3
779927: cc int3
779928: cc int3
779929: cc int3
77992a: cc int3
77992b: cc int3
77992c: cc int3
77992d: cc int3
77992e: cc int3
77992f: cc int3
779930: 55 push ebp
779931: 8b ec mov ebp,esp
779933: 6a ff push 0xffffffff
779935: 68 38 06 97 00 push 0x970638
77993a: 64 a1 00 00 00 00 mov eax,fs:0x0
779940: 50 push eax
779941: 83 ec 20 sub esp,0x20
779944: a1 78 8b af 00 mov eax,ds:0xaf8b78
779949: 33 c5 xor eax,ebp
77994b: 89 45 f0 mov DWORD PTR [ebp-0x10],eax
77994e: 56 push esi
77994f: 50 push eax
779950: 8d 45 f4 lea eax,[ebp-0xc]
779953: 64 a3 00 00 00 00 mov fs:0x0,eax
779959: 8b f1 mov esi,ecx
77995b: 8b 86 8c 00 00 00 mov eax,DWORD PTR [esi+0x8c]
779961: 85 c0 test eax,eax
779963: 75 0c jne 0x779971
779965: 68 34 24 a2 00 push 0xa22434
77996a: e8 e1 05 14 00 call 0x8b9f50
77996f: eb 7e jmp 0x7799ef
779971: 50 push eax
779972: e8 09 cc c9 ff call 0x416580
779977: 83 c4 04 add esp,0x4
77997a: 85 c0 test eax,eax
77997c: 74 0c je 0x77998a
77997e: 68 f8 23 a2 00 push 0xa223f8
779983: e8 58 08 14 00 call 0x8ba1e0
779988: eb 65 jmp 0x7799ef
77998a: e8 d1 58 dc ff call 0x53f260
77998f: c7 45 e8 0f 00 00 00 mov DWORD PTR [ebp-0x18],0xf
779996: c7 45 e4 00 00 00 00 mov DWORD PTR [ebp-0x1c],0x0
77999d: c6 45 d4 00 mov BYTE PTR [ebp-0x2c],0x0
7799a1: 8d 4d d4 lea ecx,[ebp-0x2c]
7799a4: 51 push ecx
7799a5: 50 push eax
7799a6: c7 45 fc 00 00 00 00 mov DWORD PTR [ebp-0x4],0x0
7799ad: e8 fe 52 dc ff call 0x53ecb0
7799b2: 8b 45 d4 mov eax,DWORD PTR [ebp-0x2c]
7799b5: 83 c4 08 add esp,0x8
7799b8: 83 7d e8 10 cmp DWORD PTR [ebp-0x18],0x10
7799bc: 73 03 jae 0x7799c1
7799be: 8d 45 d4 lea eax,[ebp-0x2c]
7799c1: 8b 96 8c 00 00 00 mov edx,DWORD PTR [esi+0x8c]
7799c7: 6a 00 push 0x0
7799c9: 56 push esi
7799ca: 68 a0 8d 77 00 push 0x778da0
7799cf: 68 e0 ea 76 00 push 0x76eae0
7799d4: 6a 00 push 0x0
7799d6: 50 push eax
7799d7: 52 push edx
7799d8: e8 f3 d7 c9 ff call 0x4171d0
7799dd: 83 c4 1c add esp,0x1c
7799e0: 83 7d e8 10 cmp DWORD PTR [ebp-0x18],0x10
7799e4: 72 0c jb 0x7799f2
7799e6: 8b 45 d4 mov eax,DWORD PTR [ebp-0x2c]
7799e9: 50 push eax
7799ea: e8 bb b5 1a 00 call 0x924faa
7799ef: 83 c4 04 add esp,0x4
7799f2: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc]
7799f5: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx
7799fc: 59 pop ecx
7799fd: 5e pop esi
7799fe: 8b 4d f0 mov ecx,DWORD PTR [ebp-0x10]
779a01: 33 cd xor ecx,ebp
779a03: e8 7a b3 1a 00 call 0x924d82
779a08: 8b e5 mov esp,ebp
779a0a: 5d pop ebp
779a0b: c3 ret
779a0c: cc int3
779a0d: cc int3
779a0e: cc int3
779a0f: cc int3
779a10: 53 push ebx
779a11: 56 push esi
779a12: 8b f1 mov esi,ecx
779a14: 57 push edi
779a15: 8b be 24 01 00 00 mov edi,DWORD PTR [esi+0x124]
779a1b: 33 db xor ebx,ebx
779a1d: 3b fb cmp edi,ebx
779a1f: 74 10 je 0x779a31

View file

@ -0,0 +1,176 @@
/home/alex/sots-re/dumps/sots.exe: file format pei-i386
Disassembly of section .text:
00779850 <.text+0x378850>:
779850: 55 push ebp
779851: 8b ec mov ebp,esp
779853: 6a ff push 0xffffffff
779855: 68 10 7b 98 00 push 0x987b10
77985a: 64 a1 00 00 00 00 mov eax,fs:0x0
779860: 50 push eax
779861: 83 ec 08 sub esp,0x8
779864: 53 push ebx
779865: 56 push esi
779866: 57 push edi
779867: a1 78 8b af 00 mov eax,ds:0xaf8b78
77986c: 33 c5 xor eax,ebp
77986e: 50 push eax
77986f: 8d 45 f4 lea eax,[ebp-0xc]
779872: 64 a3 00 00 00 00 mov fs:0x0,eax
779878: 89 65 f0 mov DWORD PTR [ebp-0x10],esp
77987b: 8b f1 mov esi,ecx
77987d: 89 75 ec mov DWORD PTR [ebp-0x14],esi
779880: 8b 5d 08 mov ebx,DWORD PTR [ebp+0x8]
779883: 33 c0 xor eax,eax
779885: 89 06 mov DWORD PTR [esi],eax
779887: 89 46 04 mov DWORD PTR [esi+0x4],eax
77988a: 89 46 08 mov DWORD PTR [esi+0x8],eax
77988d: 8b 4b 04 mov ecx,DWORD PTR [ebx+0x4]
779890: 2b 0b sub ecx,DWORD PTR [ebx]
779892: b8 09 cb 3d 8d mov eax,0x8d3dcb09
779897: f7 e9 imul ecx
779899: 03 d1 add edx,ecx
77989b: c1 fa 06 sar edx,0x6
77989e: 8b fa mov edi,edx
7798a0: b8 00 00 00 00 mov eax,0x0
7798a5: c1 ef 1f shr edi,0x1f
7798a8: 03 fa add edi,edx
7798aa: 89 06 mov DWORD PTR [esi],eax
7798ac: 89 46 04 mov DWORD PTR [esi+0x4],eax
7798af: 89 46 08 mov DWORD PTR [esi+0x8],eax
7798b2: 74 4b je 0x7798ff
7798b4: 81 ff 2c f7 34 02 cmp edi,0x234f72c
7798ba: 76 0b jbe 0x7798c7
7798bc: 68 90 1f 9e 00 push 0x9e1f90
7798c1: ff 15 50 d1 9d 00 call DWORD PTR ds:0x9dd150
7798c7: 8d 4e 0c lea ecx,[esi+0xc]
7798ca: 57 push edi
7798cb: e8 70 16 01 00 call 0x78af40
7798d0: 6b ff 74 imul edi,edi,0x74
7798d3: 8b 55 08 mov edx,DWORD PTR [ebp+0x8]
7798d6: 52 push edx
7798d7: 8d 56 0c lea edx,[esi+0xc]
7798da: 52 push edx
7798db: 03 f8 add edi,eax
7798dd: 89 06 mov DWORD PTR [esi],eax
7798df: 89 46 04 mov DWORD PTR [esi+0x4],eax
7798e2: 89 7e 08 mov DWORD PTR [esi+0x8],edi
7798e5: 8b 4b 04 mov ecx,DWORD PTR [ebx+0x4]
7798e8: 8b 1b mov ebx,DWORD PTR [ebx]
7798ea: 50 push eax
7798eb: 51 push ecx
7798ec: 53 push ebx
7798ed: c7 45 fc 00 00 00 00 mov DWORD PTR [ebp-0x4],0x0
7798f4: e8 a7 8c ff ff call 0x7725a0
7798f9: 83 c4 14 add esp,0x14
7798fc: 89 46 04 mov DWORD PTR [esi+0x4],eax
7798ff: 8b c6 mov eax,esi
779901: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc]
779904: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx
77990b: 59 pop ecx
77990c: 5f pop edi
77990d: 5e pop esi
77990e: 5b pop ebx
77990f: 8b e5 mov esp,ebp
779911: 5d pop ebp
779912: c2 04 00 ret 0x4
779915: 8b 4d ec mov ecx,DWORD PTR [ebp-0x14]
779918: e8 63 fc ea ff call 0x629580
77991d: 6a 00 push 0x0
77991f: 6a 00 push 0x0
779921: e8 96 b6 1a 00 call 0x924fbc
779926: cc int3
779927: cc int3
779928: cc int3
779929: cc int3
77992a: cc int3
77992b: cc int3
77992c: cc int3
77992d: cc int3
77992e: cc int3
77992f: cc int3
779930: 55 push ebp
779931: 8b ec mov ebp,esp
779933: 6a ff push 0xffffffff
779935: 68 38 06 97 00 push 0x970638
77993a: 64 a1 00 00 00 00 mov eax,fs:0x0
779940: 50 push eax
779941: 83 ec 20 sub esp,0x20
779944: a1 78 8b af 00 mov eax,ds:0xaf8b78
779949: 33 c5 xor eax,ebp
77994b: 89 45 f0 mov DWORD PTR [ebp-0x10],eax
77994e: 56 push esi
77994f: 50 push eax
779950: 8d 45 f4 lea eax,[ebp-0xc]
779953: 64 a3 00 00 00 00 mov fs:0x0,eax
779959: 8b f1 mov esi,ecx
77995b: 8b 86 8c 00 00 00 mov eax,DWORD PTR [esi+0x8c]
779961: 85 c0 test eax,eax
779963: 75 0c jne 0x779971
779965: 68 34 24 a2 00 push 0xa22434
77996a: e8 e1 05 14 00 call 0x8b9f50
77996f: eb 7e jmp 0x7799ef
779971: 50 push eax
779972: e8 09 cc c9 ff call 0x416580
779977: 83 c4 04 add esp,0x4
77997a: 85 c0 test eax,eax
77997c: 74 0c je 0x77998a
77997e: 68 f8 23 a2 00 push 0xa223f8
779983: e8 58 08 14 00 call 0x8ba1e0
779988: eb 65 jmp 0x7799ef
77998a: e8 d1 58 dc ff call 0x53f260
77998f: c7 45 e8 0f 00 00 00 mov DWORD PTR [ebp-0x18],0xf
779996: c7 45 e4 00 00 00 00 mov DWORD PTR [ebp-0x1c],0x0
77999d: c6 45 d4 00 mov BYTE PTR [ebp-0x2c],0x0
7799a1: 8d 4d d4 lea ecx,[ebp-0x2c]
7799a4: 51 push ecx
7799a5: 50 push eax
7799a6: c7 45 fc 00 00 00 00 mov DWORD PTR [ebp-0x4],0x0
7799ad: e8 fe 52 dc ff call 0x53ecb0
7799b2: 8b 45 d4 mov eax,DWORD PTR [ebp-0x2c]
7799b5: 83 c4 08 add esp,0x8
7799b8: 83 7d e8 10 cmp DWORD PTR [ebp-0x18],0x10
7799bc: 73 03 jae 0x7799c1
7799be: 8d 45 d4 lea eax,[ebp-0x2c]
7799c1: 8b 96 8c 00 00 00 mov edx,DWORD PTR [esi+0x8c]
7799c7: 6a 00 push 0x0
7799c9: 56 push esi
7799ca: 68 a0 8d 77 00 push 0x778da0
7799cf: 68 e0 ea 76 00 push 0x76eae0
7799d4: 6a 00 push 0x0
7799d6: 50 push eax
7799d7: 52 push edx
7799d8: e8 f3 d7 c9 ff call 0x4171d0
7799dd: 83 c4 1c add esp,0x1c
7799e0: 83 7d e8 10 cmp DWORD PTR [ebp-0x18],0x10
7799e4: 72 0c jb 0x7799f2
7799e6: 8b 45 d4 mov eax,DWORD PTR [ebp-0x2c]
7799e9: 50 push eax
7799ea: e8 bb b5 1a 00 call 0x924faa
7799ef: 83 c4 04 add esp,0x4
7799f2: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc]
7799f5: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx
7799fc: 59 pop ecx
7799fd: 5e pop esi
7799fe: 8b 4d f0 mov ecx,DWORD PTR [ebp-0x10]
779a01: 33 cd xor ecx,ebp
779a03: e8 7a b3 1a 00 call 0x924d82
779a08: 8b e5 mov esp,ebp
779a0a: 5d pop ebp
779a0b: c3 ret
779a0c: cc int3
779a0d: cc int3
779a0e: cc int3
779a0f: cc int3
779a10: 53 push ebx
779a11: 56 push esi
779a12: 8b f1 mov esi,ecx
779a14: 57 push edi
779a15: 8b be 24 01 00 00 mov edi,DWORD PTR [esi+0x124]
779a1b: 33 db xor ebx,ebx
779a1d: 3b fb cmp edi,ebx
779a1f: 74 10 je 0x779a31
779a21: 8b cf mov ecx,edi

View file

@ -0,0 +1,177 @@
/home/alex/sots-re/dumps/sots.exe: file format pei-i386
Disassembly of section .text:
00779850 <.text+0x378850>:
779850: 55 push ebp
779851: 8b ec mov ebp,esp
779853: 6a ff push 0xffffffff
779855: 68 10 7b 98 00 push 0x987b10
77985a: 64 a1 00 00 00 00 mov eax,fs:0x0
779860: 50 push eax
779861: 83 ec 08 sub esp,0x8
779864: 53 push ebx
779865: 56 push esi
779866: 57 push edi
779867: a1 78 8b af 00 mov eax,ds:0xaf8b78
77986c: 33 c5 xor eax,ebp
77986e: 50 push eax
77986f: 8d 45 f4 lea eax,[ebp-0xc]
779872: 64 a3 00 00 00 00 mov fs:0x0,eax
779878: 89 65 f0 mov DWORD PTR [ebp-0x10],esp
77987b: 8b f1 mov esi,ecx
77987d: 89 75 ec mov DWORD PTR [ebp-0x14],esi
779880: 8b 5d 08 mov ebx,DWORD PTR [ebp+0x8]
779883: 33 c0 xor eax,eax
779885: 89 06 mov DWORD PTR [esi],eax
779887: 89 46 04 mov DWORD PTR [esi+0x4],eax
77988a: 89 46 08 mov DWORD PTR [esi+0x8],eax
77988d: 8b 4b 04 mov ecx,DWORD PTR [ebx+0x4]
779890: 2b 0b sub ecx,DWORD PTR [ebx]
779892: b8 09 cb 3d 8d mov eax,0x8d3dcb09
779897: f7 e9 imul ecx
779899: 03 d1 add edx,ecx
77989b: c1 fa 06 sar edx,0x6
77989e: 8b fa mov edi,edx
7798a0: b8 00 00 00 00 mov eax,0x0
7798a5: c1 ef 1f shr edi,0x1f
7798a8: 03 fa add edi,edx
7798aa: 89 06 mov DWORD PTR [esi],eax
7798ac: 89 46 04 mov DWORD PTR [esi+0x4],eax
7798af: 89 46 08 mov DWORD PTR [esi+0x8],eax
7798b2: 74 4b je 0x7798ff
7798b4: 81 ff 2c f7 34 02 cmp edi,0x234f72c
7798ba: 76 0b jbe 0x7798c7
7798bc: 68 90 1f 9e 00 push 0x9e1f90
7798c1: ff 15 50 d1 9d 00 call DWORD PTR ds:0x9dd150
7798c7: 8d 4e 0c lea ecx,[esi+0xc]
7798ca: 57 push edi
7798cb: e8 70 16 01 00 call 0x78af40
7798d0: 6b ff 74 imul edi,edi,0x74
7798d3: 8b 55 08 mov edx,DWORD PTR [ebp+0x8]
7798d6: 52 push edx
7798d7: 8d 56 0c lea edx,[esi+0xc]
7798da: 52 push edx
7798db: 03 f8 add edi,eax
7798dd: 89 06 mov DWORD PTR [esi],eax
7798df: 89 46 04 mov DWORD PTR [esi+0x4],eax
7798e2: 89 7e 08 mov DWORD PTR [esi+0x8],edi
7798e5: 8b 4b 04 mov ecx,DWORD PTR [ebx+0x4]
7798e8: 8b 1b mov ebx,DWORD PTR [ebx]
7798ea: 50 push eax
7798eb: 51 push ecx
7798ec: 53 push ebx
7798ed: c7 45 fc 00 00 00 00 mov DWORD PTR [ebp-0x4],0x0
7798f4: e8 a7 8c ff ff call 0x7725a0
7798f9: 83 c4 14 add esp,0x14
7798fc: 89 46 04 mov DWORD PTR [esi+0x4],eax
7798ff: 8b c6 mov eax,esi
779901: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc]
779904: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx
77990b: 59 pop ecx
77990c: 5f pop edi
77990d: 5e pop esi
77990e: 5b pop ebx
77990f: 8b e5 mov esp,ebp
779911: 5d pop ebp
779912: c2 04 00 ret 0x4
779915: 8b 4d ec mov ecx,DWORD PTR [ebp-0x14]
779918: e8 63 fc ea ff call 0x629580
77991d: 6a 00 push 0x0
77991f: 6a 00 push 0x0
779921: e8 96 b6 1a 00 call 0x924fbc
779926: cc int3
779927: cc int3
779928: cc int3
779929: cc int3
77992a: cc int3
77992b: cc int3
77992c: cc int3
77992d: cc int3
77992e: cc int3
77992f: cc int3
779930: 55 push ebp
779931: 8b ec mov ebp,esp
779933: 6a ff push 0xffffffff
779935: 68 38 06 97 00 push 0x970638
77993a: 64 a1 00 00 00 00 mov eax,fs:0x0
779940: 50 push eax
779941: 83 ec 20 sub esp,0x20
779944: a1 78 8b af 00 mov eax,ds:0xaf8b78
779949: 33 c5 xor eax,ebp
77994b: 89 45 f0 mov DWORD PTR [ebp-0x10],eax
77994e: 56 push esi
77994f: 50 push eax
779950: 8d 45 f4 lea eax,[ebp-0xc]
779953: 64 a3 00 00 00 00 mov fs:0x0,eax
779959: 8b f1 mov esi,ecx
77995b: 8b 86 8c 00 00 00 mov eax,DWORD PTR [esi+0x8c]
779961: 85 c0 test eax,eax
779963: 75 0c jne 0x779971
779965: 68 34 24 a2 00 push 0xa22434
77996a: e8 e1 05 14 00 call 0x8b9f50
77996f: eb 7e jmp 0x7799ef
779971: 50 push eax
779972: e8 09 cc c9 ff call 0x416580
779977: 83 c4 04 add esp,0x4
77997a: 85 c0 test eax,eax
77997c: 74 0c je 0x77998a
77997e: 68 f8 23 a2 00 push 0xa223f8
779983: e8 58 08 14 00 call 0x8ba1e0
779988: eb 65 jmp 0x7799ef
77998a: e8 d1 58 dc ff call 0x53f260
77998f: c7 45 e8 0f 00 00 00 mov DWORD PTR [ebp-0x18],0xf
779996: c7 45 e4 00 00 00 00 mov DWORD PTR [ebp-0x1c],0x0
77999d: c6 45 d4 00 mov BYTE PTR [ebp-0x2c],0x0
7799a1: 8d 4d d4 lea ecx,[ebp-0x2c]
7799a4: 51 push ecx
7799a5: 50 push eax
7799a6: c7 45 fc 00 00 00 00 mov DWORD PTR [ebp-0x4],0x0
7799ad: e8 fe 52 dc ff call 0x53ecb0
7799b2: 8b 45 d4 mov eax,DWORD PTR [ebp-0x2c]
7799b5: 83 c4 08 add esp,0x8
7799b8: 83 7d e8 10 cmp DWORD PTR [ebp-0x18],0x10
7799bc: 73 03 jae 0x7799c1
7799be: 8d 45 d4 lea eax,[ebp-0x2c]
7799c1: 8b 96 8c 00 00 00 mov edx,DWORD PTR [esi+0x8c]
7799c7: 6a 00 push 0x0
7799c9: 56 push esi
7799ca: 68 a0 8d 77 00 push 0x778da0
7799cf: 68 e0 ea 76 00 push 0x76eae0
7799d4: 6a 00 push 0x0
7799d6: 50 push eax
7799d7: 52 push edx
7799d8: e8 f3 d7 c9 ff call 0x4171d0
7799dd: 83 c4 1c add esp,0x1c
7799e0: 83 7d e8 10 cmp DWORD PTR [ebp-0x18],0x10
7799e4: 72 0c jb 0x7799f2
7799e6: 8b 45 d4 mov eax,DWORD PTR [ebp-0x2c]
7799e9: 50 push eax
7799ea: e8 bb b5 1a 00 call 0x924faa
7799ef: 83 c4 04 add esp,0x4
7799f2: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc]
7799f5: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx
7799fc: 59 pop ecx
7799fd: 5e pop esi
7799fe: 8b 4d f0 mov ecx,DWORD PTR [ebp-0x10]
779a01: 33 cd xor ecx,ebp
779a03: e8 7a b3 1a 00 call 0x924d82
779a08: 8b e5 mov esp,ebp
779a0a: 5d pop ebp
779a0b: c3 ret
779a0c: cc int3
779a0d: cc int3
779a0e: cc int3
779a0f: cc int3
779a10: 53 push ebx
779a11: 56 push esi
779a12: 8b f1 mov esi,ecx
779a14: 57 push edi
779a15: 8b be 24 01 00 00 mov edi,DWORD PTR [esi+0x124]
779a1b: 33 db xor ebx,ebx
779a1d: 3b fb cmp edi,ebx
779a1f: 74 10 je 0x779a31
779a21: 8b cf mov ecx,edi
779a23: e8 28 6a ff ff call 0x770450

View file

@ -0,0 +1,39 @@
/home/alex/sots-re/dumps/sots.exe: file format pei-i386
Disassembly of section .text:
00629580 <.text+0x228580>:
629580: 57 push edi
629581: 8b f9 mov edi,ecx
629583: 83 3f 00 cmp DWORD PTR [edi],0x0
629586: 74 36 je 0x6295be
629588: 53 push ebx
629589: 56 push esi
62958a: ff 15 2c d1 9d 00 call DWORD PTR ds:0x9dd12c
629590: 8b 5f 04 mov ebx,DWORD PTR [edi+0x4]
629593: 8b 37 mov esi,DWORD PTR [edi]
629595: 3b f3 cmp esi,ebx
629597: 74 18 je 0x6295b1
629599: 8d a4 24 00 00 00 00 lea esp,[esp+0x0]
6295a0: 8b 06 mov eax,DWORD PTR [esi]
6295a2: 8b 10 mov edx,DWORD PTR [eax]
6295a4: 6a 00 push 0x0
6295a6: 8b ce mov ecx,esi
6295a8: ff d2 call edx
6295aa: 83 c6 74 add esi,0x74
6295ad: 3b f3 cmp esi,ebx
6295af: 75 ef jne 0x6295a0
6295b1: 8b 07 mov eax,DWORD PTR [edi]
6295b3: 50 push eax
6295b4: e8 f1 b9 2f 00 call 0x924faa
6295b9: 83 c4 04 add esp,0x4
6295bc: 5e pop esi
6295bd: 5b pop ebx
6295be: 33 c0 xor eax,eax
6295c0: 89 07 mov DWORD PTR [edi],eax
6295c2: 89 47 04 mov DWORD PTR [edi+0x4],eax
6295c5: 89 47 08 mov DWORD PTR [edi+0x8],eax
6295c8: 5f pop edi
6295c9: c3 ret

View file

@ -0,0 +1,43 @@
/home/alex/sots-re/dumps/sots.exe: file format pei-i386
Disassembly of section .text:
00629580 <.text+0x228580>:
629580: 57 push edi
629581: 8b f9 mov edi,ecx
629583: 83 3f 00 cmp DWORD PTR [edi],0x0
629586: 74 36 je 0x6295be
629588: 53 push ebx
629589: 56 push esi
62958a: ff 15 2c d1 9d 00 call DWORD PTR ds:0x9dd12c
629590: 8b 5f 04 mov ebx,DWORD PTR [edi+0x4]
629593: 8b 37 mov esi,DWORD PTR [edi]
629595: 3b f3 cmp esi,ebx
629597: 74 18 je 0x6295b1
629599: 8d a4 24 00 00 00 00 lea esp,[esp+0x0]
6295a0: 8b 06 mov eax,DWORD PTR [esi]
6295a2: 8b 10 mov edx,DWORD PTR [eax]
6295a4: 6a 00 push 0x0
6295a6: 8b ce mov ecx,esi
6295a8: ff d2 call edx
6295aa: 83 c6 74 add esi,0x74
6295ad: 3b f3 cmp esi,ebx
6295af: 75 ef jne 0x6295a0
6295b1: 8b 07 mov eax,DWORD PTR [edi]
6295b3: 50 push eax
6295b4: e8 f1 b9 2f 00 call 0x924faa
6295b9: 83 c4 04 add esp,0x4
6295bc: 5e pop esi
6295bd: 5b pop ebx
6295be: 33 c0 xor eax,eax
6295c0: 89 07 mov DWORD PTR [edi],eax
6295c2: 89 47 04 mov DWORD PTR [edi+0x4],eax
6295c5: 89 47 08 mov DWORD PTR [edi+0x8],eax
6295c8: 5f pop edi
6295c9: c3 ret
6295ca: cc int3
6295cb: cc int3
6295cc: cc int3
6295cd: cc int3

View file

@ -0,0 +1,80 @@
# Fresh TurnEvents boundary capture
Session `run-9daf5c3b75547271d5c3b4ed`; analyst static measurement only. This package implements
decisions `d-fd5aff1eaf78a8c15d96723c` and `d-0bb927e63b915c87a58d4257`. It does not execute the
game, allocations, constructors, destructors, exception paths, event posting, or RNG.
## Provenance and positive execution
`capture.py` requires the actual session and matching output directory and fails if the directory
contains anything except the recipe. Before capture it positively rejected missing and stale session
IDs, a stale output path, and a simulated reused location. The recipe is intentionally not reusable
unchanged by a later campaign session.
The manifest records 12 subprocess executions. Every command returned zero, emitted nonempty
stdout, and emitted empty stderr. Before and after source bindings are identical: engine
`ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd`, RE
`6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8`. Fresh input identities are:
* owner-supplied `dumps/sots.exe`: 7,898,624 bytes, SHA-256
`970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841`;
* `/usr/bin/objdump`: 373,888 bytes, GNU Binutils 2.38, SHA-256
`1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd`.
## Measured observations
1. The known-bad stop `0x00779a20` returns zero but displays only byte `74` for the instruction at
`0x00779a1f`. It is an explicit negative control, not a passing stream.
2. Stop `0x00779a21` displays the complete `74 10` conditional jump; stop `0x00779a23` additionally
displays complete `8b cf`; stop `0x00779a28` additionally displays complete
`e8 28 6a ff ff`. Raw section bytes over `0x00779a1f..0x00779a28` are
`74 10 8b cf e8 28 6a ff ff`. The resolver's three boundary predictions therefore held.
3. The separately bounded `0x00779850..0x00779930` authority capture includes destination nested-
vector pointer initialization, empty/nonempty branching, allocation/range-copy calls, normal
`ret 4` at `0x00779912`, unwind cleanup call at `0x00779918`, deallocation call at
`0x00779921`, and padding through `0x0077992f`. It excludes the later routine at `0x00779a10`.
4. Get/create `0x00885380..0x0088544a`, outer append `0x00884cb0..0x00884d8f`, and nested
destruction `0x00629580..0x006295ca` end respectively in complete `ret 4`, `ret 4`, and `ret`
instructions. Their wider controls preserve those rows and add padding or a subsequent prologue.
## Bounded static interpretation
For valid input containers and normally returning callees, the instruction facts support this order:
* get/create scans all existing `0x18` TurnEvents elements and retains the last matching `EvTurn`;
this existing-match path returns without element construction;
* a miss initializes a temporary vptr and three empty nested-vector pointers, but not temporary
`EvTurn`; outer append copies source `+4`, then deep-copies the nested vector, then advances outer
`_Mylast` by `0x18`;
* nested copy first nulls all destination pointers. Empty source returns without allocation;
nonempty source enters allocation and `0x74`-stride PlayerEvent range-copy construction;
* get/create cleans the temporary nested vector before writing requested turn into the stored final
element and returning that element;
* nested destruction skips element/free work for null storage. Otherwise it invokes every
PlayerEvent virtual destructor, frees the nested block via `0x00924faa`, and then zeros all three
pointers.
The uninitialized transient scalar is not a random draw and should not be reproduced as intentional
undefined behavior. No event record, event ID, text, outer EventStorage next-ID, or RNG state is
written by the bounded helper itself. Static decoding does not demonstrate live allocator-family
safety, exception cleanup outcomes, or observable transient behavior.
## Original dependencies, missing runtime inputs, and verifier falsifiers
Original-assisted use depends on the binary's coherent MSVCR100 family: allocation thunk
`0x00924fb6`, deletion thunk `0x00924faa`, nested allocation chain
`0x00779850 -> 0x0078af40`, PlayerEvent range/copy chain
`0x007725a0 -> 0x007693f0`, and virtual PlayerEvent destruction. A standalone implementation must
replace the entire allocation/copy/destruction family; mixing raw headers with original-owned
storage is not independent replacement.
Missing live inputs are pre/post spare- and full-capacity outer vectors, empty and nonempty nested
vectors with owned short/long strings, distinct stack sentinels, forced allocation failure/throw,
and observers capable of detecting the transient source word. No such fixture was available or run.
An independent verifier should use its own real session and fail-if-exists directory, freshly hash
source/tool/input, reproduce all authority windows, and hold out at least one complete terminal
boundary. It should require the `0x00779a20` control to fail completeness despite exit zero, compare
raw bytes against decoded lengths, and check distinct existing-last-match, miss/spare, miss/full,
empty/nonempty nested, and unwind states. Archived event records remain a separate validation input;
this package does not prove their field semantics or promote either contract criterion.

View file

@ -0,0 +1,85 @@
/home/alex/sots-re/dumps/sots.exe: file format pei-i386
Disassembly of section .text:
00884cb0 <.text+0x483cb0>:
884cb0: 55 push ebp
884cb1: 8b ec mov ebp,esp
884cb3: 6a ff push 0xffffffff
884cb5: 68 72 0b 98 00 push 0x980b72
884cba: 64 a1 00 00 00 00 mov eax,fs:0x0
884cc0: 50 push eax
884cc1: 51 push ecx
884cc2: 56 push esi
884cc3: 57 push edi
884cc4: a1 78 8b af 00 mov eax,ds:0xaf8b78
884cc9: 33 c5 xor eax,ebp
884ccb: 50 push eax
884ccc: 8d 45 f4 lea eax,[ebp-0xc]
884ccf: 64 a3 00 00 00 00 mov fs:0x0,eax
884cd5: 8b f9 mov edi,ecx
884cd7: 8b 4f 04 mov ecx,DWORD PTR [edi+0x4]
884cda: 8b 75 08 mov esi,DWORD PTR [ebp+0x8]
884cdd: 3b f1 cmp esi,ecx
884cdf: 73 59 jae 0x884d3a
884ce1: 8b 07 mov eax,DWORD PTR [edi]
884ce3: 3b c6 cmp eax,esi
884ce5: 77 53 ja 0x884d3a
884ce7: 2b f0 sub esi,eax
884ce9: b8 ab aa aa 2a mov eax,0x2aaaaaab
884cee: f7 ee imul esi
884cf0: c1 fa 02 sar edx,0x2
884cf3: 8b f2 mov esi,edx
884cf5: c1 ee 1f shr esi,0x1f
884cf8: 03 f2 add esi,edx
884cfa: 3b 4f 08 cmp ecx,DWORD PTR [edi+0x8]
884cfd: 75 09 jne 0x884d08
884cff: 6a 01 push 0x1
884d01: 8b cf mov ecx,edi
884d03: e8 98 f4 ff ff call 0x8841a0
884d08: 8b 0f mov ecx,DWORD PTR [edi]
884d0a: 8d 04 76 lea eax,[esi+esi*2]
884d0d: 8d 0c c1 lea ecx,[ecx+eax*8]
884d10: 8b 47 04 mov eax,DWORD PTR [edi+0x4]
884d13: 89 45 08 mov DWORD PTR [ebp+0x8],eax
884d16: 89 45 f0 mov DWORD PTR [ebp-0x10],eax
884d19: c7 45 fc 00 00 00 00 mov DWORD PTR [ebp-0x4],0x0
884d20: 85 c0 test eax,eax
884d22: 74 54 je 0x884d78
884d24: c7 00 7c f0 a0 00 mov DWORD PTR [eax],0xa0f07c
884d2a: 8b 51 04 mov edx,DWORD PTR [ecx+0x4]
884d2d: 83 c1 08 add ecx,0x8
884d30: c6 45 fc 01 mov BYTE PTR [ebp-0x4],0x1
884d34: 89 50 04 mov DWORD PTR [eax+0x4],edx
884d37: 51 push ecx
884d38: eb 36 jmp 0x884d70
884d3a: 3b 4f 08 cmp ecx,DWORD PTR [edi+0x8]
884d3d: 75 09 jne 0x884d48
884d3f: 6a 01 push 0x1
884d41: 8b cf mov ecx,edi
884d43: e8 58 f4 ff ff call 0x8841a0
884d48: 8b 47 04 mov eax,DWORD PTR [edi+0x4]
884d4b: 89 45 08 mov DWORD PTR [ebp+0x8],eax
884d4e: 89 45 f0 mov DWORD PTR [ebp-0x10],eax
884d51: c7 45 fc 02 00 00 00 mov DWORD PTR [ebp-0x4],0x2
884d58: 85 c0 test eax,eax
884d5a: 74 1c je 0x884d78
884d5c: c7 00 7c f0 a0 00 mov DWORD PTR [eax],0xa0f07c
884d62: 8b 4e 04 mov ecx,DWORD PTR [esi+0x4]
884d65: 83 c6 08 add esi,0x8
884d68: c6 45 fc 03 mov BYTE PTR [ebp-0x4],0x3
884d6c: 89 48 04 mov DWORD PTR [eax+0x4],ecx
884d6f: 56 push esi
884d70: 8d 48 08 lea ecx,[eax+0x8]
884d73: e8 d8 4a ef ff call 0x779850
884d78: 83 47 04 18 add DWORD PTR [edi+0x4],0x18
884d7c: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc]
884d7f: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx
884d86: 59 pop ecx
884d87: 5f pop edi
884d88: 5e pop esi
884d89: 8b e5 mov esp,ebp
884d8b: 5d pop ebp
884d8c: c2 04 00 ret 0x4

View file

@ -0,0 +1,88 @@
/home/alex/sots-re/dumps/sots.exe: file format pei-i386
Disassembly of section .text:
00884cb0 <.text+0x483cb0>:
884cb0: 55 push ebp
884cb1: 8b ec mov ebp,esp
884cb3: 6a ff push 0xffffffff
884cb5: 68 72 0b 98 00 push 0x980b72
884cba: 64 a1 00 00 00 00 mov eax,fs:0x0
884cc0: 50 push eax
884cc1: 51 push ecx
884cc2: 56 push esi
884cc3: 57 push edi
884cc4: a1 78 8b af 00 mov eax,ds:0xaf8b78
884cc9: 33 c5 xor eax,ebp
884ccb: 50 push eax
884ccc: 8d 45 f4 lea eax,[ebp-0xc]
884ccf: 64 a3 00 00 00 00 mov fs:0x0,eax
884cd5: 8b f9 mov edi,ecx
884cd7: 8b 4f 04 mov ecx,DWORD PTR [edi+0x4]
884cda: 8b 75 08 mov esi,DWORD PTR [ebp+0x8]
884cdd: 3b f1 cmp esi,ecx
884cdf: 73 59 jae 0x884d3a
884ce1: 8b 07 mov eax,DWORD PTR [edi]
884ce3: 3b c6 cmp eax,esi
884ce5: 77 53 ja 0x884d3a
884ce7: 2b f0 sub esi,eax
884ce9: b8 ab aa aa 2a mov eax,0x2aaaaaab
884cee: f7 ee imul esi
884cf0: c1 fa 02 sar edx,0x2
884cf3: 8b f2 mov esi,edx
884cf5: c1 ee 1f shr esi,0x1f
884cf8: 03 f2 add esi,edx
884cfa: 3b 4f 08 cmp ecx,DWORD PTR [edi+0x8]
884cfd: 75 09 jne 0x884d08
884cff: 6a 01 push 0x1
884d01: 8b cf mov ecx,edi
884d03: e8 98 f4 ff ff call 0x8841a0
884d08: 8b 0f mov ecx,DWORD PTR [edi]
884d0a: 8d 04 76 lea eax,[esi+esi*2]
884d0d: 8d 0c c1 lea ecx,[ecx+eax*8]
884d10: 8b 47 04 mov eax,DWORD PTR [edi+0x4]
884d13: 89 45 08 mov DWORD PTR [ebp+0x8],eax
884d16: 89 45 f0 mov DWORD PTR [ebp-0x10],eax
884d19: c7 45 fc 00 00 00 00 mov DWORD PTR [ebp-0x4],0x0
884d20: 85 c0 test eax,eax
884d22: 74 54 je 0x884d78
884d24: c7 00 7c f0 a0 00 mov DWORD PTR [eax],0xa0f07c
884d2a: 8b 51 04 mov edx,DWORD PTR [ecx+0x4]
884d2d: 83 c1 08 add ecx,0x8
884d30: c6 45 fc 01 mov BYTE PTR [ebp-0x4],0x1
884d34: 89 50 04 mov DWORD PTR [eax+0x4],edx
884d37: 51 push ecx
884d38: eb 36 jmp 0x884d70
884d3a: 3b 4f 08 cmp ecx,DWORD PTR [edi+0x8]
884d3d: 75 09 jne 0x884d48
884d3f: 6a 01 push 0x1
884d41: 8b cf mov ecx,edi
884d43: e8 58 f4 ff ff call 0x8841a0
884d48: 8b 47 04 mov eax,DWORD PTR [edi+0x4]
884d4b: 89 45 08 mov DWORD PTR [ebp+0x8],eax
884d4e: 89 45 f0 mov DWORD PTR [ebp-0x10],eax
884d51: c7 45 fc 02 00 00 00 mov DWORD PTR [ebp-0x4],0x2
884d58: 85 c0 test eax,eax
884d5a: 74 1c je 0x884d78
884d5c: c7 00 7c f0 a0 00 mov DWORD PTR [eax],0xa0f07c
884d62: 8b 4e 04 mov ecx,DWORD PTR [esi+0x4]
884d65: 83 c6 08 add esi,0x8
884d68: c6 45 fc 03 mov BYTE PTR [ebp-0x4],0x3
884d6c: 89 48 04 mov DWORD PTR [eax+0x4],ecx
884d6f: 56 push esi
884d70: 8d 48 08 lea ecx,[eax+0x8]
884d73: e8 d8 4a ef ff call 0x779850
884d78: 83 47 04 18 add DWORD PTR [edi+0x4],0x18
884d7c: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc]
884d7f: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx
884d86: 59 pop ecx
884d87: 5f pop edi
884d88: 5e pop esi
884d89: 8b e5 mov esp,ebp
884d8b: 5d pop ebp
884d8c: c2 04 00 ret 0x4
884d8f: cc int3
884d90: 55 push ebp
884d91: 8b ec mov ebp,esp

View file

@ -0,0 +1,83 @@
/home/alex/sots-re/dumps/sots.exe: file format pei-i386
Disassembly of section .text:
00885380 <.text+0x484380>:
885380: 55 push ebp
885381: 8b ec mov ebp,esp
885383: 6a ff push 0xffffffff
885385: 68 30 af 99 00 push 0x99af30
88538a: 64 a1 00 00 00 00 mov eax,fs:0x0
885390: 50 push eax
885391: 83 ec 18 sub esp,0x18
885394: 53 push ebx
885395: 56 push esi
885396: 57 push edi
885397: a1 78 8b af 00 mov eax,ds:0xaf8b78
88539c: 33 c5 xor eax,ebp
88539e: 50 push eax
88539f: 8d 45 f4 lea eax,[ebp-0xc]
8853a2: 64 a3 00 00 00 00 mov fs:0x0,eax
8853a8: 8b f1 mov esi,ecx
8853aa: 8b 56 08 mov edx,DWORD PTR [esi+0x8]
8853ad: 2b 56 04 sub edx,DWORD PTR [esi+0x4]
8853b0: 8d 4e 04 lea ecx,[esi+0x4]
8853b3: b8 ab aa aa 2a mov eax,0x2aaaaaab
8853b8: f7 ea imul edx
8853ba: c1 fa 02 sar edx,0x2
8853bd: 8b c2 mov eax,edx
8853bf: c1 e8 1f shr eax,0x1f
8853c2: 33 db xor ebx,ebx
8853c4: 03 c2 add eax,edx
8853c6: 33 ff xor edi,edi
8853c8: 3b c3 cmp eax,ebx
8853ca: 7e 30 jle 0x8853fc
8853cc: 8b 11 mov edx,DWORD PTR [ecx]
8853ce: 8b ff mov edi,edi
8853d0: 8b 5d 08 mov ebx,DWORD PTR [ebp+0x8]
8853d3: 39 5a 04 cmp DWORD PTR [edx+0x4],ebx
8853d6: 75 02 jne 0x8853da
8853d8: 8b fa mov edi,edx
8853da: 83 c2 18 add edx,0x18
8853dd: 48 dec eax
8853de: 75 f0 jne 0x8853d0
8853e0: 33 db xor ebx,ebx
8853e2: 3b fb cmp edi,ebx
8853e4: 74 16 je 0x8853fc
8853e6: 8b c7 mov eax,edi
8853e8: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc]
8853eb: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx
8853f2: 59 pop ecx
8853f3: 5f pop edi
8853f4: 5e pop esi
8853f5: 5b pop ebx
8853f6: 8b e5 mov esp,ebp
8853f8: 5d pop ebp
8853f9: c2 04 00 ret 0x4
8853fc: c7 45 dc 7c f0 a0 00 mov DWORD PTR [ebp-0x24],0xa0f07c
885403: 89 5d e4 mov DWORD PTR [ebp-0x1c],ebx
885406: 89 5d e8 mov DWORD PTR [ebp-0x18],ebx
885409: 89 5d ec mov DWORD PTR [ebp-0x14],ebx
88540c: 8d 45 dc lea eax,[ebp-0x24]
88540f: 50 push eax
885410: 89 5d fc mov DWORD PTR [ebp-0x4],ebx
885413: e8 98 f8 ff ff call 0x884cb0
885418: 8d 4d e4 lea ecx,[ebp-0x1c]
88541b: c7 45 fc 01 00 00 00 mov DWORD PTR [ebp-0x4],0x1
885422: e8 59 41 da ff call 0x629580
885427: 8b 46 08 mov eax,DWORD PTR [esi+0x8]
88542a: 8b 4d 08 mov ecx,DWORD PTR [ebp+0x8]
88542d: 89 48 ec mov DWORD PTR [eax-0x14],ecx
885430: 8b 46 08 mov eax,DWORD PTR [esi+0x8]
885433: 83 e8 18 sub eax,0x18
885436: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc]
885439: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx
885440: 59 pop ecx
885441: 5f pop edi
885442: 5e pop esi
885443: 5b pop ebx
885444: 8b e5 mov esp,ebp
885446: 5d pop ebp
885447: c2 04 00 ret 0x4

View file

@ -0,0 +1,87 @@
/home/alex/sots-re/dumps/sots.exe: file format pei-i386
Disassembly of section .text:
00885380 <.text+0x484380>:
885380: 55 push ebp
885381: 8b ec mov ebp,esp
885383: 6a ff push 0xffffffff
885385: 68 30 af 99 00 push 0x99af30
88538a: 64 a1 00 00 00 00 mov eax,fs:0x0
885390: 50 push eax
885391: 83 ec 18 sub esp,0x18
885394: 53 push ebx
885395: 56 push esi
885396: 57 push edi
885397: a1 78 8b af 00 mov eax,ds:0xaf8b78
88539c: 33 c5 xor eax,ebp
88539e: 50 push eax
88539f: 8d 45 f4 lea eax,[ebp-0xc]
8853a2: 64 a3 00 00 00 00 mov fs:0x0,eax
8853a8: 8b f1 mov esi,ecx
8853aa: 8b 56 08 mov edx,DWORD PTR [esi+0x8]
8853ad: 2b 56 04 sub edx,DWORD PTR [esi+0x4]
8853b0: 8d 4e 04 lea ecx,[esi+0x4]
8853b3: b8 ab aa aa 2a mov eax,0x2aaaaaab
8853b8: f7 ea imul edx
8853ba: c1 fa 02 sar edx,0x2
8853bd: 8b c2 mov eax,edx
8853bf: c1 e8 1f shr eax,0x1f
8853c2: 33 db xor ebx,ebx
8853c4: 03 c2 add eax,edx
8853c6: 33 ff xor edi,edi
8853c8: 3b c3 cmp eax,ebx
8853ca: 7e 30 jle 0x8853fc
8853cc: 8b 11 mov edx,DWORD PTR [ecx]
8853ce: 8b ff mov edi,edi
8853d0: 8b 5d 08 mov ebx,DWORD PTR [ebp+0x8]
8853d3: 39 5a 04 cmp DWORD PTR [edx+0x4],ebx
8853d6: 75 02 jne 0x8853da
8853d8: 8b fa mov edi,edx
8853da: 83 c2 18 add edx,0x18
8853dd: 48 dec eax
8853de: 75 f0 jne 0x8853d0
8853e0: 33 db xor ebx,ebx
8853e2: 3b fb cmp edi,ebx
8853e4: 74 16 je 0x8853fc
8853e6: 8b c7 mov eax,edi
8853e8: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc]
8853eb: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx
8853f2: 59 pop ecx
8853f3: 5f pop edi
8853f4: 5e pop esi
8853f5: 5b pop ebx
8853f6: 8b e5 mov esp,ebp
8853f8: 5d pop ebp
8853f9: c2 04 00 ret 0x4
8853fc: c7 45 dc 7c f0 a0 00 mov DWORD PTR [ebp-0x24],0xa0f07c
885403: 89 5d e4 mov DWORD PTR [ebp-0x1c],ebx
885406: 89 5d e8 mov DWORD PTR [ebp-0x18],ebx
885409: 89 5d ec mov DWORD PTR [ebp-0x14],ebx
88540c: 8d 45 dc lea eax,[ebp-0x24]
88540f: 50 push eax
885410: 89 5d fc mov DWORD PTR [ebp-0x4],ebx
885413: e8 98 f8 ff ff call 0x884cb0
885418: 8d 4d e4 lea ecx,[ebp-0x1c]
88541b: c7 45 fc 01 00 00 00 mov DWORD PTR [ebp-0x4],0x1
885422: e8 59 41 da ff call 0x629580
885427: 8b 46 08 mov eax,DWORD PTR [esi+0x8]
88542a: 8b 4d 08 mov ecx,DWORD PTR [ebp+0x8]
88542d: 89 48 ec mov DWORD PTR [eax-0x14],ecx
885430: 8b 46 08 mov eax,DWORD PTR [esi+0x8]
885433: 83 e8 18 sub eax,0x18
885436: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc]
885439: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx
885440: 59 pop ecx
885441: 5f pop edi
885442: 5e pop esi
885443: 5b pop ebx
885444: 8b e5 mov esp,ebp
885446: 5d pop ebp
885447: c2 04 00 ret 0x4
88544a: cc int3
88544b: cc int3
88544c: cc int3
88544d: cc int3