CmLoadAppKey
NTSTATUS __stdcall CmLoadAppKey(
OBJECT_ATTRIBUTES *TargetKey,
UNICODE_STRING *SourceFile,
UINT64 Flags,
CM_KEY_BODY *KeyBody,
KEVENT *UserEvent,
UNICODE_STRING **PathToRoot,
PVOID *LoadKeyContext){
__int16 v7;
_UNICODE_STRING *ObjectName;
char v11;
volatile signed __int32 *LastHive;
unsigned int Length;
__int64 v14;
_UNICODE_STRING *v15;
_PRIVILEGE_SET *TransientPoolWithTag;
_PRIVILEGE_SET *v18;
_ETHREAD *CurrentThread;
int v20;
int v21;
int v22;
NTSTATUS v23;
NTSTATUS KeyCommon;
NTSTATUS v25;
_ADAPTER_OBJECT *v26;
_ETHREAD *v27;
__int64 *v28;
__int64 v29;
_QWORD *v30;
__int64 v31;
_EX_RUNDOWN_REF *v32;
UINT8 *v33;
unsigned int v34;
NTSTATUS v35;
_CMHIVE *i;
_CMHIVE *NextHive;
__int64 v38;
void *v39;
int v40;
int v41;
INT64 v42;
_CM_KEY_CONTROL_BLOCK *v43;
_UNICODE_STRING **v44;
_ETHREAD *v45;
__int64 v46;
__int64 v47;
__int64 v48;
__int64 v49;
_QWORD *v50;
_QWORD *v51;
__int64 v52;
unsigned __int8 *v53;
unsigned __int8 v54;
_EVENT_DATA_DESCRIPTOR *v55;
unsigned int v56;
int v57;
int LowPart_high;
int v59;
__int64 p_HighPart;
int v61;
int v62;
UINT64 Point;
UINT64 Pointa;
POBJECT_HANDLE_INFORMATION HandleInformation;
POBJECT_HANDLE_INFORMATION HandleInformationa;
VOID **NeedRmLogStart;
UINT8 Allocate;
char v69;
char v70;
char v71;
_FILE_OBJECT *FileObject;
int CompareAddress;
__int16 v74;
__int16 v75;
__int16 v76;
unsigned __int16 LowPart;
__int16 v78;
__int16 v79;
_HANDLE Handle[2];
int v81;
volatile unsigned int HandleClosePending;
int SupplementalFlags;
int SupplementalFlags_4;
CMHIVE *NewHive;
PVOID P;
NTSTATUS v87;
NTSTATUS v88;
NTSTATUS v89;
NTSTATUS v90;
unsigned int Flagsa;
int Flags_4;
int v93;
UINT8 *v94;
__int64 v95[10];
PVOID Object;
PVOID v97;
_UNICODE_STRING *KeyPath;
__int64 v99;
UINT8 v100[8];
_UNICODE_STRING **v101;
KEVENT *v102;
CM_KEY_BODY *TrustClassKeyBody;
__int64 v104;
__int64 v105;
__int64 v106;
__int64 v107;
__int64 v108;
__int64 v109;
_KAPC_STATE ApcState;
_EVENT_DATA_DESCRIPTOR v111;
__int64 *v112;
__int64 v113;
int *v114;
__int64 v115;
__int16 *v116;
__int64 v117;
__int16 *v118;
__int64 v119;
__int16 *v120;
__int64 v121;
unsigned __int16 *v122;
__int64 v123;
unsigned __int16 *v124;
int v125;
int v126;
unsigned __int16 *v127;
__int64 v128;
unsigned __int16 *Privilege;
int v130;
int v131;
unsigned __int16 *v132;
__int64 v133;
unsigned __int16 *p_Attributes;
int v135;
int v136;
__int64 *v137;
__int64 v138;
_EVENT_DATA_DESCRIPTOR v139;
int *v140;
__int64 v141;
unsigned __int16 *p_LowPart;
__int64 v143;
__int16 *v144;
__int64 v145;
__int16 *v146;
__int64 v147;
unsigned __int16 *v148;
__int64 v149;
__int64 v150;
int v151;
int v152;
unsigned __int16 *v153;
__int64 v154;
unsigned __int16 *v155;
int v156;
int v157;
unsigned __int16 *v158;
__int64 v159;
unsigned __int16 *v160;
int v161;
int v162;
char v163;
__int64 *v164;
__int64 v165;
int *v166;
__int64 v167;
char *v168;
__int64 v169;
__int64 *v170;
__int64 v171;
_EVENT_DATA_DESCRIPTOR v172;
__int64 *v173;
__int64 v174;
int *v175;
__int64 v176;
__int64 *v177;
__int64 v178;
_UNICODE_STRING **v179;
__int64 v180;
v7 = Flags;
v102 = UserEvent;
v101 = v179;
Flagsa = Flags;
*(_QWORD *)v100 = v180;
TrustClassKeyBody = KeyBody;
v94 = (UINT8 *)PathToRoot;
v81 = 0;
*(_QWORD *)Handle = 0i64;
memset(v95, 0i64, sizeof(v95));
ObjectName = TargetKey->ObjectName;
memset(&ApcState, 0, sizeof(ApcState));
v69 = 0;
v11 = 0;
v70 = 0;
LastHive = 0i64;
Length = ObjectName->Length;
P = 0i64;
v99 = 0i64;
FileObject = 0i64;
if( (unsigned __int16)Length >= 2u )
{
LODWORD(v14) = Length >> 1;
if( Length >> 1 )
{
do
{
v15 = TargetKey->ObjectName;
v14 = (unsigned int)(v14 - 1);
if( v15->Buffer[v14] != 92 )
break;
v15->Length -= 2;
}
while( (_DWORD)v14 );
}
}
if( TargetKey->ObjectName->Length < 2u )
return -1073741811;
TransientPoolWithTag = (_PRIVILEGE_SET *)CmpAllocateTransientPoolWithTag(1ui64, 0x1B0ui64);
v18 = TransientPoolWithTag;
if( !TransientPoolWithTag )
return -1073741670;
memset(TransientPoolWithTag, 0i64, 0x1B0u);
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
--CurrentThread->Tcb.KernelApcDisable;
if( !ExAcquireRundownProtection((_EX_RUNDOWN_REF *)&CmpDummyThreadEvent + 132) )
{
KeLeaveCriticalRegionThread(KeGetCurrentThread());
CmSiFreeMemory(v18);
return -1073741431;
}
Flags_4 = v7 & 0x20;
v20 = (Flags_4 != 0 ? 119078913 : 51970049) | 0x8000000;
if( (v7 & 0x80u) == 0 )
v20 = Flags_4 != 0 ? 119078913 : 51970049;
v21 = v20 | 0x10000000;
if( (v7 & 0x200) == 0 )
v21 = v20;
SupplementalFlags_4 = v21;
v93 = v7 & 0x2000;
v22 = (v93 != 0) | 0x20;
if( (v7 & 0x8000) == 0 )
v22 = (v7 & 0x2000) != 0;
SupplementalFlags = v22;
v23 = CmpOpenHiveFile(SourceFile, 0, (VOID **)Handle, &v81, 8, (__int64)PathToRoot, 0i64, 0i64, (__int64)&P);
KeyCommon = v23;
if( v23 == -1073741772 )
{
v69 = 1;
v95[4] = (__int64)SourceFile;
LOBYTE(v95[5]) = 1;
}
else
{
if( v23 < 0 )
{
LODWORD(Point) = 16;
SetFailureLocation((_HIVE_LOAD_FAILURE *)v18, 0i64, _CmLoadAppKey, (unsigned int)v23, Point);
goto LABEL_103;
}
Object = 0i64;
v25 = ObReferenceObjectByHandle(
*(VOID **)Handle,
0i64,
(_OBJECT_TYPE *)**(&CmpDummyThreadEvent + 344),
0,
&Object,
0i64);
v26 = (_ADAPTER_OBJECT *)Object;
KeyCommon = v25;
FileObject = (_FILE_OBJECT *)Object;
ZwClose(Handle[0]);
if( KeyCommon < 0 )
{
LODWORD(Point) = 32;
SetFailureLocation((_HIVE_LOAD_FAILURE *)v18, 0i64, _CmLoadAppKey, (unsigned int)KeyCommon, Point);
goto LABEL_101;
}
v95[4] = (__int64)v26->AdapterObject.ContiguousTranslations;
LOBYTE(v95[5]) = 0;
}
KeInitializeEvent((INT64)&v95[6], 0, 0);
ExInitializePushLock((PULONG_PTR)&v95[9]);
v95[3] = (__int64)&v95[2];
v95[2] = (__int64)&v95[2];
v27 = (_ETHREAD *)KeGetCurrentThread();
--v27->Tcb.KernelApcDisable;
ExAcquirePushLockExclusiveEx((_EX_PUSH_LOCK *)&CmpDummyThreadEvent + 110, 0i64);
v28 = (__int64 *)*(&CmpDummyThreadEvent + 108);
if( (_UNKNOWN *)*(&CmpDummyThreadEvent + 108) == (_UNKNOWN *)((char *)&CmpDummyThreadEvent + 864) )
{
LABEL_32:
if( (_UNKNOWN *)**(&CmpDummyThreadEvent + 109) == (_UNKNOWN *)((char *)&CmpDummyThreadEvent + 864) )
{
v95[0] = (__int64)&CmpDummyThreadEvent + 864;
v95[1] = *(&CmpDummyThreadEvent + 109);
**(&CmpDummyThreadEvent + 109) = v95;
*(&CmpDummyThreadEvent + 109) = v95;
ExReleasePushLockEx((ULONG_PTR)&CmpDummyThreadEvent + 880, 0);
KeLeaveCriticalRegionThread(KeGetCurrentThread());
goto LABEL_34;
}
goto LABEL_124;
}
v29 = v95[4];
while( 1 )
{
if( !*((_BYTE *)v28 + 40) )
{
if( v28[4] == v29 )
break;
goto LABEL_31;
}
if( (unsigned __int8)RtlEqualUnicodeString((PCUNICODE_STRING)v28[4], SourceFile, 1u) )
break;
LABEL_31:
v28 = (__int64 *)*v28;
if( v28 == (__int64 *)((char *)&CmpDummyThreadEvent + 864) )
goto LABEL_32;
}
v30 = (_QWORD *)v28[3];
v31 = (__int64)(v28 + 2);
if( *v30 != v31 )
goto LABEL_124;
v95[3] = (__int64)v30;
v95[2] = v31;
*v30 = &v95[2];
*(_QWORD *)(v31 + 8) = &v95[2];
v32 = (_EX_RUNDOWN_REF *)v95[3];
ExAcquireRundownProtection((_EX_RUNDOWN_REF *)(v95[3] + 56));
ExReleasePushLockEx((ULONG_PTR)&CmpDummyThreadEvent + 880, 0);
KeLeaveCriticalRegionThread(KeGetCurrentThread());
KeWaitForSingleObject((UINT64)&v32[4], 0, 0, 0, 0i64);
ExReleaseRundownProtection(v32 + 7);
LABEL_34:
v33 = v94;
NewHive = 0i64;
LODWORD(Point) = SupplementalFlags_4;
LODWORD(HandleInformation) = SupplementalFlags;
Allocate = 1;
v34 = CmpCmdHiveOpen(SourceFile, 1u, &Allocate, &NewHive, Point, (UINT64)HandleInformation, v94);
while( 1 )
{
KeyCommon = v34;
if( !v34 )
{
LOBYTE(NeedRmLogStart) = (_BYTE)LoadKeyContext;
KeyCommon = CmpLoadKeyCommon(
NewHive,
TargetKey,
Flagsa,
TrustClassKeyBody,
0i64,
v102,
NeedRmLogStart,
v100[0],
Allocate);
goto LABEL_90;
}
if( v34 != -1073741757 || Flags_4 || v11 )
{
LODWORD(Pointa) = 48;
SetFailureLocation((_HIVE_LOAD_FAILURE *)v18, 0i64, _CmLoadAppKey, v34, Pointa);
goto LABEL_90;
}
if( v69 )
{
KeyCommon = CmpOpenHiveFile(SourceFile, 0, (VOID **)Handle, &v81, 8, (__int64)v33, 0i64, 0i64, (__int64)&P);
if( KeyCommon < 0 )
{
LODWORD(Pointa) = 64;
if( KeyCommon == -1073741772 )
KeyCommon = -1073741757;
LABEL_77:
v42 = (unsigned int)KeyCommon;
LABEL_78:
SetFailureLocation((_HIVE_LOAD_FAILURE *)v18, 0i64, _CmLoadAppKey, v42, Pointa);
goto LABEL_90;
}
v97 = 0i64;
v35 = ObReferenceObjectByHandle(
*(VOID **)Handle,
0i64,
(_OBJECT_TYPE *)**(&CmpDummyThreadEvent + 344),
0,
&v97,
0i64);
v26 = (_ADAPTER_OBJECT *)v97;
KeyCommon = v35;
FileObject = (_FILE_OBJECT *)v97;
ZwClose(Handle[0]);
if( KeyCommon < 0 )
{
LODWORD(Pointa) = 80;
SetFailureLocation((_HIVE_LOAD_FAILURE *)v18, 0i64, _CmLoadAppKey, (unsigned int)KeyCommon, Pointa);
goto LABEL_91;
}
v33 = v94;
}
LOCK_HIVE_LOAD();
CmpLockRegistryFreezeAware(1u);
LastHive = (volatile signed __int32 *)CmpGetLastHive();
if( LastHive )
break;
LABEL_73:
CmpUnlockRegistry();
UNLOCK_HIVE_LOAD();
LODWORD(Pointa) = SupplementalFlags_4;
LODWORD(HandleInformationa) = SupplementalFlags;
Allocate = 1;
NewHive = 0i64;
v34 = CmpCmdHiveOpen(SourceFile, 1u, &Allocate, &NewHive, Pointa, (UINT64)HandleInformationa, v33);
v11 = 1;
}
LABEL_44:
for( CompareAddress = *(&CmpDummyThreadEvent + 222); CompareAddress; CompareAddress = *(&CmpDummyThreadEvent + 222) )
{
CmpUnlockRegistry();
UNLOCK_HIVE_LOAD();
ExBlockOnAddressPushLock(
(_EX_PUSH_LOCK *)&CmpDummyThreadEvent + 112,
(char *)&CmpDummyThreadEvent + 888,
&CompareAddress,
4ui64,
0i64);
LOCK_HIVE_LOAD();
CmpLockRegistryFreezeAware(1u);
}
for( i = 0i64; ; i = (_CMHIVE *)v38 )
{
NextHive = CmpGetNextHive(i);
v38 = (__int64)NextHive;
if( !NextHive )
break;
HandleClosePending = NextHive->HandleClosePending;
if( HandleClosePending )
{
CmpUnlockRegistry();
UNLOCK_HIVE_LOAD();
ExBlockOnAddressPushLock(
(_EX_PUSH_LOCK *)(v38 + 4816),
(VOID *)(v38 + 4808),
(VOID *)&HandleClosePending,
4ui64,
0i64);
LOCK_HIVE_LOAD();
CmpLockRegistryFreezeAware(1u);
if( _InterlockedExchangeAdd((volatile signed __int32 *)(v38 + 4272), 0xFFFFFFFF) == 1 )
CmpDeleteHive((PVOID)v38);
if( (volatile signed __int32 *)v38 == LastHive )
break;
goto LABEL_44;
}
v39 = NextHive->FileHandles[0];
if( v39 && CmpIsThisSameFile(FileObject, v39) )
{
v40 = *(_DWORD *)(v38 + 4152);
v41 = *(_DWORD *)(v38 + 160) & 0x8000;
if( (v40 & 0x20) == 0 || (v40 & 0x40) != 0 )
{
CmpUnlockRegistry();
UNLOCK_HIVE_LOAD();
if( _InterlockedExchangeAdd((volatile signed __int32 *)(v38 + 4272), 0xFFFFFFFF) == 1 )
CmpDeleteHive((PVOID)v38);
v42 = 3221225539i64;
LODWORD(Pointa) = 96;
KeyCommon = -1073741757;
goto LABEL_78;
}
if( v93 )
{
if( !v41 && !CmpCheckHivePrimaryFileReadWriteAccess(P) )
{
CmpUnlockRegistry();
UNLOCK_HIVE_LOAD();
if( _InterlockedExchangeAdd((volatile signed __int32 *)(v38 + 4272), 0xFFFFFFFF) == 1 )
CmpDeleteHive((PVOID)v38);
KeyCommon = -1073741790;
LODWORD(Pointa) = 128;
goto LABEL_77;
}
}
else if( v41 )
{
CmpUnlockRegistry();
UNLOCK_HIVE_LOAD();
if( _InterlockedExchangeAdd((volatile signed __int32 *)(v38 + 4272), 0xFFFFFFFF) == 1 )
CmpDeleteHive((PVOID)v38);
v42 = 3221225539i64;
LODWORD(Pointa) = 112;
KeyCommon = -1073741757;
goto LABEL_78;
}
CmpAttachToRegistryProcess(&ApcState);
v43 = *(_CM_KEY_CONTROL_BLOCK **)(v38 + 2928);
v99 = v38;
KeyPath = 0i64;
CmpConstructNameWithStatus(v43, &KeyPath);
v44 = v101;
*v101 = KeyPath;
CmpDetachFromRegistryProcess(&ApcState);
if( !*v44 )
{
CmpUnlockRegistry();
UNLOCK_HIVE_LOAD();
KeyCommon = -1073741670;
if( _InterlockedExchangeAdd((volatile signed __int32 *)(v38 + 4272), 0xFFFFFFFF) == 1 )
CmpDeleteHive((PVOID)v38);
goto LABEL_90;
}
CmpReferenceKeyControlBlockUnsafe(*(volatile INT64 **)(v38 + 2928));
**(_QWORD **)v100 = *(_QWORD *)(v38 + 2928);
CmpUnlockRegistry();
UNLOCK_HIVE_LOAD();
KeyCommon = 0;
LABEL_69:
if( _InterlockedExchangeAdd((volatile signed __int32 *)(v38 + 4272), 0xFFFFFFFF) == 1 )
CmpDeleteHive((PVOID)v38);
break;
}
if( (volatile signed __int32 *)v38 == LastHive )
goto LABEL_69;
}
if( !v99 )
{
v33 = v94;
goto LABEL_73;
}
v70 = 1;
LABEL_90:
v26 = (_ADAPTER_OBJECT *)FileObject;
LABEL_91:
v45 = (_ETHREAD *)KeGetCurrentThread();
--v45->Tcb.KernelApcDisable;
ExAcquirePushLockExclusiveEx((_EX_PUSH_LOCK *)&CmpDummyThreadEvent + 110, 0i64);
v46 = v95[0];
v47 = v95[1];
if( *(__int64 **)(v95[0] + 8) != v95 || *(__int64 **)v95[1] != v95 )
goto LABEL_124;
*(_QWORD *)v95[1] = v95[0];
*(_QWORD *)(v46 + 8) = v47;
v48 = v95[2];
if( (__int64 *)v95[2] == &v95[2] )
goto LABEL_98;
v49 = v95[3];
v50 = (_QWORD *)(v95[2] - 16);
if( *(__int64 **)(v95[2] + 8) != &v95[2]
|| *(__int64 **)v95[3] != &v95[2]
|| (*(_QWORD *)v95[3] = v95[2],
*(_QWORD *)(v48 + 8) = v49,
v51 = (_QWORD *)*(&CmpDummyThreadEvent + 109),
(_UNKNOWN *)**(&CmpDummyThreadEvent + 109) != (_UNKNOWN *)((char *)&CmpDummyThreadEvent + 864)) )
{
LABEL_124:
__fastfail(3u);
}
*v50 = (char *)&CmpDummyThreadEvent + 864;
v50[1] = v51;
*v51 = v50;
*(&CmpDummyThreadEvent + 109) = v50;
LABEL_98:
ExReleasePushLockEx((ULONG_PTR)&CmpDummyThreadEvent + 880, 0);
KeLeaveCriticalRegionThread(KeGetCurrentThread());
KeSetEvent((PRKEVENT)&v95[6], 0, 0);
ExWaitForRundownProtectionRelease((_EX_RUNDOWN_REF *)&v95[9]);
if( LastHive && _InterlockedExchangeAdd(LastHive + 1068, 0xFFFFFFFF) == 1 )
CmpDeleteHive((PVOID)LastHive);
LABEL_101:
if( v26 )
HalPutDmaAdapter(v26);
LABEL_103:
if( P )
ExFreePoolWithTag(P, 0);
ExReleaseRundownProtection((_EX_RUNDOWN_REF *)&CmpDummyThreadEvent + 132);
KeLeaveCriticalRegionThread(KeGetCurrentThread());
if( KeyCommon >= 0 )
{
if( *(&stru_140C00F40 + 1148) > 5u && tlgKeywordOn((__int64)&stru_140C00F40 + 4592, 0x400000000008i64) )
{
v165 = 8i64;
v108 = 1i64;
v164 = &v108;
v53 = (unsigned __int8 *)&unk_1400220C0;
v90 = KeyCommon;
v166 = &v90;
v54 = 6;
v71 = v70;
v168 = &v71;
v170 = &v109;
v55 = (_EVENT_DATA_DESCRIPTOR *)&v163;
v167 = 4i64;
v169 = 1i64;
v109 = 0x1000000i64;
v171 = 8i64;
LABEL_122:
tlgWriteAgg((__int64)&stru_140C00F40 + 4592, v53, v52, v54, v55);
}
}
else if( LOWORD(v18->Privilege[0].Luid.LowPart)
|| HIWORD(v18->Privilege[0].Luid.LowPart)
|| BYTE2(v18[19].Privilege[0].Luid.HighPart) )
{
if( *(&stru_140C00F40 + 1148) > 5u )
{
if( tlgKeywordOn((__int64)&stru_140C00F40 + 4592, 0x400000000008i64) )
{
v106 = 1i64;
v113 = 8i64;
LowPart_high = HIWORD(v18->Privilege[0].Luid.LowPart);
v59 = BYTE2(v18[19].Privilege[0].Luid.HighPart);
v112 = &v106;
p_HighPart = (__int64)&v18->Privilege[0].Luid.HighPart;
v76 = v59;
v114 = &v88;
v116 = &v74;
v118 = &v75;
v120 = &v76;
Privilege = (unsigned __int16 *)v18[5].Privilege;
v130 = 12 * LowPart_high;
p_Attributes = (unsigned __int16 *)&v18[19].Privilege[0].Attributes;
v137 = &v107;
v75 = LowPart_high;
v125 = 12 * v57;
v127 = (unsigned __int16 *)&v18->Privilege[0].Luid + 1;
v88 = KeyCommon;
v115 = 4i64;
v74 = v57;
v117 = 2i64;
v119 = 2i64;
v121 = 2i64;
v122 = (unsigned __int16 *)v18->Privilege;
v123 = 2i64;
v124 = (unsigned __int16 *)&v18->Privilege[0].Luid.HighPart;
v126 = 0;
v128 = 2i64;
v131 = 0;
v132 = (unsigned __int16 *)&v18[19].Privilege[0].Luid.HighPart + 1;
v133 = 2i64;
v135 = 8 * v59;
v136 = 0;
v107 = 0x1000000i64;
v138 = 8i64;
tlgWriteAgg(
(__int64)&stru_140C00F40 + 4592,
(unsigned __int8 *)&byte_140022183,
(__int64)&v18[19].Privilege[0].Luid.HighPart + 2,
0xEu,
&v111);
v56 = *(&stru_140C00F40 + 1148);
}
else
{
p_HighPart = (__int64)&v18->Privilege[0].Luid.HighPart;
}
if( v56 > 5 && tlgKeywordOn((__int64)&stru_140C00F40 + 4592, 8i64) )
{
v89 = KeyCommon;
v140 = &v89;
LowPart = v18->Privilege[0].Luid.LowPart;
p_LowPart = &LowPart;
v61 = HIWORD(v18->Privilege[0].Luid.LowPart);
v144 = &v78;
v62 = BYTE2(v18[19].Privilege[0].Luid.HighPart);
v151 = 12 * LowPart;
v155 = (unsigned __int16 *)v18[5].Privilege;
v156 = 12 * v61;
v79 = v62;
v160 = (unsigned __int16 *)&v18[19].Privilege[0].Attributes;
v78 = v61;
v153 = (unsigned __int16 *)&v18->Privilege[0].Luid + 1;
v158 = (unsigned __int16 *)&v18[19].Privilege[0].Luid.HighPart + 1;
v161 = 8 * v62;
v141 = 4i64;
v143 = 2i64;
v145 = 2i64;
v146 = &v79;
v147 = 2i64;
v148 = (unsigned __int16 *)v18->Privilege;
v149 = 2i64;
v150 = p_HighPart;
v152 = 0;
v154 = 2i64;
v157 = 0;
v159 = 2i64;
v162 = 0;
tlgWriteTransfer_EtwWriteTransfer(
(__int64)&stru_140C00F40 + 4592,
(unsigned __int8 *)&dword_140021F84,
0i64,
0i64,
0xCu,
&v139);
}
}
}
else if( *(&stru_140C00F40 + 1148) > 5u && tlgKeywordOn((__int64)&stru_140C00F40 + 4592, 0x400000000008i64) )
{
v104 = 1i64;
v173 = &v104;
v53 = (unsigned __int8 *)word_14002212A;
v174 = 8i64;
v175 = &v87;
v54 = 5;
v87 = KeyCommon;
v177 = &v105;
v55 = &v172;
v176 = 4i64;
v105 = 0x1000000i64;
v178 = 8i64;
goto LABEL_122;
}
CmSiFreeMemory(v18);
return KeyCommon;
}Referenced by:
CmLoadDifferencingKey