{
  "addr": "0x7ff624baaea0",
  "code": "char __fastcall JamCliHouse_Serialize(__int64 a1, _QWORD *a2, unsigned __int8 (__fastcall **a3)(__int64 *, __int64))\n{\n  __int64 v5; // rdx\n  int i_10; // r14d\n  unsigned int i_4; // edi\n  unsigned int i_5; // r10d\n  _QWORD *v9; // rbx\n  __int64 v10; // r11\n  _QWORD *v11; // rax\n  __int64 v12; // r8\n  unsigned int i_1; // r9d\n  __int64 v14; // rcx\n  _BYTE *v15; // r15\n  __int64 v16; // rax\n  int i_11; // esi\n  __int64 *v18; // rsi\n  __int64 v19; // r14\n  __int64 v20; // rcx\n  __int64 v21; // rax\n  unsigned __int64 v22; // rcx\n  __int128 v23; // xmm2\n  __int64 v24; // rax\n  __int64 v25; // rax\n  unsigned int i_12; // eax\n  int i_7; // r9d\n  _BYTE *v28; // rsi\n  __int64 v29; // rcx\n  __int64 v30; // rax\n  int i_8; // r8d\n  _BYTE *v33; // [rsp+20h] [rbp-E0h] BYREF\n  __int64 v34; // [rsp+28h] [rbp-D8h]\n  __int64 i_13; // [rsp+30h] [rbp-D0h]\n  __int64 v36; // [rsp+40h] [rbp-C0h] BYREF\n  _BYTE *v37; // [rsp+48h] [rbp-B8h] BYREF\n  _QWORD *v38; // [rsp+50h] [rbp-B0h]\n  unsigned int i_2; // [rsp+58h] [rbp-A8h]\n  unsigned int i_6; // [rsp+5Ch] [rbp-A4h]\n  __int64 v41; // [rsp+60h] [rbp-A0h]\n  unsigned int i_9; // [rsp+68h] [rbp-98h]\n  unsigned int i_3; // [rsp+6Ch] [rbp-94h]\n  __int64 v44; // [rsp+70h] [rbp-90h]\n  unsigned int i; // [rsp+78h] [rbp-88h]\n  __int64 v46; // [rsp+7Ch] [rbp-84h]\n  __int64 v47; // [rsp+90h] [rbp-70h]\n  __int64 v48; // [rsp+98h] [rbp-68h] BYREF\n  _QWORD v49[2]; // [rsp+A0h] [rbp-60h] BYREF\n  __m128i v50; // [rsp+B0h] [rbp-50h] BYREF\n  _BYTE v51[56]; // [rsp+C0h] [rbp-40h] BYREF\n  __int64 v52; // [rsp+F8h] [rbp-8h]\n  __int64 v53; // [rsp+100h] [rbp+0h]\n  __int64 v54; // [rsp+108h] [rbp+8h]\n  _QWORD *v55; // [rsp+1E8h] [rbp+E8h]\n\n  sub_7FF624BAC130(a1, v51); /*0x7ff624baaecb*/\n  sub_7FF624BACF10(&v36, v51); /*0x7ff624baaed9*/\n  i_10 = 0; /*0x7ff624baaee2*/\n  i_4 = i_6; /*0x7ff624baaee9*/\n  i_5 = i_2; /*0x7ff624baaeed*/\n  v9 = v38; /*0x7ff624baaef2*/\n  v10 = v36; /*0x7ff624baaef7*/\n  v11 = (_QWORD *)(v52 + 8 * v53); /*0x7ff624baaefc*/\n  v55 = v11; /*0x7ff624baaf00*/\nLABEL_2:\n  v12 = v44; /*0x7ff624baaf0f*/\n  i_1 = i; /*0x7ff624baaf14*/\n  while ( i_5 || i_4 || v9 != v11 || v37 != v51 ) /*0x7ff624baaf43*/\n  {\nLABEL_19:\n    v18 = *(__int64 **)(*(_QWORD *)(v12 + 24) + 8LL * i_1); /*0x7ff624bab00a*/\n    if ( v18 ) /*0x7ff624bab018*/\n    {\n      v19 = v18[1]; /*0x7ff624bab01a*/\n      v20 = *(unsigned int *)(v19 + 132); /*0x7ff624bab01e*/\n      if ( (int)v20 >= 0 ) /*0x7ff624bab027*/\n      {\n        v21 = (__int64)v18 + v20; /*0x7ff624bab0b8*/\n        i_10 = 0; /*0x7ff624bab0bc*/\n        goto LABEL_24; /*0x7ff624bab0bf*/\n      }\n      if ( (_DWORD)v20 != -1 ) /*0x7ff624bab030*/\n      {\n        LODWORD(v20) = v20 & 0x7FFFFFFF; /*0x7ff624bab095*/\n        v25 = *(_QWORD *)(v19 + 1104); /*0x7ff624bab0a0*/\n        v5 = 6LL * *((unsigned int *)v18 + 4); /*0x7ff624bab0a7*/\n        i_10 = 0; /*0x7ff624bab0aa*/\n        v21 = *(_QWORD *)(*(_QWORD *)(v25 + 48LL * *((unsigned int *)v18 + 4) + 24) + 16 * v20); /*0x7ff624bab0b2*/\n        goto LABEL_24; /*0x7ff624bab0b6*/\n      }\n      i_10 = 0; /*0x7ff624bab032*/\n    }\n    v21 = 0; /*0x7ff624bab035*/\nLABEL_24:\n    v22 = *(_QWORD *)(v21 + 16); /*0x7ff624bab038*/\n    v23 = *(_OWORD *)(v21 + 8); /*0x7ff624bab03c*/\n    if ( v22 >> 58 != 55 && v22 >> 58 ) /*0x7ff624bab043*/\n    {\n      v49[0] = 0; /*0x7ff624bab054*/\n      v49[1] = 0; /*0x7ff624bab05c*/\n      sub_7FF624B7CEF0(&v50, v49); /*0x7ff624bab060*/\n      *(_QWORD *)&v23 = v50.m128i_i64[0]; /*0x7ff624bab065*/\n      v22 = _mm_srli_si128(v50, 8).m128i_u64[0]; /*0x7ff624bab072*/\n    }\n    if ( *a2 == (_QWORD)v23 && a2[1] == v22 ) /*0x7ff624bab086*/\n    {\n      if ( v18 ) /*0x7ff624bab08b*/\n        v24 = *v18; /*0x7ff624bab08d*/\n      else\n        v24 = 0; /*0x7ff624bab0c4*/\n      v48 = v24; /*0x7ff624bab0c7*/\n      if ( (*a3)(&v48, (__int64)(a3 + 2)) ) /*0x7ff624bab0d8*/\n      {\n        if ( v54 >= 0 ) /*0x7ff624bab269*/\n          sub_7FF627BF37D0( /*0x7ff624bab27f*/\n            v52,\n            \"const char *__cdecl WowGetRawTypeName<struct WowCS::Archetype*>(void)\",\n            4294967290LL,\n            0);\n        return 1; /*0x7ff624bab284*/\n      }\n      i_1 = i; /*0x7ff624bab0e2*/\n      v12 = v44; /*0x7ff624bab0e7*/\n      i_4 = i_6; /*0x7ff624bab0ec*/\n      i_5 = i_2; /*0x7ff624bab0f0*/\n      v9 = v38; /*0x7ff624bab0f5*/\n      v10 = v36; /*0x7ff624bab0fa*/\n    }\n    ++i_1; /*0x7ff624bab0ff*/\n    LODWORD(v46) = v46 + 1; /*0x7ff624bab102*/\n    for ( i = i_1; ; i = i_2 ) /*0x7ff624bab106*/\n    {\n      v11 = v55; /*0x7ff624bab110*/\n      if ( i_1 != i_3 || v12 != v41 ) /*0x7ff624bab127*/\n        break; /*0x7ff624bab127*/\n      i_12 = *(_DWORD *)(*(_QWORD *)*v9 + 184LL); /*0x7ff624bab133*/\n      i_2 = i_4; /*0x7ff624bab13e*/\n      i_6 = i_12; /*0x7ff624bab142*/\n      sub_7FF624BA26C0(&v37, v5); /*0x7ff624bab146*/\n      v10 = v36; /*0x7ff624bab14b*/\n      i_7 = 0; /*0x7ff624bab150*/\n      v28 = (_BYTE *)v36; /*0x7ff624bab153*/\n      v29 = *(_QWORD *)(v36 + 64); /*0x7ff624bab156*/\n      v30 = *(_QWORD *)(v36 + 56); /*0x7ff624bab15a*/\n      v33 = (_BYTE *)v36; /*0x7ff624bab15e*/\n      v34 = 0; /*0x7ff624bab163*/\n      i_13 = 0; /*0x7ff624bab168*/\n      v5 = v30 + 8 * v29; /*0x7ff624bab171*/\n      if ( v5 == *(_QWORD *)(v36 + 56) + 8LL * *(_QWORD *)(v36 + 64) ) /*0x7ff624bab184*/\n        i_8 = 0; /*0x7ff624bab195*/\n      else\n        i_8 = *(_DWORD *)(**(_QWORD **)v5 + 184LL); /*0x7ff624bab18c*/\n      v34 = v30 + 8 * v29; /*0x7ff624bab198*/\n      HIDWORD(i_13) = i_8; /*0x7ff624bab19d*/\n      if ( v5 != *(_QWORD *)(v36 + 56) + 8LL * *(_QWORD *)(v36 + 64) ) /*0x7ff624bab1b1*/\n      {\n        sub_7FF624BA26C0(&v33, v5); /*0x7ff624bab1b8*/\n        v10 = v36; /*0x7ff624bab1bd*/\n        i_8 = HIDWORD(i_13); /*0x7ff624bab1c2*/\n        i_7 = i_13; /*0x7ff624bab1c7*/\n        v5 = v34; /*0x7ff624bab1cc*/\n        v28 = v33; /*0x7ff624bab1d1*/\n      }\n      i_5 = i_2; /*0x7ff624bab1d6*/\n      i_4 = i_6; /*0x7ff624bab1db*/\n      v9 = v38; /*0x7ff624bab1df*/\n      if ( i_2 == i_7 && i_6 == i_8 && v38 == (_QWORD *)v5 && v37 == v28 ) /*0x7ff624bab1f8*/\n      {\n        v11 = v55; /*0x7ff624bab234*/\n        goto LABEL_2; /*0x7ff624bab23b*/\n      }\n      v12 = *v38; /*0x7ff624bab1fa*/\n      i_1 = i_2; /*0x7ff624bab1fd*/\n      v41 = v12; /*0x7ff624bab200*/\n      i_9 = i_2; /*0x7ff624bab205*/\n      i_3 = i_6; /*0x7ff624bab20a*/\n      HIDWORD(v47) = *(_DWORD *)(v12 + 132); /*0x7ff624bab215*/\n      LODWORD(v47) = i_2; /*0x7ff624bab218*/\n      v46 = v47; /*0x7ff624bab220*/\n      v44 = v12; /*0x7ff624bab225*/\n    }\n  }\n  v14 = *(_QWORD *)(v10 + 64); /*0x7ff624baaf49*/\n  v15 = (_BYTE *)v10; /*0x7ff624baaf4d*/\n  v16 = *(_QWORD *)(v10 + 56); /*0x7ff624baaf50*/\n  v33 = (_BYTE *)v10; /*0x7ff624baaf54*/\n  v34 = 0; /*0x7ff624baaf59*/\n  i_13 = 0; /*0x7ff624baaf5e*/\n  v5 = v16 + 8 * v14; /*0x7ff624baaf67*/\n  if ( v5 == *(_QWORD *)(v10 + 56) + 8LL * *(_QWORD *)(v10 + 64) ) /*0x7ff624baaf7a*/\n    i_11 = 0; /*0x7ff624baaf8a*/\n  else\n    i_11 = *(_DWORD *)(**(_QWORD **)v5 + 184LL); /*0x7ff624baaf82*/\n  v34 = v16 + 8 * v14; /*0x7ff624baaf8c*/\n  HIDWORD(i_13) = i_11; /*0x7ff624baaf91*/\n  if ( v5 != *(_QWORD *)(v10 + 56) + 8LL * *(_QWORD *)(v10 + 64) ) /*0x7ff624baafa4*/\n  {\n    sub_7FF624BA26C0(&v33, v5); /*0x7ff624baafab*/\n    i_1 = i; /*0x7ff624baafb0*/\n    v12 = v44; /*0x7ff624baafb5*/\n    i_5 = i_2; /*0x7ff624baafba*/\n    v10 = v36; /*0x7ff624baafbf*/\n    v5 = v34; /*0x7ff624baafc4*/\n    i_4 = i_6; /*0x7ff624baafc9*/\n    v9 = v38; /*0x7ff624baafcd*/\n    i_11 = HIDWORD(i_13); /*0x7ff624baafd2*/\n    i_10 = i_13; /*0x7ff624baafd6*/\n    v15 = v33; /*0x7ff624baafdb*/\n  }\n  if ( (i_5 != i_10 || i_4 != i_11 || v9 != (_QWORD *)v5 || v37 != v15) && (i_1 || v12) ) /*0x7ff624bab001*/\n  {\n    i_10 = 0; /*0x7ff624bab007*/\n    goto LABEL_19; /*0x7ff624bab007*/\n  }\n  if ( v54 >= 0 ) /*0x7ff624bab245*/\n    sub_7FF627BF37D0(v52, \"const char *__cdecl WowGetRawTypeName<struct WowCS::Archetype*>(void)\", 4294967290LL, 0); /*0x7ff624bab25b*/\n  return 0; /*0x7ff624bab286*/\n}"
}
