这汇编怎么看参数是怎么生成的?

这个 actParam 参数是什么样的规则生成的?

id __cdecl -[MTReserveRequest requestParams](MTReserveRequest *self, SEL a2)
{
  void *v2; // x0
  __int64 v3; // x1
  void *v4; // x19
  void *v5; // x0
  void *v6; // x0
  void *v7; // x20
  const char *v8; // x27
  id v9; // x0
  void *v10; // x0
  void *v11; // x0
  __int64 v12; // x24
  id v13; // x0
  void *v14; // x0
  void *v15; // x0
  void *v16; // x0
  id v17; // x0
  char *v18; // x0
  void *v19; // x0
  const __CFString *v20; // x28
  signed int v21; // w25
  signed int v22; // w26
  __int64 v23; // x21
  void *v24; // x0
  __int64 v25; // x1
  __CFString *v26; // x23
  const __CFString *v27; // x24
  void *v28; // x0
  __int64 v29; // x0
  __CFString *v30; // x24
  const __CFString *v31; // x25
  void *v32; // x0
  void *v33; // x0
  id result; // x0
  __int64 v35; // [xsp+0h] [xbp-80h]
  void *v36; // [xsp+8h] [xbp-78h]
  void *v37; // [xsp+10h] [xbp-70h]
  const __CFString *v38; // [xsp+18h] [xbp-68h]
  const __CFString *v39; // [xsp+20h] [xbp-60h]
  __int64 v40; // [xsp+28h] [xbp-58h]

  v2 = objc_msgSend(self, "yy_modelToJSONObject");
  v4 = (void *)objc_retainAutoreleasedReturnValue(v2);
  if ( v4
    && (v5 = objc_msgSend(&OBJC_CLASS___NSDictionary, "class"), (unsigned int)objc_msgSend(v4, "isKindOfClass:", v5)) )
  {
    v6 = (void *)objc_alloc(&OBJC_CLASS___NSMutableDictionary);
    v7 = objc_msgSend(v6, "init");
    v8 = "currentUser";
    v9 = ((id (__cdecl *)(MTUserManager_meta *, SEL))objc_msgSend)(
           (MTUserManager_meta *)&OBJC_CLASS___MTUserManager,
           "currentUser");
    v10 = (void *)objc_retainAutoreleasedReturnValue(v9);
    v37 = v10;
    v11 = objc_msgSend(v10, "userId");
    v12 = objc_retainAutoreleasedReturnValue(v11);
    if ( v12 )
    {
      v13 = ((id (__cdecl *)(MTUserManager_meta *, SEL))objc_msgSend)(
              (MTUserManager_meta *)&OBJC_CLASS___MTUserManager,
              "currentUser");
      v14 = (void *)objc_retainAutoreleasedReturnValue(v13);
      v15 = objc_msgSend(v14, "userId", v14);
      v36 = (void *)objc_retainAutoreleasedReturnValue(v15);
      v16 = objc_msgSend(&OBJC_CLASS___NSString, "class");
      if ( (unsigned int)objc_msgSend(v36, "isKindOfClass:", v16) )
      {
        v17 = ((id (__cdecl *)(MTUserManager_meta *, SEL))objc_msgSend)(
                (MTUserManager_meta *)&OBJC_CLASS___MTUserManager,
                "currentUser");
        v18 = (char *)objc_retainAutoreleasedReturnValue(v17);
        v8 = v18;
        v19 = objc_msgSend(v18, "userId");
        v20 = (const __CFString *)objc_retainAutoreleasedReturnValue(v19);
        v21 = 1;
        v22 = 1;
      }
      else
      {
        v22 = 0;
        v20 = &stru_100BFD020;
        v21 = 1;
      }
    }
    else
    {
      v21 = 0;
      v22 = 0;
      v20 = &stru_100BFD020;
    }
    objc_msgSend(v7, "setObject:forKey:", v20, CFSTR("userId"));
    if ( v22 )
    {
      objc_release(v20);
      objc_release(v8);
    }
    if ( v21 )
    {
      objc_release(v36);
      objc_release(v35);
    }
    objc_release(v12);
    objc_release(v37);
    objc_msgSend(v7, "addEntriesFromDictionary:", v4);
    v24 = objc_msgSend(v7, "yy_modelToJSONString");
    v26 = (__CFString *)objc_retainAutoreleasedReturnValue(v24);
    v27 = &stru_100BFD020;
    if ( v26 )
    {
      v28 = objc_msgSend(&OBJC_CLASS___NSString, "class");
      if ( (unsigned int)objc_msgSend(v26, "isKindOfClass:", v28) )
        v27 = v26;
    }
    v29 = sub_10027C5FC((__int64)v27, v25);
    v30 = (__CFString *)objc_retainAutoreleasedReturnValue(v29);
    v38 = CFSTR("actParam");
    v31 = &stru_100BFD020;
    if ( v30 )
    {
      v32 = objc_msgSend(&OBJC_CLASS___NSString, "class");
      if ( (unsigned int)objc_msgSend(v30, "isKindOfClass:", v32) )
        v31 = v30;
    }
    v39 = v31;
    v33 = objc_msgSend(&OBJC_CLASS___NSDictionary, "dictionaryWithObjects:forKeys:count:", &v39, &v38, 1LL);
    v23 = objc_retainAutoreleasedReturnValue(v33);
    objc_release(v30);
    objc_release(v26);
    objc_release(v7);
  }
  else
  {
    v23 = objc_retain(__NSDictionary0__, v3);
  }
  result = (id)objc_release(v4);
  if ( __stack_chk_guard == v40 )
    result = (id)objc_autoreleaseReturnValue(v23);
  return result;
}

其它都看的懂,到这一步 v29 = sub_10027C5FC((__int64)v27, v25); 这句不知道什么意思了。双击查看是这样的

__int64 __fastcall sub_10027C5FC(__int64 a1, __int64 a2)
{
  __int64 v2; // x19
  unsigned int v3; // off
  __int64 v4; // x9
  char *v5; // x10
  unsigned int v6; // off
  __int64 v7; // x9
  __int128 *v8; // x10
  void *v9; // x0
  __int64 v10; // x20
  void *v11; // x0
  __int64 v12; // x0
  __int64 v13; // x21
  __int64 v14; // x0
  __int64 v15; // x22

  v2 = objc_retain(a1, a2);
  v3 = __ldar((unsigned __int8 *)&unk_100E5AFC8);
  if ( !((unsigned __int64)&unk_100E5AFC8 & 1) && (unsigned int)__cxa_guard_acquire(&unk_100E5AFC8) )
  {
    byte_100E5AFC1 = 1;
    *(_OWORD *)&byte_100E5AFA0 = unk_100B40C68;
    *(_OWORD *)&algn_100E5AFA1[15] = unk_100B40C78;
    byte_100E5AFC0 = 107;
    __cxa_atexit(sub_10027C858);
    __cxa_guard_release(&unk_100E5AFC8);
  }
  if ( byte_100E5AFC1 )
  {
    v4 = 0LL;
    v5 = &byte_100E5AFA0;
    do
    {
      *v5 ^= 0x5BE9895DD531356BuLL >> (v4 & 0x38);
      ++v5;
      v4 += 8LL;
    }
    while ( v4 != 264 );
    byte_100E5AFC1 = 0;
  }
  v6 = __ldar((unsigned __int8 *)&unk_100E5AFE8);
  if ( !((unsigned __int64)&unk_100E5AFE8 & 1) && (unsigned int)__cxa_guard_acquire(&unk_100E5AFE8) )
  {
    byte_100E5AFE1 = 1;
    xmmword_100E5AFD0 = xmmword_100B40C89;
    byte_100E5AFE0 = -101;
    __cxa_atexit(sub_10027C868);
    __cxa_guard_release(&unk_100E5AFE8);
  }
  if ( byte_100E5AFE1 )
  {
    v7 = 0LL;
    v8 = &xmmword_100E5AFD0;
    do
    {
      *(_BYTE *)v8 ^= 0x7D410717B555F99BuLL >> (v7 & 0x38);
      v8 = (__int128 *)((char *)v8 + 1);
      v7 += 8LL;
    }
    while ( v7 != 136 );
    byte_100E5AFE1 = 0;
  }
  v9 = objc_msgSend(&OBJC_CLASS___NSString, "stringWithCString:encoding:", &byte_100E5AFA0, 4LL);
  v10 = objc_retainAutoreleasedReturnValue(v9);
  v11 = objc_msgSend(&OBJC_CLASS___NSString, "stringWithCString:encoding:", &xmmword_100E5AFD0, 4LL);
  v12 = objc_retainAutoreleasedReturnValue(v11);
  v13 = v12;
  v14 = sub_10027C5D0(v2, v10, v12);
  v15 = objc_retainAutoreleasedReturnValue(v14);
  objc_release(v13);
  objc_release(v10);
  objc_release(v2);
  return objc_autoreleaseReturnValue(v15);
}