{
  "addr": "0x7ff627d416c0",
  "code": "__int64 __fastcall JamCliHouse_Deserialize(\n        __int64 a1,\n        __int64 a2,\n        __int64 a3,\n        __int64 a4,\n        __int64 a5,\n        int a6,\n        int a7,\n        __int16 *a8,\n        int a9)\n{\n  __int64 v9; // rsi\n  __int64 v10; // rdi\n  __int64 v11; // r14\n  __int64 v12; // rbx\n  __int16 *v13; // r10\n  __int64 n255; // rax\n  char *v15; // rbp\n  __int64 n255_1; // r12\n  char *v17; // r15\n  __int64 v18; // r9\n  char *v19; // r8\n  int v20; // r13d\n  char *v21; // rdx\n  unsigned __int8 v22; // r11\n  int v23; // ebx\n  int v24; // r14d\n  int v25; // eax\n  int v26; // r10d\n  char *v27; // rdi\n  int v28; // esi\n  int n0x1FFF; // edx\n  unsigned __int16 *v30; // r11\n  __int64 v31; // r8\n  unsigned __int16 *v32; // r9\n  int v33; // [rsp+5Ch] [rbp-1408Ch]\n  int v34; // [rsp+60h] [rbp-14088h]\n  int v35; // [rsp+64h] [rbp-14084h]\n  __int64 n255_2; // [rsp+68h] [rbp-14080h]\n  char v39[5]; // [rsp+90h] [rbp-14058h] BYREF\n  char v40; // [rsp+95h] [rbp-14053h] BYREF\n  char v41; // [rsp+6B40h] [rbp-D5A8h] BYREF\n  char v42; // [rsp+7A7Ch] [rbp-C66Ch] BYREF\n\n  v9 = a2; /*0x7ff627d416ed*/\n  LODWORD(v10) = a7; /*0x7ff627d416f0*/\n  v11 = a1; /*0x7ff627d416f7*/\n  v12 = a6; /*0x7ff627d416fa*/\n  sub_7FF627D40730(v39, a1, a2, a3, a4, a5, a6, a7, a9); /*0x7ff627d4173e*/\n  v13 = a8; /*0x7ff627d41743*/\n  n255 = (unsigned int)(a7 + 6); /*0x7ff627d4174b*/\n  v15 = &v41; /*0x7ff627d41753*/\n  if ( (int)n255 > 0 ) /*0x7ff627d4175d*/\n  {\n    n255_1 = (unsigned int)n255; /*0x7ff627d41773*/\n    v17 = &v40; /*0x7ff627d4177e*/\n    n255_2 = (unsigned int)n255; /*0x7ff627d41786*/\n    do /*0x7ff627d41897*/\n    {\n      if ( v12 > 0 ) /*0x7ff627d41793*/\n      {\n        v18 = v12; /*0x7ff627d4179e*/\n        v19 = v15; /*0x7ff627d417a6*/\n        v20 = v13[6]; /*0x7ff627d417a9*/\n        v21 = v17; /*0x7ff627d417ae*/\n        v22 = *v17; /*0x7ff627d417b1*/\n        v23 = v13[3]; /*0x7ff627d417b5*/\n        v24 = v13[4]; /*0x7ff627d417cf*/\n        v35 = v13[2]; /*0x7ff627d417d4*/\n        v34 = v13[1]; /*0x7ff627d417dd*/\n        v25 = *v13; /*0x7ff627d417e1*/\n        v26 = v13[5]; /*0x7ff627d417e5*/\n        v33 = v25; /*0x7ff627d417ea*/\n        do /*0x7ff627d4186c*/\n        {\n          v27 = v21 + 1; /*0x7ff627d417f4*/\n          v28 = (unsigned __int8)v21[1]; /*0x7ff627d417f8*/\n          n255 = (unsigned int)(v20 * v28); /*0x7ff627d41839*/\n          n0x1FFF = (int)(n255 /*0x7ff627d41847*/\n                        + v24 * (unsigned __int8)*(v21 - 1)\n                        + v35 * (unsigned __int8)*(v21 - 3)\n                        + v34 * (unsigned __int8)*(v21 - 4)\n                        + v33 * (unsigned __int8)*(v21 - 5)\n                        + (v23 + 128) * (unsigned __int8)*(v21 - 2)\n                        + v26 * v22\n                        + 16388) >> 3;\n          if ( n0x1FFF >= 0 ) /*0x7ff627d4184c*/\n          {\n            if ( n0x1FFF > 0x1FFF ) /*0x7ff627d41855*/\n              LOWORD(n0x1FFF) = 0x1FFF; /*0x7ff627d41855*/\n          }\n          else\n          {\n            LOWORD(n0x1FFF) = 0; /*0x7ff627d4184e*/\n          }\n          *(_WORD *)v19 = n0x1FFF; /*0x7ff627d41859*/\n          v22 = v28; /*0x7ff627d4185d*/\n          v19 += 2; /*0x7ff627d41861*/\n          v21 = v27; /*0x7ff627d41865*/\n          --v18; /*0x7ff627d41868*/\n        }\n        while ( v18 ); /*0x7ff627d4186c*/\n        v13 = a8; /*0x7ff627d4186e*/\n        v12 = a6; /*0x7ff627d41876*/\n        n255_1 = n255_2; /*0x7ff627d4187b*/\n      }\n      v17 += 390; /*0x7ff627d41880*/\n      v15 += 780; /*0x7ff627d41887*/\n      n255_2 = --n255_1; /*0x7ff627d41892*/\n    }\n    while ( n255_1 ); /*0x7ff627d41897*/\n    v11 = a1; /*0x7ff627d4189d*/\n    LODWORD(v10) = a7; /*0x7ff627d418a2*/\n    v9 = a2; /*0x7ff627d418a9*/\n  }\n  v10 = (int)v10; /*0x7ff627d418c9*/\n  if ( (int)v10 <= 0 ) /*0x7ff627d418cf*/\n    return n255; /*0x7ff627d419a6*/\n  v30 = (unsigned __int16 *)&v42; /*0x7ff627d418d5*/\n  do /*0x7ff627d419a0*/\n  {\n    v31 = 0; /*0x7ff627d418e2*/\n    if ( v12 > 0 ) /*0x7ff627d418e8*/\n    {\n      v32 = v30; /*0x7ff627d418ee*/\n      do /*0x7ff627d4198c*/\n      {\n        n255 = (unsigned int)((v13[14] * v32[390] /*0x7ff627d4196e*/\n                             + v13[12] * *(v32 - 390)\n                             + v13[11] * *(v32 - 780)\n                             + v13[10] * *(v32 - 1170)\n                             + v13[9] * *(v32 - 1560)\n                             + v13[8] * *(v32 - 1950)\n                             + *v32 * v13[13]\n                             - 261120) >> 11);\n        if ( (int)n255 >= 0 ) /*0x7ff627d41973*/\n        {\n          if ( (int)n255 > 255 ) /*0x7ff627d4197b*/\n            n255 = 255; /*0x7ff627d4197b*/\n        }\n        else\n        {\n          n255 = 0; /*0x7ff627d41975*/\n        }\n        *(_BYTE *)(v11 + v31) = n255; /*0x7ff627d4197e*/\n        ++v32; /*0x7ff627d41982*/\n        ++v31; /*0x7ff627d41986*/\n      }\n      while ( v31 < v12 ); /*0x7ff627d4198c*/\n    }\n    v30 += 390; /*0x7ff627d41992*/\n    v11 += v9; /*0x7ff627d41999*/\n    --v10; /*0x7ff627d4199c*/\n  }\n  while ( v10 ); /*0x7ff627d419a0*/\n  return n255; /*0x7ff627d419a6*/\n}"
}
