反编译代码调用带有未初始化变量的函数

逆向工程 反编译 C
2021-06-24 06:36:50

我正在从游戏 Rayman 2 中反编译脚本引擎。它进行得很顺利,但我遇到了一个特定的函数,该函数调用另一个带有未初始化参数的函数。

这是函数的相关部分:

void __cdecl fn_p_stIntelligenceEvalTreeEngine(HIE_tdstSuperObject 
*superObject, tdstNodeInterpret_ *nodeInterpreter, tdstGetSetParam_ 
*getSetParam)
{
  ...

  HIE_tdstSuperObject *superObject_1; // [sp+0h] [bp-20h]@0
  tdstNodeInterpret_ *nodeInterpreter_1; // [sp+4h] [bp-1Ch]@0
  tdstGetSetParam_ *getSetParam_1; // [sp+8h] [bp-18h]@0

  ...

  evaluatedNode = fn_p_stEvalTree(superObject_1, nodeInterpreter_1, getSetParam_1);

据我了解,在调用时变量已经到位,即在 bp-20、bp-1C 和 bp-18h。现在我不明白的是这些变量是如何分配的。我应该查看调用此函数的父函数以查看这些变量是如何创建的吗?或者还有其他解释吗?

这是感兴趣的人的完整功能:https : //pastebin.com/Udj4K8PW

0个回答
没有发现任何回复~