Functions API

Browse, search, and retrieve reconstructed source code from analyzed games.

Overview

After a job completes, all reconstructed functions are available via the Functions API. Each function has:

  • Address — binary offset identifier
  • Name — class and method name extracted from game metadata
  • Source — reconstructed C# source code
  • Category — game-core, unity-sdk, firebase, admob, etc.
  • Doc — official documentation link (for classified SDK functions)

Get reconstructed source

GET /api/functions/{address}/decompile
X-SaaS-Email: you@example.com
X-API-Key: re_xxx
X-Binary-Id: {binary_id}

Response:

{
  "address": 28120604,
  "name": "GameManager$$StartMatch",
  "source": "void GameManager::StartMatch() {\n  ...\n}",
  "category": "game-core",
  "size": 312,
  "doc": null
}

If the function belongs to Unity or a third-party SDK, the response includes a doc field:

{
  "address": 28000000,
  "name": "UnityEngine.MonoBehaviour::Update",
  "category": "unity-sdk",
  "doc": {
    "source": "unity_engine",
    "url": "https://docs.unity3d.com/2021.3/...",
    "cached": {
      "short_description": "Called every frame if enabled.",
      "behavior_type": "lifecycle"
    }
  }
}

Text search

GET /api/functions/search/regex?pattern=Matchmaking&binary_id={id}

Searches function names and reconstructed source by regex pattern.

Code search

GET /api/functions/search/semantic?q=IAP+purchase+handler&binary_id={id}&limit=20

Returns functions ranked by similarity to the query. See Code Search for tips.

Response:

[
  {
    "address": "0x1AD291C",
    "name": "PurchaseManager$$OnPurchaseComplete",
    "similarity": 0.87,
    "source_snippet": "..."
  }
]

Get callers / callees

GET /api/functions/{address}/xrefs      # who calls this function
GET /api/functions/{address}/callees    # functions this one calls

Useful for tracing data flow — follow a method up to its entry points or down to its dependencies.

Full context

GET /api/functions/{address}/context

Returns everything in one call: reconstructed source + callers + callees + annotations + prior reconstructions.

List all functions (paginated)

POST /api/query
Content-Type: application/json

{
  "source": "functions",
  "where": [
    {"field": "binary_id", "op": "eq", "value": "{binary_id}"},
    {"field": "category",  "op": "eq", "value": "game-core"}
  ],
  "sort": "-size",
  "limit": 50,
  "offset": 0
}

Filter by category: game-core, unity-sdk, firebase, admob, untagged.

Get binary_id

The binary_id is returned in the job response:

GET /api/saas/jobs/{job_id}
{
  "id": "...",
  "status": "completed",
  "binary_id": "47ca6be1-a877-4081-b9d4-1a001f5ae5ad",
  "binary_name": "Tile Pyramid 1.0.13"
}