Code:
.text:00716230 GetUnitSkinnableType proc near ; CODE XREF: sub_4F8090+470p
.text:00716230 ; sub_53C600+1Ep ...
.text:00716230 mov eax, [ecx+964h]
.text:00716236 test eax, eax
.text:00716238 jz short loc_71626F
.text:0071623A test dword ptr [eax+0Ch], 100h
.text:00716241 jz short loc_716249
.text:00716243 mov eax, 1
.text:00716248 retn
.text:00716249 ; ---------------------------------------------------------------------------
.text:00716249
.text:00716249 loc_716249: ; CODE XREF: GetUnitSkinnableType+11j
.text:00716249 test eax, eax
.text:0071624B jz short loc_71626F
.text:0071624D test dword ptr [eax+0Ch], 200h
.text:00716254 jz short loc_71625C
.text:00716256 mov eax, 2
.text:0071625B retn
.text:0071625C ; ---------------------------------------------------------------------------
.text:0071625C
.text:0071625C loc_71625C: ; CODE XREF: GetUnitSkinnableType+24j
.text:0071625C test eax, eax
.text:0071625E jz short loc_71626F
.text:00716260 test dword ptr [eax+0Ch], 8000h
.text:00716267 jz short loc_71626F
.text:00716269 mov eax, 3
.text:0071626E retn
.text:0071626F ; ---------------------------------------------------------------------------
.text:0071626F
.text:0071626F loc_71626F: ; CODE XREF: GetUnitSkinnableType+8j
.text:0071626F ; GetUnitSkinnableType+1Bj ...
.text:0071626F xor eax, eax
.text:00716271 retn
.text:00716271 GetUnitSkinnableType endp
Look like [[BaseAddress + 0x964] + 0x0C] return a flag, but not tested