Skip to content

Instantly share code, notes, and snippets.

@goaaats
Created April 20, 2019 17:18
Show Gist options
  • Save goaaats/19526ccb2d2dda1b507dac558c7c6825 to your computer and use it in GitHub Desktop.
Save goaaats/19526ccb2d2dda1b507dac558c7c6825 to your computer and use it in GitHub Desktop.
char __fastcall LoadModelParameterFiles(_QWORD *a1)
{
_QWORD *v1; // rbx
__int64 v2; // rax
__int64 v3; // rax
unsigned int v4; // edi
unsigned __int16 *v5; // rsi
__int64 *v6; // r14
__int64 v7; // rax
__int64 v8; // rax
__int64 v9; // rax
__int64 v10; // rax
__int64 v11; // rax
__int64 v12; // rax
__int64 v13; // rax
__int64 v14; // rax
__int64 v15; // rax
__int64 v16; // rax
__int64 v17; // rax
__int64 v18; // rax
int *v19; // rax
__int64 v20; // rax
__int64 v21; // rax
__int64 v22; // rax
__int64 v23; // rax
__int64 v24; // rax
__int64 v25; // rax
const char *v26; // r8
__int64 v27; // rax
__int64 v28; // rax
int *v29; // rax
__int64 v30; // rax
__int64 v31; // rax
__int64 v32; // rax
__int64 v33; // rax
__int64 v34; // rax
unsigned int v35; // esi
__int64 *v36; // rdi
__int64 v37; // r8
__int64 v38; // rax
__int64 v39; // rax
__int64 v41; // [rsp+28h] [rbp-D8h]
__int64 v42; // [rsp+28h] [rbp-D8h]
int v43; // [rsp+30h] [rbp-D0h]
int v44; // [rsp+34h] [rbp-CCh]
int v45; // [rsp+38h] [rbp-C8h]
const char *v46; // [rsp+40h] [rbp-C0h]
const char *v47; // [rsp+48h] [rbp-B8h]
const char *v48; // [rsp+50h] [rbp-B0h]
const char *v49; // [rsp+58h] [rbp-A8h]
char DstBuf; // [rsp+60h] [rbp-A0h]
v1 = a1;
sub_1401A8B70(&v44, 4, 0);
v43 = 6648176;
v2 = SomethingLoadFile1(
(__int64)&v44,
(unsigned __int64)&v43,
(__int64)"chara/xls/equipmentParameter/equipmentParameter.eqp",
0i64);
v1[1] = v2;
if ( v2 )
{
LODWORD(v41) = 0;
v43 = 6778224;
v3 = SomethingLoadFile1(
(__int64)&v44,
(unsigned __int64)&v43,
(__int64)"chara/xls/equipmentParameter/gimmickParameter.gmp",
0i64);
v1[2] = v3;
if ( v3 )
{
v4 = 0;
v5 = (unsigned __int16 *)"e";
v6 = v1 + 27;
while ( 1 )
{
sprintf_s_0(&DstBuf, 0x100ui64, "chara/xls/charadb/EquipmentDeformerParameter/c%04d.eqdp", *v5, 0i64, v41);
LODWORD(v42) = 0;
v43 = 1701930096;
v7 = SomethingLoadFile1((__int64)&v44, (unsigned __int64)&v43, (__int64)&DstBuf, 0i64);
*(v6 - 24) = v7;
if ( !v7 )
break;
sprintf_s_0(&DstBuf, 0x100ui64, "chara/xls/charadb/AccessoryDeformerParameter/c%04d.eqdp", *v5, 0i64, v42);
LODWORD(v41) = 0;
v43 = 1701930096;
v8 = SomethingLoadFile1((__int64)&v44, (unsigned __int64)&v43, (__int64)&DstBuf, 0i64);
*v6 = v8;
if ( !v8 )
break;
++v4;
++v6;
++v5;
if ( v4 >= 0x18 )
{
v43 = 2002874213;
v9 = SomethingLoadFile1(
(__int64)&v44,
(unsigned __int64)&v43,
(__int64)"chara/xls/attachOffset/attachOffsetExist.waoe",
0i64);
v1[51] = v9;
if ( v9 )
{
v43 = 7828580;
v10 = SomethingLoadFile1(
(__int64)&v44,
(unsigned __int64)&v43,
(__int64)"chara/xls/weapontype/attach.wtd",
0i64);
v1[52] = v10;
if ( v10 )
{
v43 = 7828580;
v11 = SomethingLoadFile1(
(__int64)&v44,
(unsigned __int64)&v43,
(__int64)"chara/xls/weapontype/motion.wtd",
0i64);
v1[53] = v11;
if ( v11 )
{
v43 = 7828580;
v12 = SomethingLoadFile1(
(__int64)&v44,
(unsigned __int64)&v43,
(__int64)"chara/xls/weapontype/se.wtd",
0i64);
v1[54] = v12;
if ( v12 )
{
v43 = 7365220;
v13 = SomethingLoadFile1(
(__int64)&v44,
(unsigned __int64)&v43,
(__int64)"chara/xls/boneDeformer/human.pbd",
0i64);
v1[55] = v13;
if ( v13 )
{
v43 = 6516080;
v14 = SomethingLoadFile1(
(__int64)&v44,
(unsigned __int64)&v43,
(__int64)"chara/xls/charaMake/human.cmp",
0i64);
v1[56] = v14;
if ( v14 )
{
v43 = 6648692;
v15 = SomethingLoadFile1(
(__int64)&v44,
(unsigned __int64)&v43,
(__int64)"chara/xls/charadb/faceSkeletonTemplate.est",
0i64);
v1[57] = v15;
if ( v15 )
{
v43 = 6648692;
v16 = SomethingLoadFile1(
(__int64)&v44,
(unsigned __int64)&v43,
(__int64)"chara/xls/charadb/hairSkeletonTemplate.est",
0i64);
v1[58] = v16;
if ( v16 )
{
v43 = 6648692;
v17 = SomethingLoadFile1(
(__int64)&v44,
(unsigned __int64)&v43,
(__int64)"chara/xls/charadb/extra_met.est",
0i64);
v1[59] = v17;
if ( v17 )
{
v43 = 6648692;
v18 = SomethingLoadFile1(
(__int64)&v44,
(unsigned __int64)&v43,
(__int64)"chara/xls/charadb/extra_top.est",
0i64);
v1[60] = v18;
if ( v18 )
{
v43 = 7628152;
v19 = sub_1401A8B70(&v45, 0, 0);
v20 = SomethingLoadFile1(
(__int64)v19,
(unsigned __int64)&v43,
(__int64)"common/graphics/texture/dummy.tex",
0i64);
v1[61] = v20;
if ( v20 )
{
v43 = 7628152;
v21 = SomethingLoadFile1(
(__int64)&v44,
(unsigned __int64)&v43,
(__int64)"chara/common/texture/black.tex",
0i64);
v1[62] = v21;
if ( v21 )
{
v43 = 7628152;
v22 = SomethingLoadFile1(
(__int64)&v44,
(unsigned __int64)&v43,
(__int64)"chara/common/texture/white.tex",
0i64);
v1[63] = v22;
if ( v22 )
{
v43 = 7628152;
v23 = SomethingLoadFile1(
(__int64)&v44,
(unsigned __int64)&v43,
(__int64)"chara/common/texture/transparent.tex",
0i64);
v1[64] = v23;
if ( v23 )
{
v43 = 7628152;
v24 = SomethingLoadFile1(
(__int64)&v44,
(unsigned __int64)&v43,
(__int64)"chara/common/texture/decal_equip/_stigma.tex",
0i64);
v1[65] = v24;
if ( v24 )
{
v43 = 7628152;
if ( (*(_DWORD *)(qword_141A8A050 + 140) >> 6) & 1 )
{
v25 = SomethingLoadFile1(
(__int64)&v44,
(unsigned __int64)&v43,
(__int64)"chara/common/texture/-tile_d.tex",
0i64);
v1[66] = v25;
if ( !v25 )
break;
v26 = "chara/common/texture/-tile_n.tex";
}
else
{
v27 = SomethingLoadFile1(
(__int64)&v44,
(unsigned __int64)&v43,
(__int64)"chara/common/texture/-tile_low_d.tex",
0i64);
v1[66] = v27;
if ( !v27 )
break;
v26 = "chara/common/texture/-tile_low_n.tex";
}
v43 = 7628152;
v28 = SomethingLoadFile1(
(__int64)&v44,
(unsigned __int64)&v43,
(__int64)v26,
0i64);
v1[67] = v28;
if ( v28 )
{
v43 = 1936224363;
v29 = sub_1401A8B70(&v45, 5, 0);
v30 = SomethingLoadFile1(
(__int64)v29,
(unsigned __int64)&v43,
(__int64)"shader/sm5/shpk/skin.shpk",
0i64);
v1[68] = v30;
if ( v30 )
{
v45 = v44;
v43 = 7367796;
v31 = SomethingLoadFile1(
(__int64)&v45,
(unsigned __int64)&v43,
(__int64)"chara/xls/animation/papLoadTable.plt",
0i64);
v1[69] = v31;
if ( v31 )
{
v45 = 6382964;
v32 = SomethingLoadFile1(
(__int64)&v44,
(unsigned __int64)&v45,
(__int64)"chara/xls/animation/AnimationExchangeTable.aet",
0i64);
v1[70] = v32;
if ( v32 )
{
v45 = 7171188;
v33 = SomethingLoadFile1(
(__int64)&v44,
(unsigned __int64)&v45,
(__int64)"chara/xls/animation/MotionLineTable.mlt",
0i64);
v1[71] = v33;
if ( v33 )
{
v45 = 1936419938;
v34 = SomethingLoadFile1(
(__int64)&v44,
(unsigned __int64)&v45,
(__int64)"chara/common/animation/skl_material.sklb",
0i64);
v1[72] = v34;
if ( v34 )
{
v46 = "chara/xls/animation/animation_work_table-human.awt";
v35 = 0;
v47 = "chara/xls/animation/animation_work_table-monster.awt";
v36 = (__int64 *)&v46;
v48 = "chara/xls/animation/animation_work_table-demihuman.awt";
v49 = "chara/xls/animation/animation_work_table-weapon.awt";
while ( 1 )
{
v37 = *v36;
v45 = 6387572;
v38 = SomethingLoadFile1(
(__int64)&v44,
(unsigned __int64)&v45,
v37,
0i64);
*(__int64 *)((char *)v36 + (char *)v1 - (char *)&v46 + 584) = v38;
if ( !v38 )
break;
++v35;
++v36;
if ( v35 >= 4 )
{
v45 = 7566445;
v39 = SomethingLoadFile1(
(__int64)&v44,
(unsigned __int64)&v45,
(__int64)"chara/base_material/stainingtemplate.stm",
0i64);
v1[77] = v39;
if ( !v39 )
goto LABEL_38;
return 1;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
break;
}
}
}
}
LABEL_38:
sub_140410560((__int64)v1);
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment