Untitled
unknown
plain_text
2 years ago
357 kB
19
Indexable
typedef unsigned char undefined; typedef unsigned long long GUID; typedef pointer32 ImageBaseOffset32; typedef unsigned char bool; typedef unsigned char byte; typedef unsigned int dword; typedef long long longlong; typedef unsigned char uchar; typedef unsigned int uint; typedef unsigned long ulong; typedef unsigned long long ulonglong; typedef unsigned char undefined1; typedef unsigned short undefined2; typedef unsigned int undefined4; typedef unsigned long long undefined8; typedef unsigned short ushort; typedef unsigned short wchar16; typedef short wchar_t; typedef unsigned short word; typedef struct _s_HandlerType _s_HandlerType, *P_s_HandlerType; typedef struct _s_HandlerType HandlerType; typedef struct TypeDescriptor TypeDescriptor, *PTypeDescriptor; typedef int ptrdiff_t; struct TypeDescriptor { void * pVFTable; void * spare; char name[0]; }; struct _s_HandlerType { uint adjectives; struct TypeDescriptor * pType; ptrdiff_t dispCatchObj; void * addressOfHandler; }; typedef struct _com_error _com_error, *P_com_error; struct _com_error { // PlaceHolder Class Structure }; typedef struct _s__RTTIBaseClassDescriptor _s__RTTIBaseClassDescriptor, *P_s__RTTIBaseClassDescriptor; typedef struct _s__RTTIBaseClassDescriptor RTTIBaseClassDescriptor; typedef struct PMD PMD, *PPMD; typedef struct _s__RTTIClassHierarchyDescriptor _s__RTTIClassHierarchyDescriptor, *P_s__RTTIClassHierarchyDescriptor; typedef struct _s__RTTIClassHierarchyDescriptor RTTIClassHierarchyDescriptor; struct PMD { ptrdiff_t mdisp; ptrdiff_t pdisp; ptrdiff_t vdisp; }; struct _s__RTTIBaseClassDescriptor { struct TypeDescriptor * pTypeDescriptor; // ref to TypeDescriptor (RTTI 0) for class dword numContainedBases; // count of extended classes in BaseClassArray (RTTI 2) struct PMD where; // member displacement structure dword attributes; // bit flags RTTIClassHierarchyDescriptor * pClassHierarchyDescriptor; // ref to ClassHierarchyDescriptor (RTTI 3) for class }; struct _s__RTTIClassHierarchyDescriptor { dword signature; dword attributes; // bit flags dword numBaseClasses; // number of base classes (i.e. rtti1Count) RTTIBaseClassDescriptor * * pBaseClassArray; // ref to BaseClassArray (RTTI 2) }; typedef struct _s_UnwindMapEntry _s_UnwindMapEntry, *P_s_UnwindMapEntry; typedef struct _s_UnwindMapEntry UnwindMapEntry; typedef int __ehstate_t; struct _s_UnwindMapEntry { __ehstate_t toState; void (* action)(void); }; typedef union IMAGE_RESOURCE_DIRECTORY_ENTRY_DirectoryUnion IMAGE_RESOURCE_DIRECTORY_ENTRY_DirectoryUnion, *PIMAGE_RESOURCE_DIRECTORY_ENTRY_DirectoryUnion; typedef struct IMAGE_RESOURCE_DIRECTORY_ENTRY_DirectoryStruct IMAGE_RESOURCE_DIRECTORY_ENTRY_DirectoryStruct, *PIMAGE_RESOURCE_DIRECTORY_ENTRY_DirectoryStruct; struct IMAGE_RESOURCE_DIRECTORY_ENTRY_DirectoryStruct { dword OffsetToDirectory; dword DataIsDirectory; }; union IMAGE_RESOURCE_DIRECTORY_ENTRY_DirectoryUnion { dword OffsetToData; struct IMAGE_RESOURCE_DIRECTORY_ENTRY_DirectoryStruct IMAGE_RESOURCE_DIRECTORY_ENTRY_DirectoryStruct; }; typedef struct _s_TryBlockMapEntry _s_TryBlockMapEntry, *P_s_TryBlockMapEntry; struct _s_TryBlockMapEntry { __ehstate_t tryLow; __ehstate_t tryHigh; __ehstate_t catchHigh; int nCatches; HandlerType * pHandlerArray; }; typedef struct _s_TryBlockMapEntry TryBlockMapEntry; typedef struct _s__RTTICompleteObjectLocator _s__RTTICompleteObjectLocator, *P_s__RTTICompleteObjectLocator; struct _s__RTTICompleteObjectLocator { dword signature; dword offset; // offset of vbtable within class dword cdOffset; // constructor displacement offset struct TypeDescriptor * pTypeDescriptor; // ref to TypeDescriptor (RTTI 0) for class RTTIClassHierarchyDescriptor * pClassDescriptor; // ref to ClassHierarchyDescriptor (RTTI 3) }; typedef struct _s_ESTypeList _s_ESTypeList, *P_s_ESTypeList; struct _s_ESTypeList { int nCount; HandlerType * pTypeArray; }; typedef struct _s_ESTypeList ESTypeList; typedef struct CLIENT_ID CLIENT_ID, *PCLIENT_ID; struct CLIENT_ID { void * UniqueProcess; void * UniqueThread; }; typedef struct _s_FuncInfo _s_FuncInfo, *P_s_FuncInfo; typedef struct _s_FuncInfo FuncInfo; struct _s_FuncInfo { uint magicNumber_and_bbtFlags; __ehstate_t maxState; UnwindMapEntry * pUnwindMap; uint nTryBlocks; TryBlockMapEntry * pTryBlockMap; uint nIPMapEntries; void * pIPToStateMap; ESTypeList * pESTypeList; int EHFlags; }; typedef struct _s__RTTICompleteObjectLocator RTTICompleteObjectLocator; typedef struct tagINPUT tagINPUT, *PtagINPUT; typedef struct tagINPUT * LPINPUT; typedef ulong DWORD; typedef union _union_859 _union_859, *P_union_859; typedef struct tagMOUSEINPUT tagMOUSEINPUT, *PtagMOUSEINPUT; typedef struct tagMOUSEINPUT MOUSEINPUT; typedef struct tagKEYBDINPUT tagKEYBDINPUT, *PtagKEYBDINPUT; typedef struct tagKEYBDINPUT KEYBDINPUT; typedef struct tagHARDWAREINPUT tagHARDWAREINPUT, *PtagHARDWAREINPUT; typedef struct tagHARDWAREINPUT HARDWAREINPUT; typedef long LONG; typedef ulong ULONG_PTR; typedef ushort WORD; struct tagMOUSEINPUT { LONG dx; LONG dy; DWORD mouseData; DWORD dwFlags; DWORD time; ULONG_PTR dwExtraInfo; }; struct tagKEYBDINPUT { WORD wVk; WORD wScan; DWORD dwFlags; DWORD time; ULONG_PTR dwExtraInfo; }; struct tagHARDWAREINPUT { DWORD uMsg; WORD wParamL; WORD wParamH; }; union _union_859 { MOUSEINPUT mi; KEYBDINPUT ki; HARDWAREINPUT hi; }; struct tagINPUT { DWORD type; union _union_859 field1_0x4; }; typedef int BOOL; typedef struct HWND__ HWND__, *PHWND__; typedef struct HWND__ * HWND; typedef long LONG_PTR; typedef LONG_PTR LPARAM; typedef BOOL (* WNDENUMPROC)(HWND, LPARAM); struct HWND__ { int unused; }; typedef struct HMONITOR__ HMONITOR__, *PHMONITOR__; typedef struct HMONITOR__ * HMONITOR; typedef struct HDC__ HDC__, *PHDC__; typedef struct HDC__ * HDC; typedef struct tagRECT tagRECT, *PtagRECT; typedef struct tagRECT * LPRECT; typedef BOOL (* MONITORENUMPROC)(HMONITOR, HDC, LPRECT, LPARAM); struct HDC__ { int unused; }; struct HMONITOR__ { int unused; }; struct tagRECT { LONG left; LONG top; LONG right; LONG bottom; }; typedef struct exception exception, *Pexception; struct exception { // PlaceHolder Class Structure }; typedef struct basic_stringbuf<char,struct_std::char_traits<char>,class_std::allocator<char>_> basic_stringbuf<char,struct_std::char_traits<char>,class_std::allocator<char>_>, *Pbasic_stringbuf<char,struct_std::char_traits<char>,class_std::allocator<char>_>; struct basic_stringbuf<char,struct_std::char_traits<char>,class_std::allocator<char>_> { // PlaceHolder Class Structure }; // WARNING! conflicting data type names: /guiddef.h/GUID - /GUID typedef GUID IID; typedef struct _GUID _GUID, *P_GUID; struct _GUID { ulong Data1; ushort Data2; ushort Data3; uchar Data4[8]; }; typedef void * PVOID; typedef PVOID BCRYPT_KEY_HANDLE; typedef PVOID BCRYPT_HANDLE; typedef PVOID BCRYPT_ALG_HANDLE; typedef LONG NTSTATUS; typedef enum _SC_ENUM_TYPE { SC_ENUM_PROCESS_INFO=0 } _SC_ENUM_TYPE; typedef enum _SC_ENUM_TYPE SC_ENUM_TYPE; typedef struct SC_HANDLE__ SC_HANDLE__, *PSC_HANDLE__; typedef struct SC_HANDLE__ * SC_HANDLE; struct SC_HANDLE__ { int unused; }; typedef void * RPC_AUTH_IDENTITY_HANDLE; typedef struct _EXCEPTION_POINTERS _EXCEPTION_POINTERS, *P_EXCEPTION_POINTERS; typedef LONG (* PTOP_LEVEL_EXCEPTION_FILTER)(struct _EXCEPTION_POINTERS *); typedef struct _EXCEPTION_RECORD _EXCEPTION_RECORD, *P_EXCEPTION_RECORD; typedef struct _EXCEPTION_RECORD EXCEPTION_RECORD; typedef EXCEPTION_RECORD * PEXCEPTION_RECORD; typedef struct _CONTEXT _CONTEXT, *P_CONTEXT; typedef struct _CONTEXT CONTEXT; typedef CONTEXT * PCONTEXT; typedef struct _FLOATING_SAVE_AREA _FLOATING_SAVE_AREA, *P_FLOATING_SAVE_AREA; typedef struct _FLOATING_SAVE_AREA FLOATING_SAVE_AREA; typedef uchar BYTE; struct _FLOATING_SAVE_AREA { DWORD ControlWord; DWORD StatusWord; DWORD TagWord; DWORD ErrorOffset; DWORD ErrorSelector; DWORD DataOffset; DWORD DataSelector; BYTE RegisterArea[80]; DWORD Cr0NpxState; }; struct _CONTEXT { DWORD ContextFlags; DWORD Dr0; DWORD Dr1; DWORD Dr2; DWORD Dr3; DWORD Dr6; DWORD Dr7; FLOATING_SAVE_AREA FloatSave; DWORD SegGs; DWORD SegFs; DWORD SegEs; DWORD SegDs; DWORD Edi; DWORD Esi; DWORD Ebx; DWORD Edx; DWORD Ecx; DWORD Eax; DWORD Ebp; DWORD Eip; DWORD SegCs; DWORD EFlags; DWORD Esp; DWORD SegSs; BYTE ExtendedRegisters[512]; }; struct _EXCEPTION_RECORD { DWORD ExceptionCode; DWORD ExceptionFlags; struct _EXCEPTION_RECORD * ExceptionRecord; PVOID ExceptionAddress; DWORD NumberParameters; ULONG_PTR ExceptionInformation[15]; }; struct _EXCEPTION_POINTERS { PEXCEPTION_RECORD ExceptionRecord; PCONTEXT ContextRecord; }; typedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER; typedef union _SLIST_HEADER _SLIST_HEADER, *P_SLIST_HEADER; typedef union _SLIST_HEADER * PSLIST_HEADER; typedef double ULONGLONG; typedef struct _struct_299 _struct_299, *P_struct_299; typedef struct _SINGLE_LIST_ENTRY _SINGLE_LIST_ENTRY, *P_SINGLE_LIST_ENTRY; typedef struct _SINGLE_LIST_ENTRY SINGLE_LIST_ENTRY; struct _SINGLE_LIST_ENTRY { struct _SINGLE_LIST_ENTRY * Next; }; struct _struct_299 { SINGLE_LIST_ENTRY Next; WORD Depth; WORD Sequence; }; union _SLIST_HEADER { ULONGLONG Alignment; struct _struct_299 s; }; typedef wchar_t WCHAR; typedef long HRESULT; typedef struct _OSVERSIONINFOEXW _OSVERSIONINFOEXW, *P_OSVERSIONINFOEXW; struct _OSVERSIONINFOEXW { DWORD dwOSVersionInfoSize; DWORD dwMajorVersion; DWORD dwMinorVersion; DWORD dwBuildNumber; DWORD dwPlatformId; WCHAR szCSDVersion[128]; WORD wServicePackMajor; WORD wServicePackMinor; WORD wSuiteMask; BYTE wProductType; BYTE wReserved; }; typedef char CHAR; typedef CHAR * LPCSTR; typedef ULONGLONG DWORDLONG; typedef union _LARGE_INTEGER _LARGE_INTEGER, *P_LARGE_INTEGER; typedef struct _struct_19 _struct_19, *P_struct_19; typedef struct _struct_20 _struct_20, *P_struct_20; typedef double LONGLONG; struct _struct_20 { DWORD LowPart; LONG HighPart; }; struct _struct_19 { DWORD LowPart; LONG HighPart; }; union _LARGE_INTEGER { struct _struct_19 s; struct _struct_20 u; LONGLONG QuadPart; }; typedef union _LARGE_INTEGER LARGE_INTEGER; typedef struct _OSVERSIONINFOEXW * LPOSVERSIONINFOEXW; typedef CHAR * LPSTR; typedef WCHAR * LPWSTR; typedef WORD LANGID; typedef short SHORT; typedef WCHAR * LPCWSTR; typedef DWORD LCID; typedef void * HANDLE; typedef struct IMAGE_DOS_HEADER IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER; struct IMAGE_DOS_HEADER { char e_magic[2]; // Magic number word e_cblp; // Bytes of last page word e_cp; // Pages in file word e_crlc; // Relocations word e_cparhdr; // Size of header in paragraphs word e_minalloc; // Minimum extra paragraphs needed word e_maxalloc; // Maximum extra paragraphs needed word e_ss; // Initial (relative) SS value word e_sp; // Initial SP value word e_csum; // Checksum word e_ip; // Initial IP value word e_cs; // Initial (relative) CS value word e_lfarlc; // File address of relocation table word e_ovno; // Overlay number word e_res[4][4]; // Reserved words word e_oemid; // OEM identifier (for e_oeminfo) word e_oeminfo; // OEM information; e_oemid specific word e_res2[10][10]; // Reserved words dword e_lfanew; // File address of new exe header byte e_program[64]; // Actual DOS program }; typedef struct _CRYPTOAPI_BLOB _CRYPTOAPI_BLOB, *P_CRYPTOAPI_BLOB; typedef struct _CRYPTOAPI_BLOB CRYPT_INTEGER_BLOB; struct _CRYPTOAPI_BLOB { DWORD cbData; BYTE * pbData; }; typedef struct _CRYPTOAPI_BLOB CRYPT_OBJID_BLOB; typedef void * HCERTSTORE; typedef struct _CERT_PUBLIC_KEY_INFO _CERT_PUBLIC_KEY_INFO, *P_CERT_PUBLIC_KEY_INFO; typedef struct _CRYPT_ALGORITHM_IDENTIFIER _CRYPT_ALGORITHM_IDENTIFIER, *P_CRYPT_ALGORITHM_IDENTIFIER; typedef struct _CRYPT_ALGORITHM_IDENTIFIER CRYPT_ALGORITHM_IDENTIFIER; typedef struct _CRYPT_BIT_BLOB _CRYPT_BIT_BLOB, *P_CRYPT_BIT_BLOB; typedef struct _CRYPT_BIT_BLOB CRYPT_BIT_BLOB; struct _CRYPT_BIT_BLOB { DWORD cbData; BYTE * pbData; DWORD cUnusedBits; }; struct _CRYPT_ALGORITHM_IDENTIFIER { LPSTR pszObjId; CRYPT_OBJID_BLOB Parameters; }; struct _CERT_PUBLIC_KEY_INFO { CRYPT_ALGORITHM_IDENTIFIER Algorithm; CRYPT_BIT_BLOB PublicKey; }; typedef struct _CERT_PUBLIC_KEY_INFO * PCERT_PUBLIC_KEY_INFO; typedef ULONG_PTR HCRYPTPROV; typedef struct _CERT_PUBLIC_KEY_INFO CERT_PUBLIC_KEY_INFO; typedef struct _CERT_INFO _CERT_INFO, *P_CERT_INFO; typedef struct _CERT_INFO * PCERT_INFO; typedef struct _CRYPTOAPI_BLOB CERT_NAME_BLOB; typedef struct _FILETIME _FILETIME, *P_FILETIME; typedef struct _FILETIME FILETIME; typedef struct _CERT_EXTENSION _CERT_EXTENSION, *P_CERT_EXTENSION; typedef struct _CERT_EXTENSION * PCERT_EXTENSION; struct _CERT_EXTENSION { LPSTR pszObjId; BOOL fCritical; CRYPT_OBJID_BLOB Value; }; struct _FILETIME { DWORD dwLowDateTime; DWORD dwHighDateTime; }; struct _CERT_INFO { DWORD dwVersion; CRYPT_INTEGER_BLOB SerialNumber; CRYPT_ALGORITHM_IDENTIFIER SignatureAlgorithm; CERT_NAME_BLOB Issuer; FILETIME NotBefore; FILETIME NotAfter; CERT_NAME_BLOB Subject; CERT_PUBLIC_KEY_INFO SubjectPublicKeyInfo; CRYPT_BIT_BLOB IssuerUniqueId; CRYPT_BIT_BLOB SubjectUniqueId; DWORD cExtension; PCERT_EXTENSION rgExtension; }; typedef struct _CERT_CONTEXT _CERT_CONTEXT, *P_CERT_CONTEXT; typedef struct _CERT_CONTEXT CERT_CONTEXT; struct _CERT_CONTEXT { DWORD dwCertEncodingType; BYTE * pbCertEncoded; DWORD cbCertEncoded; PCERT_INFO pCertInfo; HCERTSTORE hCertStore; }; typedef CERT_CONTEXT * PCCERT_CONTEXT; typedef struct _CRYPTOAPI_BLOB * PCERT_NAME_BLOB; typedef ULONG_PTR HCRYPTPROV_LEGACY; typedef struct tagFUNCDESC tagFUNCDESC, *PtagFUNCDESC; typedef LONG DISPID; typedef DISPID MEMBERID; typedef LONG SCODE; typedef struct tagELEMDESC tagELEMDESC, *PtagELEMDESC; typedef struct tagELEMDESC ELEMDESC; typedef enum tagFUNCKIND { FUNC_VIRTUAL=0, FUNC_PUREVIRTUAL=1, FUNC_NONVIRTUAL=2, FUNC_STATIC=3, FUNC_DISPATCH=4 } tagFUNCKIND; typedef enum tagFUNCKIND FUNCKIND; typedef enum tagINVOKEKIND { INVOKE_FUNC=1, INVOKE_PROPERTYGET=2, INVOKE_PROPERTYPUT=4, INVOKE_PROPERTYPUTREF=8 } tagINVOKEKIND; typedef enum tagINVOKEKIND INVOKEKIND; typedef enum tagCALLCONV { CC_FASTCALL=0, CC_CDECL=1, CC_MSCPASCAL=2, CC_PASCAL=3, CC_MACPASCAL=4, CC_STDCALL=5, CC_FPFASTCALL=6, CC_SYSCALL=7, CC_MPWCDECL=8, CC_MPWPASCAL=9, CC_MAX=10 } tagCALLCONV; typedef enum tagCALLCONV CALLCONV; typedef struct tagTYPEDESC tagTYPEDESC, *PtagTYPEDESC; typedef struct tagTYPEDESC TYPEDESC; typedef union _union_2702 _union_2702, *P_union_2702; typedef union _union_2691 _union_2691, *P_union_2691; typedef ushort VARTYPE; typedef struct tagIDLDESC tagIDLDESC, *PtagIDLDESC; typedef struct tagIDLDESC IDLDESC; typedef struct tagPARAMDESC tagPARAMDESC, *PtagPARAMDESC; typedef struct tagPARAMDESC PARAMDESC; typedef struct tagARRAYDESC tagARRAYDESC, *PtagARRAYDESC; typedef DWORD HREFTYPE; typedef ushort USHORT; typedef struct tagPARAMDESCEX tagPARAMDESCEX, *PtagPARAMDESCEX; typedef struct tagPARAMDESCEX * LPPARAMDESCEX; typedef struct tagSAFEARRAYBOUND tagSAFEARRAYBOUND, *PtagSAFEARRAYBOUND; typedef struct tagSAFEARRAYBOUND SAFEARRAYBOUND; typedef DWORD ULONG; typedef struct tagVARIANT tagVARIANT, *PtagVARIANT; typedef struct tagVARIANT VARIANT; typedef VARIANT VARIANTARG; typedef union _union_2683 _union_2683, *P_union_2683; typedef struct __tagVARIANT __tagVARIANT, *P__tagVARIANT; typedef struct tagDEC tagDEC, *PtagDEC; typedef struct tagDEC DECIMAL; typedef union _union_2685 _union_2685, *P_union_2685; typedef union _union_1695 _union_1695, *P_union_1695; typedef union _union_1697 _union_1697, *P_union_1697; typedef float FLOAT; typedef double DOUBLE; typedef short VARIANT_BOOL; typedef union tagCY tagCY, *PtagCY; typedef union tagCY CY; typedef double DATE; typedef WCHAR OLECHAR; typedef OLECHAR * BSTR; typedef struct IUnknown IUnknown, *PIUnknown; typedef struct IDispatch IDispatch, *PIDispatch; typedef struct tagSAFEARRAY tagSAFEARRAY, *PtagSAFEARRAY; typedef struct tagSAFEARRAY SAFEARRAY; typedef int INT; typedef uint UINT; typedef struct __tagBRECORD __tagBRECORD, *P__tagBRECORD; typedef struct _struct_1696 _struct_1696, *P_struct_1696; typedef struct _struct_1698 _struct_1698, *P_struct_1698; typedef struct _struct_1693 _struct_1693, *P_struct_1693; typedef struct IUnknownVtbl IUnknownVtbl, *PIUnknownVtbl; typedef struct IDispatchVtbl IDispatchVtbl, *PIDispatchVtbl; typedef struct ITypeInfo ITypeInfo, *PITypeInfo; typedef OLECHAR * LPOLESTR; typedef struct tagDISPPARAMS tagDISPPARAMS, *PtagDISPPARAMS; typedef struct tagDISPPARAMS DISPPARAMS; typedef struct tagEXCEPINFO tagEXCEPINFO, *PtagEXCEPINFO; typedef struct tagEXCEPINFO EXCEPINFO; typedef struct IRecordInfo IRecordInfo, *PIRecordInfo; typedef struct ITypeInfoVtbl ITypeInfoVtbl, *PITypeInfoVtbl; typedef struct tagTYPEATTR tagTYPEATTR, *PtagTYPEATTR; typedef struct tagTYPEATTR TYPEATTR; typedef struct ITypeComp ITypeComp, *PITypeComp; typedef struct tagFUNCDESC FUNCDESC; typedef struct tagVARDESC tagVARDESC, *PtagVARDESC; typedef struct tagVARDESC VARDESC; typedef struct ITypeLib ITypeLib, *PITypeLib; typedef struct IRecordInfoVtbl IRecordInfoVtbl, *PIRecordInfoVtbl; typedef OLECHAR * LPCOLESTR; typedef enum tagTYPEKIND { TKIND_ENUM=0, TKIND_RECORD=1, TKIND_MODULE=2, TKIND_INTERFACE=3, TKIND_DISPATCH=4, TKIND_COCLASS=5, TKIND_ALIAS=6, TKIND_UNION=7, TKIND_MAX=8 } tagTYPEKIND; typedef enum tagTYPEKIND TYPEKIND; typedef struct ITypeCompVtbl ITypeCompVtbl, *PITypeCompVtbl; typedef enum tagDESCKIND { DESCKIND_NONE=0, DESCKIND_FUNCDESC=1, DESCKIND_VARDESC=2, DESCKIND_TYPECOMP=3, DESCKIND_IMPLICITAPPOBJ=4, DESCKIND_MAX=5 } tagDESCKIND; typedef enum tagDESCKIND DESCKIND; typedef union tagBINDPTR tagBINDPTR, *PtagBINDPTR; typedef union tagBINDPTR BINDPTR; typedef union _union_2711 _union_2711, *P_union_2711; typedef enum tagVARKIND { VAR_PERINSTANCE=0, VAR_STATIC=1, VAR_CONST=2, VAR_DISPATCH=3 } tagVARKIND; typedef enum tagVARKIND VARKIND; typedef struct ITypeLibVtbl ITypeLibVtbl, *PITypeLibVtbl; typedef struct tagTLIBATTR tagTLIBATTR, *PtagTLIBATTR; typedef struct tagTLIBATTR TLIBATTR; typedef enum tagSYSKIND { SYS_WIN16=0, SYS_WIN32=1, SYS_MAC=2, SYS_WIN64=3 } tagSYSKIND; typedef enum tagSYSKIND SYSKIND; struct _struct_1693 { ulong Lo; long Hi; }; union tagCY { struct _struct_1693 s; LONGLONG int64; }; struct _struct_1698 { ULONG Lo32; ULONG Mid32; }; union _union_1697 { struct _struct_1698 s2; ULONGLONG Lo64; }; struct _struct_1696 { BYTE scale; BYTE sign; }; union _union_1695 { struct _struct_1696 s; USHORT signscale; }; struct tagDEC { USHORT wReserved; union _union_1695 u; ULONG Hi32; union _union_1697 u2; }; struct __tagBRECORD { PVOID pvRecord; struct IRecordInfo * pRecInfo; }; union _union_2685 { LONGLONG llVal; LONG lVal; BYTE bVal; SHORT iVal; FLOAT fltVal; DOUBLE dblVal; VARIANT_BOOL boolVal; SCODE scode; CY cyVal; DATE date; BSTR bstrVal; struct IUnknown * punkVal; struct IDispatch * pdispVal; SAFEARRAY * parray; BYTE * pbVal; SHORT * piVal; LONG * plVal; LONGLONG * pllVal; FLOAT * pfltVal; DOUBLE * pdblVal; VARIANT_BOOL * pboolVal; SCODE * pscode; CY * pcyVal; DATE * pdate; BSTR * pbstrVal; struct IUnknown * * ppunkVal; struct IDispatch * * ppdispVal; SAFEARRAY * * pparray; VARIANT * pvarVal; PVOID byref; CHAR cVal; USHORT uiVal; ULONG ulVal; ULONGLONG ullVal; INT intVal; UINT uintVal; DECIMAL * pdecVal; CHAR * pcVal; USHORT * puiVal; ULONG * pulVal; ULONGLONG * pullVal; INT * pintVal; UINT * puintVal; struct __tagBRECORD brecVal; }; struct __tagVARIANT { VARTYPE vt; WORD wReserved1; WORD wReserved2; WORD wReserved3; union _union_2685 n3; }; union _union_2683 { struct __tagVARIANT n2; DECIMAL decVal; }; union _union_2691 { struct tagTYPEDESC * lptdesc; struct tagARRAYDESC * lpadesc; HREFTYPE hreftype; }; struct tagTYPEDESC { union _union_2691 u; VARTYPE vt; }; struct tagIDLDESC { ULONG_PTR dwReserved; USHORT wIDLFlags; }; struct tagPARAMDESC { LPPARAMDESCEX pparamdescex; USHORT wParamFlags; }; union _union_2702 { IDLDESC idldesc; PARAMDESC paramdesc; }; struct tagELEMDESC { TYPEDESC tdesc; union _union_2702 u; }; struct tagFUNCDESC { MEMBERID memid; SCODE * lprgscode; ELEMDESC * lprgelemdescParam; FUNCKIND funckind; INVOKEKIND invkind; CALLCONV callconv; SHORT cParams; SHORT cParamsOpt; SHORT oVft; SHORT cScodes; ELEMDESC elemdescFunc; WORD wFuncFlags; }; struct tagVARIANT { union _union_2683 n1; }; struct tagPARAMDESCEX { ULONG cBytes; VARIANTARG varDefaultValue; }; union _union_2711 { ULONG oInst; VARIANT * lpvarValue; }; struct tagVARDESC { MEMBERID memid; LPOLESTR lpstrSchema; union _union_2711 u; ELEMDESC elemdescVar; WORD wVarFlags; VARKIND varkind; }; struct ITypeCompVtbl { HRESULT (* QueryInterface)(struct ITypeComp *, IID *, void * *); ULONG (* AddRef)(struct ITypeComp *); ULONG (* Release)(struct ITypeComp *); HRESULT (* Bind)(struct ITypeComp *, LPOLESTR, ULONG, WORD, struct ITypeInfo * *, DESCKIND *, BINDPTR *); HRESULT (* BindType)(struct ITypeComp *, LPOLESTR, ULONG, struct ITypeInfo * *, struct ITypeComp * *); }; struct tagSAFEARRAYBOUND { ULONG cElements; LONG lLbound; }; struct tagSAFEARRAY { USHORT cDims; USHORT fFeatures; ULONG cbElements; ULONG cLocks; PVOID pvData; SAFEARRAYBOUND rgsabound[1]; }; struct ITypeInfoVtbl { HRESULT (* QueryInterface)(struct ITypeInfo *, IID *, void * *); ULONG (* AddRef)(struct ITypeInfo *); ULONG (* Release)(struct ITypeInfo *); HRESULT (* GetTypeAttr)(struct ITypeInfo *, TYPEATTR * *); HRESULT (* GetTypeComp)(struct ITypeInfo *, struct ITypeComp * *); HRESULT (* GetFuncDesc)(struct ITypeInfo *, UINT, FUNCDESC * *); HRESULT (* GetVarDesc)(struct ITypeInfo *, UINT, VARDESC * *); HRESULT (* GetNames)(struct ITypeInfo *, MEMBERID, BSTR *, UINT, UINT *); HRESULT (* GetRefTypeOfImplType)(struct ITypeInfo *, UINT, HREFTYPE *); HRESULT (* GetImplTypeFlags)(struct ITypeInfo *, UINT, INT *); HRESULT (* GetIDsOfNames)(struct ITypeInfo *, LPOLESTR *, UINT, MEMBERID *); HRESULT (* Invoke)(struct ITypeInfo *, PVOID, MEMBERID, WORD, DISPPARAMS *, VARIANT *, EXCEPINFO *, UINT *); HRESULT (* GetDocumentation)(struct ITypeInfo *, MEMBERID, BSTR *, BSTR *, DWORD *, BSTR *); HRESULT (* GetDllEntry)(struct ITypeInfo *, MEMBERID, INVOKEKIND, BSTR *, BSTR *, WORD *); HRESULT (* GetRefTypeInfo)(struct ITypeInfo *, HREFTYPE, struct ITypeInfo * *); HRESULT (* AddressOfMember)(struct ITypeInfo *, MEMBERID, INVOKEKIND, PVOID *); HRESULT (* CreateInstance)(struct ITypeInfo *, struct IUnknown *, IID *, PVOID *); HRESULT (* GetMops)(struct ITypeInfo *, MEMBERID, BSTR *); HRESULT (* GetContainingTypeLib)(struct ITypeInfo *, struct ITypeLib * *, UINT *); void (* ReleaseTypeAttr)(struct ITypeInfo *, TYPEATTR *); void (* ReleaseFuncDesc)(struct ITypeInfo *, FUNCDESC *); void (* ReleaseVarDesc)(struct ITypeInfo *, VARDESC *); }; struct ITypeLibVtbl { HRESULT (* QueryInterface)(struct ITypeLib *, IID *, void * *); ULONG (* AddRef)(struct ITypeLib *); ULONG (* Release)(struct ITypeLib *); UINT (* GetTypeInfoCount)(struct ITypeLib *); HRESULT (* GetTypeInfo)(struct ITypeLib *, UINT, struct ITypeInfo * *); HRESULT (* GetTypeInfoType)(struct ITypeLib *, UINT, TYPEKIND *); HRESULT (* GetTypeInfoOfGuid)(struct ITypeLib *, GUID *, struct ITypeInfo * *); HRESULT (* GetLibAttr)(struct ITypeLib *, TLIBATTR * *); HRESULT (* GetTypeComp)(struct ITypeLib *, struct ITypeComp * *); HRESULT (* GetDocumentation)(struct ITypeLib *, INT, BSTR *, BSTR *, DWORD *, BSTR *); HRESULT (* IsName)(struct ITypeLib *, LPOLESTR, ULONG, BOOL *); HRESULT (* FindName)(struct ITypeLib *, LPOLESTR, ULONG, struct ITypeInfo * *, MEMBERID *, USHORT *); void (* ReleaseTLibAttr)(struct ITypeLib *, TLIBATTR *); }; struct tagTLIBATTR { GUID guid; LCID lcid; SYSKIND syskind; WORD wMajorVerNum; WORD wMinorVerNum; WORD wLibFlags; }; struct tagARRAYDESC { TYPEDESC tdescElem; USHORT cDims; SAFEARRAYBOUND rgbounds[1]; }; struct ITypeComp { struct ITypeCompVtbl * lpVtbl; }; struct IRecordInfo { struct IRecordInfoVtbl * lpVtbl; }; struct tagTYPEATTR { GUID guid; LCID lcid; DWORD dwReserved; MEMBERID memidConstructor; MEMBERID memidDestructor; LPOLESTR lpstrSchema; ULONG cbSizeInstance; TYPEKIND typekind; WORD cFuncs; WORD cVars; WORD cImplTypes; WORD cbSizeVft; WORD cbAlignment; WORD wTypeFlags; WORD wMajorVerNum; WORD wMinorVerNum; TYPEDESC tdescAlias; IDLDESC idldescType; }; struct IRecordInfoVtbl { HRESULT (* QueryInterface)(struct IRecordInfo *, IID *, void * *); ULONG (* AddRef)(struct IRecordInfo *); ULONG (* Release)(struct IRecordInfo *); HRESULT (* RecordInit)(struct IRecordInfo *, PVOID); HRESULT (* RecordClear)(struct IRecordInfo *, PVOID); HRESULT (* RecordCopy)(struct IRecordInfo *, PVOID, PVOID); HRESULT (* GetGuid)(struct IRecordInfo *, GUID *); HRESULT (* GetName)(struct IRecordInfo *, BSTR *); HRESULT (* GetSize)(struct IRecordInfo *, ULONG *); HRESULT (* GetTypeInfo)(struct IRecordInfo *, struct ITypeInfo * *); HRESULT (* GetField)(struct IRecordInfo *, PVOID, LPCOLESTR, VARIANT *); HRESULT (* GetFieldNoCopy)(struct IRecordInfo *, PVOID, LPCOLESTR, VARIANT *, PVOID *); HRESULT (* PutField)(struct IRecordInfo *, ULONG, PVOID, LPCOLESTR, VARIANT *); HRESULT (* PutFieldNoCopy)(struct IRecordInfo *, ULONG, PVOID, LPCOLESTR, VARIANT *); HRESULT (* GetFieldNames)(struct IRecordInfo *, ULONG *, BSTR *); BOOL (* IsMatchingType)(struct IRecordInfo *, struct IRecordInfo *); PVOID (* RecordCreate)(struct IRecordInfo *); HRESULT (* RecordCreateCopy)(struct IRecordInfo *, PVOID, PVOID *); HRESULT (* RecordDestroy)(struct IRecordInfo *, PVOID); }; struct tagDISPPARAMS { VARIANTARG * rgvarg; DISPID * rgdispidNamedArgs; UINT cArgs; UINT cNamedArgs; }; union tagBINDPTR { FUNCDESC * lpfuncdesc; VARDESC * lpvardesc; struct ITypeComp * lptcomp; }; struct IDispatch { struct IDispatchVtbl * lpVtbl; }; struct IUnknownVtbl { HRESULT (* QueryInterface)(struct IUnknown *, IID *, void * *); ULONG (* AddRef)(struct IUnknown *); ULONG (* Release)(struct IUnknown *); }; struct IDispatchVtbl { HRESULT (* QueryInterface)(struct IDispatch *, IID *, void * *); ULONG (* AddRef)(struct IDispatch *); ULONG (* Release)(struct IDispatch *); HRESULT (* GetTypeInfoCount)(struct IDispatch *, UINT *); HRESULT (* GetTypeInfo)(struct IDispatch *, UINT, LCID, struct ITypeInfo * *); HRESULT (* GetIDsOfNames)(struct IDispatch *, IID *, LPOLESTR *, UINT, LCID, DISPID *); HRESULT (* Invoke)(struct IDispatch *, DISPID, IID *, LCID, WORD, DISPPARAMS *, VARIANT *, EXCEPINFO *, UINT *); }; struct IUnknown { struct IUnknownVtbl * lpVtbl; }; struct ITypeLib { struct ITypeLibVtbl * lpVtbl; }; struct ITypeInfo { struct ITypeInfoVtbl * lpVtbl; }; struct tagEXCEPINFO { WORD wCode; WORD wReserved; BSTR bstrSource; BSTR bstrDescription; BSTR bstrHelpFile; DWORD dwHelpContext; PVOID pvReserved; HRESULT (* pfnDeferredFillIn)(struct tagEXCEPINFO *); SCODE scode; }; typedef uint UINT_PTR; typedef ULONG_PTR SIZE_T; typedef struct DotNetPdbInfo DotNetPdbInfo, *PDotNetPdbInfo; struct DotNetPdbInfo { char signature[4]; GUID guid; dword age; char pdbpath[66]; }; // WARNING! conflicting data type names: /WinDef.h/ULONG - /wtypes.h/ULONG typedef uchar UCHAR; typedef UCHAR * PUCHAR; typedef UINT_PTR WPARAM; typedef DWORD * LPDWORD; typedef struct tagRECT RECT; typedef RECT * LPCRECT; typedef DWORD * PDWORD; typedef uint * PUINT; typedef struct HINSTANCE__ HINSTANCE__, *PHINSTANCE__; typedef struct HINSTANCE__ * HINSTANCE; struct HINSTANCE__ { int unused; }; typedef void * LPVOID; typedef HINSTANCE HMODULE; typedef HANDLE HLOCAL; typedef BYTE * LPBYTE; typedef struct _FILETIME * LPFILETIME; typedef int (* FARPROC)(void); typedef void * LPCVOID; typedef union IMAGE_RESOURCE_DIRECTORY_ENTRY IMAGE_RESOURCE_DIRECTORY_ENTRY, *PIMAGE_RESOURCE_DIRECTORY_ENTRY; typedef union IMAGE_RESOURCE_DIRECTORY_ENTRY_NameUnion IMAGE_RESOURCE_DIRECTORY_ENTRY_NameUnion, *PIMAGE_RESOURCE_DIRECTORY_ENTRY_NameUnion; typedef struct IMAGE_RESOURCE_DIRECTORY_ENTRY_NameStruct IMAGE_RESOURCE_DIRECTORY_ENTRY_NameStruct, *PIMAGE_RESOURCE_DIRECTORY_ENTRY_NameStruct; struct IMAGE_RESOURCE_DIRECTORY_ENTRY_NameStruct { dword NameOffset; dword NameIsString; }; union IMAGE_RESOURCE_DIRECTORY_ENTRY_NameUnion { struct IMAGE_RESOURCE_DIRECTORY_ENTRY_NameStruct IMAGE_RESOURCE_DIRECTORY_ENTRY_NameStruct; dword Name; word Id; }; union IMAGE_RESOURCE_DIRECTORY_ENTRY { union IMAGE_RESOURCE_DIRECTORY_ENTRY_NameUnion NameUnion; union IMAGE_RESOURCE_DIRECTORY_ENTRY_DirectoryUnion DirectoryUnion; }; typedef struct IMAGE_OPTIONAL_HEADER32 IMAGE_OPTIONAL_HEADER32, *PIMAGE_OPTIONAL_HEADER32; typedef struct IMAGE_DATA_DIRECTORY IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY; struct IMAGE_DATA_DIRECTORY { ImageBaseOffset32 VirtualAddress; dword Size; }; struct IMAGE_OPTIONAL_HEADER32 { word Magic; byte MajorLinkerVersion; byte MinorLinkerVersion; dword SizeOfCode; dword SizeOfInitializedData; dword SizeOfUninitializedData; ImageBaseOffset32 AddressOfEntryPoint; ImageBaseOffset32 BaseOfCode; ImageBaseOffset32 BaseOfData; pointer32 ImageBase; dword SectionAlignment; dword FileAlignment; word MajorOperatingSystemVersion; word MinorOperatingSystemVersion; word MajorImageVersion; word MinorImageVersion; word MajorSubsystemVersion; word MinorSubsystemVersion; dword Win32VersionValue; dword SizeOfImage; dword SizeOfHeaders; dword CheckSum; word Subsystem; word DllCharacteristics; dword SizeOfStackReserve; dword SizeOfStackCommit; dword SizeOfHeapReserve; dword SizeOfHeapCommit; dword LoaderFlags; dword NumberOfRvaAndSizes; struct IMAGE_DATA_DIRECTORY DataDirectory[16]; }; typedef struct IMAGE_SECTION_HEADER IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER; typedef union Misc Misc, *PMisc; typedef enum SectionFlags { IMAGE_SCN_TYPE_NO_PAD=8, IMAGE_SCN_RESERVED_0001=16, IMAGE_SCN_CNT_CODE=32, IMAGE_SCN_CNT_INITIALIZED_DATA=64, IMAGE_SCN_CNT_UNINITIALIZED_DATA=128, IMAGE_SCN_LNK_OTHER=256, IMAGE_SCN_LNK_INFO=512, IMAGE_SCN_RESERVED_0040=1024, IMAGE_SCN_LNK_REMOVE=2048, IMAGE_SCN_LNK_COMDAT=4096, IMAGE_SCN_GPREL=32768, IMAGE_SCN_MEM_16BIT=131072, IMAGE_SCN_MEM_PURGEABLE=131072, IMAGE_SCN_MEM_LOCKED=262144, IMAGE_SCN_MEM_PRELOAD=524288, IMAGE_SCN_ALIGN_1BYTES=1048576, IMAGE_SCN_ALIGN_2BYTES=2097152, IMAGE_SCN_ALIGN_4BYTES=3145728, IMAGE_SCN_ALIGN_8BYTES=4194304, IMAGE_SCN_ALIGN_16BYTES=5242880, IMAGE_SCN_ALIGN_32BYTES=6291456, IMAGE_SCN_ALIGN_64BYTES=7340032, IMAGE_SCN_ALIGN_128BYTES=8388608, IMAGE_SCN_ALIGN_256BYTES=9437184, IMAGE_SCN_ALIGN_512BYTES=10485760, IMAGE_SCN_ALIGN_1024BYTES=11534336, IMAGE_SCN_ALIGN_2048BYTES=12582912, IMAGE_SCN_ALIGN_4096BYTES=13631488, IMAGE_SCN_ALIGN_8192BYTES=14680064, IMAGE_SCN_LNK_NRELOC_OVFL=16777216, IMAGE_SCN_MEM_DISCARDABLE=33554432, IMAGE_SCN_MEM_NOT_CACHED=67108864, IMAGE_SCN_MEM_NOT_PAGED=134217728, IMAGE_SCN_MEM_SHARED=268435456, IMAGE_SCN_MEM_EXECUTE=536870912, IMAGE_SCN_MEM_READ=1073741824, IMAGE_SCN_MEM_WRITE=2147483648 } SectionFlags; union Misc { dword PhysicalAddress; dword VirtualSize; }; struct IMAGE_SECTION_HEADER { char Name[8]; union Misc Misc; ImageBaseOffset32 VirtualAddress; dword SizeOfRawData; dword PointerToRawData; dword PointerToRelocations; dword PointerToLinenumbers; word NumberOfRelocations; word NumberOfLinenumbers; enum SectionFlags Characteristics; }; typedef struct IMAGE_RESOURCE_DATA_ENTRY IMAGE_RESOURCE_DATA_ENTRY, *PIMAGE_RESOURCE_DATA_ENTRY; struct IMAGE_RESOURCE_DATA_ENTRY { dword OffsetToData; dword Size; dword CodePage; dword Reserved; }; typedef enum IMAGE_GUARD_FLAGS { IMAGE_GUARD_CF_INSTRUMENTED=256, IMAGE_GUARD_CFW_INSTRUMENTED=512, IMAGE_GUARD_CF_FUNCTION_TABLE_PRESENT=1024, IMAGE_GUARD_SECURITY_COOKIE_UNUSED=2048, IMAGE_GUARD_PROTECT_DELAYLOAD_IAT=4096, IMAGE_GUARD_DELAYLOAD_IAT_IN_ITS_OWN_SECTION=8192, IMAGE_GUARD_CF_EXPORT_SUPPRESSION_INFO_PRESENT=16384, IMAGE_GUARD_CF_ENABLE_EXPORT_SUPPRESSION=32768, IMAGE_GUARD_CF_LONGJUMP_TABLE_PRESENT=65536, IMAGE_GUARD_RF_INSTRUMENTED=131072, IMAGE_GUARD_RF_ENABLE=262144, IMAGE_GUARD_RF_STRICT=524288, IMAGE_GUARD_CF_FUNCTION_TABLE_SIZE_MASK_1=268435456, IMAGE_GUARD_CF_FUNCTION_TABLE_SIZE_MASK_2=536870912, IMAGE_GUARD_CF_FUNCTION_TABLE_SIZE_MASK_4=1073741824, IMAGE_GUARD_CF_FUNCTION_TABLE_SIZE_MASK_8=2147483648 } IMAGE_GUARD_FLAGS; typedef struct IMAGE_RESOURCE_DIRECTORY IMAGE_RESOURCE_DIRECTORY, *PIMAGE_RESOURCE_DIRECTORY; struct IMAGE_RESOURCE_DIRECTORY { dword Characteristics; dword TimeDateStamp; word MajorVersion; word MinorVersion; word NumberOfNamedEntries; word NumberOfIdEntries; }; typedef struct IMAGE_LOAD_CONFIG_CODE_INTEGRITY IMAGE_LOAD_CONFIG_CODE_INTEGRITY, *PIMAGE_LOAD_CONFIG_CODE_INTEGRITY; struct IMAGE_LOAD_CONFIG_CODE_INTEGRITY { word Flags; word Catalog; dword CatalogOffset; dword Reserved; }; typedef struct IMAGE_DIRECTORY_ENTRY_EXPORT IMAGE_DIRECTORY_ENTRY_EXPORT, *PIMAGE_DIRECTORY_ENTRY_EXPORT; struct IMAGE_DIRECTORY_ENTRY_EXPORT { dword Characteristics; dword TimeDateStamp; word MajorVersion; word MinorVersion; dword Name; dword Base; dword NumberOfFunctions; dword NumberOfNames; dword AddressOfFunctions; dword AddressOfNames; dword AddressOfNameOrdinals; }; typedef struct IMAGE_DEBUG_DIRECTORY IMAGE_DEBUG_DIRECTORY, *PIMAGE_DEBUG_DIRECTORY; struct IMAGE_DEBUG_DIRECTORY { dword Characteristics; dword TimeDateStamp; word MajorVersion; word MinorVersion; dword Type; dword SizeOfData; dword AddressOfRawData; dword PointerToRawData; }; typedef struct IMAGE_FILE_HEADER IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER; struct IMAGE_FILE_HEADER { word Machine; // 332 word NumberOfSections; dword TimeDateStamp; dword PointerToSymbolTable; dword NumberOfSymbols; word SizeOfOptionalHeader; word Characteristics; }; typedef struct IMAGE_NT_HEADERS32 IMAGE_NT_HEADERS32, *PIMAGE_NT_HEADERS32; struct IMAGE_NT_HEADERS32 { char Signature[4]; struct IMAGE_FILE_HEADER FileHeader; struct IMAGE_OPTIONAL_HEADER32 OptionalHeader; }; typedef struct IMAGE_LOAD_CONFIG_DIRECTORY32 IMAGE_LOAD_CONFIG_DIRECTORY32, *PIMAGE_LOAD_CONFIG_DIRECTORY32; struct IMAGE_LOAD_CONFIG_DIRECTORY32 { dword Size; dword TimeDateStamp; word MajorVersion; word MinorVersion; dword GlobalFlagsClear; dword GlobalFlagsSet; dword CriticalSectionDefaultTimeout; dword DeCommitFreeBlockThreshold; dword DeCommitTotalFreeThreshold; pointer32 LockPrefixTable; dword MaximumAllocationSize; dword VirtualMemoryThreshold; dword ProcessHeapFlags; dword ProcessAffinityMask; word CsdVersion; word DependentLoadFlags; pointer32 EditList; pointer32 SecurityCookie; pointer32 SEHandlerTable; dword SEHandlerCount; pointer32 GuardCFCCheckFunctionPointer; pointer32 GuardCFDispatchFunctionPointer; pointer32 GuardCFFunctionTable; dword GuardCFFunctionCount; enum IMAGE_GUARD_FLAGS GuardFlags; struct IMAGE_LOAD_CONFIG_CODE_INTEGRITY CodeIntegrity; pointer32 GuardAddressTakenIatEntryTable; dword GuardAddressTakenIatEntryCount; pointer32 GuardLongJumpTargetTable; dword GuardLongJumpTargetCount; pointer32 DynamicValueRelocTable; pointer32 CHPEMetadataPointer; pointer32 GuardRFFailureRoutine; pointer32 GuardRFFailureRoutineFunctionPointer; dword DynamicValueRelocTableOffset; word DynamicValueRelocTableSection; word Reserved1; pointer32 GuardRFVerifyStackPointerFunctionPointer; dword HotPatchTableOffset; dword Reserved2; dword Reserved3; }; typedef void (* PMFN)(void *); typedef struct _s_CatchableType _s_CatchableType, *P_s_CatchableType; // WARNING! conflicting data type names: /ehdata.h/TypeDescriptor - /TypeDescriptor struct _s_CatchableType { uint properties; struct TypeDescriptor * pType; struct PMD thisDisplacement; int sizeOrOffset; PMFN copyFunction; }; typedef struct _s_CatchableType CatchableType; typedef struct _s_CatchableTypeArray _s_CatchableTypeArray, *P_s_CatchableTypeArray; typedef struct _s_CatchableTypeArray CatchableTypeArray; struct _s_CatchableTypeArray { int nCatchableTypes; CatchableType * arrayOfCatchableTypes[0]; }; typedef struct _s_ThrowInfo _s_ThrowInfo, *P_s_ThrowInfo; typedef struct _s_ThrowInfo ThrowInfo; struct _s_ThrowInfo { uint attributes; PMFN pmfnUnwind; int (* pForwardCompat)(void); CatchableTypeArray * pCatchableTypeArray; }; typedef struct _IMAGE_SECTION_HEADER _IMAGE_SECTION_HEADER, *P_IMAGE_SECTION_HEADER; struct _IMAGE_SECTION_HEADER { // PlaceHolder Structure }; typedef struct IErrorInfo IErrorInfo, *PIErrorInfo; struct IErrorInfo { // PlaceHolder Structure }; typedef struct basic_streambuf<char,struct_std::char_traits<char>_> basic_streambuf<char,struct_std::char_traits<char>_>, *Pbasic_streambuf<char,struct_std::char_traits<char>_>; struct basic_streambuf<char,struct_std::char_traits<char>_> { // PlaceHolder Structure }; typedef struct ios_base ios_base, *Pios_base; struct ios_base { // PlaceHolder Structure }; typedef struct basic_ostream<char,struct_std::char_traits<char>_> basic_ostream<char,struct_std::char_traits<char>_>, *Pbasic_ostream<char,struct_std::char_traits<char>_>; struct basic_ostream<char,struct_std::char_traits<char>_> { // PlaceHolder Structure }; typedef struct basic_iostream<char,struct_std::char_traits<char>_> basic_iostream<char,struct_std::char_traits<char>_>, *Pbasic_iostream<char,struct_std::char_traits<char>_>; struct basic_iostream<char,struct_std::char_traits<char>_> { // PlaceHolder Structure }; typedef struct basic_ios<char,struct_std::char_traits<char>_> basic_ios<char,struct_std::char_traits<char>_>, *Pbasic_ios<char,struct_std::char_traits<char>_>; struct basic_ios<char,struct_std::char_traits<char>_> { // PlaceHolder Structure }; typedef struct locale locale, *Plocale; struct locale { // PlaceHolder Structure }; typedef int (* _onexit_t)(void); typedef uint size_t; typedef struct IUnknown * LPUNKNOWN; void __cdecl FUN_10001060(int param_1) { *(uint *)(param_1 + 0x14) = *(uint *)(param_1 + 0x14) & 0xfffff9ff | 0x800; return; } undefined4 * __thiscall FUN_10001080(void *this,LPCSTR param_1) { code *pcVar1; undefined4 *puVar2; undefined4 uVar3; void *local_10; undefined *puStack_c; undefined4 local_8; local_8 = 0xffffffff; puStack_c = &LAB_1000b59f; local_10 = ExceptionList; ExceptionList = &local_10; puVar2 = (undefined4 *)FUN_1000a4ab(0xc); local_8 = 0; if (puVar2 == (undefined4 *)0x0) { puVar2 = (undefined4 *)0x0; } else { puVar2[1] = 0; puVar2[2] = 1; uVar3 = ConvertStringToBSTR(param_1); *puVar2 = uVar3; } local_8 = 0xffffffff; *(undefined4 **)this = puVar2; if (puVar2 != (undefined4 *)0x0) { ExceptionList = local_10; return (undefined4 *)this; } _com_issue_error(-0x7ff8fff2); pcVar1 = (code *)swi(3); puVar2 = (undefined4 *)(*pcVar1)(); return puVar2; } void __fastcall FUN_10001110(undefined4 *param_1) { BSTR *ppOVar1; BSTR *ppOVar2; BSTR pOVar3; ppOVar2 = (BSTR *)*param_1; if (ppOVar2 != (BSTR *)0x0) { LOCK(); ppOVar1 = ppOVar2 + 2; pOVar3 = *ppOVar1; *ppOVar1 = (BSTR)((int)*ppOVar1 + -1); if ((pOVar3 == (BSTR)0x1) && (ppOVar2 != (BSTR *)0x0)) { if (*ppOVar2 != (BSTR)0x0) { SysFreeString(*ppOVar2); *ppOVar2 = (BSTR)0x0; } if (ppOVar2[1] != (BSTR)0x0) { free(ppOVar2[1]); ppOVar2[1] = (BSTR)0x0; } FUN_1000a4db(ppOVar2); } *param_1 = 0; } return; } LPWSTR FUN_10001170(undefined4 *param_1) { int iVar1; undefined4 *lpMultiByteStr; uint cchWideChar; LPWSTR lpWideCharStr; iVar1 = param_1[4]; lpMultiByteStr = param_1; if (0xf < (uint)param_1[5]) { lpMultiByteStr = (undefined4 *)*param_1; } cchWideChar = MultiByteToWideChar(0,0,(LPCSTR)lpMultiByteStr,iVar1 + 1,(LPWSTR)0x0,0); lpWideCharStr = (LPWSTR)FUN_1000a4e9(-(uint)((int)((ulonglong)cchWideChar * 2 >> 0x20) != 0) | (uint)((ulonglong)cchWideChar * 2)); if (0xf < (uint)param_1[5]) { param_1 = (undefined4 *)*param_1; } MultiByteToWideChar(0,0,(LPCSTR)param_1,iVar1 + 1,lpWideCharStr,cchWideChar); return lpWideCharStr; } // WARNING: Could not reconcile some variable overlaps void FUN_100011e0(void *param_1) { BSTR *ppOVar1; int iVar2; uint uVar3; HRESULT HVar4; int *piVar5; basic_ostream_char_struct_std__char_traits_char___ *pbVar6; undefined4 *puVar7; BSTR *ppOVar8; BSTR pOVar9; int *piVar10; LPWSTR pWVar11; void *pvVar12; undefined4 uStack00000014; uint in_stack_00000018; void *in_stack_0000001c; uint in_stack_00000030; undefined4 uVar13; undefined *puVar14; undefined4 uVar15; code *pcVar16; undefined4 uVar17; int in_stack_fffffefc; int local_f4 [2]; undefined4 local_ec [2]; basic_iostream_char_struct_std__char_traits_char___ local_e4 [72]; basic_ios_char_struct_std__char_traits_char___ local_9c [80]; int local_4c; BSTR *local_48; int *local_44; BSTR *local_40; int *local_3c; BSTR *local_38; int *local_34; IUnknown *local_30; void *local_2c [2]; undefined local_24 [12]; uint local_18; uint local_14; void *local_10; undefined *puStack_c; undefined4 local_8; puStack_c = &LAB_1000b65e; local_10 = ExceptionList; uVar3 = DAT_10012024 ^ (uint)&stack0xfffffffc; ExceptionList = &local_10; local_8 = 1; local_14 = uVar3; HVar4 = CoInitializeEx((LPVOID)0x0,2); if (HVar4 < 0) { FUN_10001b00((int *)&stack0xfffffefc); pcVar16 = FUN_10001060; local_8._0_1_ = 2; piVar5 = FUN_100023d0(local_f4,"Failed to initialize COM library. Error code = 0x"); pbVar6 = std::basic_ostream<char,struct_std::char_traits<char>_>::operator__ ((basic_ostream_char_struct_std__char_traits_char___ *)piVar5,pcVar16); std::basic_ostream<char,struct_std::char_traits<char>_>::operator__(pbVar6,HVar4); puVar7 = (undefined4 *)FUN_10001a40(&stack0xfffffefc,(undefined *)local_2c); local_8._0_1_ = 3; FUN_10001170(puVar7); if (0xf < local_18) { pvVar12 = local_2c[0]; if ((0xfff < local_18 + 1) && (pvVar12 = *(void **)((int)local_2c[0] + -4), 0x1f < (uint)((int)local_2c[0] + (-4 - (int)pvVar12)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar12); } local_24._8_4_ = 0; local_18 = 0xf; local_2c[0] = (void *)((uint)local_2c[0] & 0xffffff00); *(undefined ***)(local_e4 + *(int *)(in_stack_fffffefc + 4) + -0x20) = std::basic_stringstream<char,struct_std::char_traits<char>,class_std::allocator<char>_>:: vftable; *(int *)((int)local_ec + *(int *)(in_stack_fffffefc + 4) + -0x1c) = *(int *)(in_stack_fffffefc + 4) + -0x68; FUN_100020a0(local_ec); std::basic_iostream<char,struct_std::char_traits<char>_>:: _basic_iostream_char_struct_std__char_traits_char___(local_e4); std::basic_ios<char,struct_std::char_traits<char>_>:: _basic_ios_char_struct_std__char_traits_char___(local_9c); goto LAB_100018fa; } local_34 = (int *)0x0; HVar4 = CoCreateInstance((IID *)&DAT_1000d304,(LPUNKNOWN)0x0,1,(IID *)&DAT_1000d314,&local_34); if (HVar4 < 0) { FUN_10001b00((int *)&stack0xfffffefc); pcVar16 = FUN_10001060; local_8._0_1_ = 4; piVar5 = FUN_100023d0(local_f4,"Failed to create IWbemLocator object."); piVar5 = FUN_100023d0(piVar5," Err code = 0x"); pbVar6 = std::basic_ostream<char,struct_std::char_traits<char>_>::operator__ ((basic_ostream_char_struct_std__char_traits_char___ *)piVar5,pcVar16); std::basic_ostream<char,struct_std::char_traits<char>_>::operator__(pbVar6,HVar4); CoUninitialize(); puVar7 = (undefined4 *)FUN_10001a40(&stack0xfffffefc,(undefined *)local_2c); local_8._0_1_ = 5; FUN_10001170(puVar7); if (0xf < local_18) { pvVar12 = local_2c[0]; if ((0xfff < local_18 + 1) && (pvVar12 = *(void **)((int)local_2c[0] + -4), 0x1f < (uint)((int)local_2c[0] + (-4 - (int)pvVar12)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar12); } local_24._8_4_ = 0; local_18 = 0xf; local_2c[0] = (void *)((uint)local_2c[0] & 0xffffff00); *(undefined ***)(local_e4 + *(int *)(in_stack_fffffefc + 4) + -0x20) = std::basic_stringstream<char,struct_std::char_traits<char>,class_std::allocator<char>_>:: vftable; *(int *)((int)local_ec + *(int *)(in_stack_fffffefc + 4) + -0x1c) = *(int *)(in_stack_fffffefc + 4) + -0x68; FUN_100020a0(local_ec); std::basic_iostream<char,struct_std::char_traits<char>_>:: _basic_iostream_char_struct_std__char_traits_char___(local_e4); std::basic_ios<char,struct_std::char_traits<char>_>:: _basic_ios_char_struct_std__char_traits_char___(local_9c); goto LAB_100018fa; } local_30 = (IUnknown *)0x0; ppOVar8 = (BSTR *)FUN_1000a4ab(0xc); local_8._0_1_ = 6; if (ppOVar8 == (BSTR *)0x0) { ppOVar8 = (BSTR *)0x0; } else { ppOVar8[1] = (BSTR)0x0; ppOVar8[2] = (BSTR)0x1; local_40 = ppOVar8; pOVar9 = SysAllocString(L"ROOT\\CIMV2"); *ppOVar8 = pOVar9; if (pOVar9 == (BSTR)0x0) { _com_issue_error(-0x7ff8fff2); goto LAB_100019a2; } } local_8._0_1_ = 1; local_40 = ppOVar8; if (ppOVar8 == (BSTR *)0x0) { LAB_100019a2: _com_issue_error(-0x7ff8fff2); pcVar16 = (code *)swi(3); (*pcVar16)(); return; } local_8._0_1_ = 7; local_38 = (BSTR *)(**(code **)(*local_34 + 0xc))(local_34,*ppOVar8,0,0,0,0,0,0,&local_30,uVar3); local_8._0_1_ = 1; LOCK(); ppOVar1 = ppOVar8 + 2; pOVar9 = *ppOVar1; *ppOVar1 = (BSTR)((int)*ppOVar1 + -1); if (pOVar9 == (BSTR)0x1) { if (*ppOVar8 != (BSTR)0x0) { SysFreeString(*ppOVar8); *ppOVar8 = (BSTR)0x0; } if (ppOVar8[1] != (BSTR)0x0) { free(ppOVar8[1]); ppOVar8[1] = (BSTR)0x0; } FUN_1000a4db(ppOVar8); } if ((int)local_38 < 0) { FUN_10001b00((int *)&stack0xfffffefc); local_8._0_1_ = 8; pcVar16 = FUN_10001060; ppOVar8 = local_38; piVar5 = FUN_100023d0(local_f4,"Could not connect. Error code = 0x"); pbVar6 = std::basic_ostream<char,struct_std::char_traits<char>_>::operator__ ((basic_ostream_char_struct_std__char_traits_char___ *)piVar5,pcVar16); std::basic_ostream<char,struct_std::char_traits<char>_>::operator__(pbVar6,(long)ppOVar8); (**(code **)(*local_34 + 8))(); CoUninitialize(); puVar7 = (undefined4 *)FUN_10001a40(&stack0xfffffefc,(undefined *)local_2c); local_8._0_1_ = 9; FUN_10001170(puVar7); if (0xf < local_18) { pvVar12 = local_2c[0]; if ((0xfff < local_18 + 1) && (pvVar12 = *(void **)((int)local_2c[0] + -4), 0x1f < (uint)((int)local_2c[0] + (-4 - (int)*(void **)((int)local_2c[0] + -4))))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } LAB_10001844: FUN_1000a4db(pvVar12); } } else { HVar4 = CoSetProxyBlanket(local_30,10,0,(OLECHAR *)0x0,3,3,(RPC_AUTH_IDENTITY_HANDLE)0x0,0); if (HVar4 < 0) { FUN_10001b00((int *)&stack0xfffffefc); pcVar16 = FUN_10001060; local_8._0_1_ = 10; piVar5 = FUN_100023d0(local_f4,"Could not set proxy blanket. Error code = 0x"); pbVar6 = std::basic_ostream<char,struct_std::char_traits<char>_>::operator__ ((basic_ostream_char_struct_std__char_traits_char___ *)piVar5,pcVar16); std::basic_ostream<char,struct_std::char_traits<char>_>::operator__(pbVar6,HVar4); (*local_30->lpVtbl->Release)(local_30); (**(code **)(*local_34 + 8))(); CoUninitialize(); puVar7 = (undefined4 *)FUN_10001a40(&stack0xfffffefc,(undefined *)local_2c); local_8._0_1_ = 0xb; FUN_10001170(puVar7); if (0xf < local_18) { pvVar12 = local_2c[0]; if ((0xfff < local_18 + 1) && (pvVar12 = *(void **)((int)local_2c[0] + -4), 0x1f < (uint)((int)local_2c[0] + (-4 - (int)*(void **)((int)local_2c[0] + -4))))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } goto LAB_10001844; } } else { local_44 = (int *)0x0; puVar7 = FUN_10002620(local_2c,"SELECT * FROM ",¶m_1); local_8._0_1_ = 0xc; if (0xf < (uint)puVar7[5]) { puVar7 = (undefined4 *)*puVar7; } piVar5 = FUN_10001080(&local_48,(LPCSTR)puVar7); local_8._0_1_ = 0xd; piVar10 = FUN_10001080(&local_38,"WQL"); local_8 = CONCAT31(local_8._1_3_,0xe); if ((undefined4 *)*piVar5 == (undefined4 *)0x0) { uVar13 = 0; } else { uVar13 = *(undefined4 *)*piVar5; } if ((undefined4 *)*piVar10 == (undefined4 *)0x0) { uVar15 = 0; } else { uVar15 = *(undefined4 *)*piVar10; } uVar17 = 0x30; local_40 = (BSTR *)(*local_30->lpVtbl[6].Release)(local_30); ppOVar8 = local_38; if (local_38 != (BSTR *)0x0) { LOCK(); ppOVar1 = local_38 + 2; pOVar9 = *ppOVar1; *ppOVar1 = (BSTR)((int)*ppOVar1 + -1); if ((pOVar9 == (BSTR)0x1) && (local_38 != (BSTR *)0x0)) { if (*local_38 != (BSTR)0x0) { SysFreeString(*local_38); *ppOVar8 = (BSTR)0x0; } if (ppOVar8[1] != (BSTR)0x0) { free(ppOVar8[1]); ppOVar8[1] = (BSTR)0x0; } FUN_1000a4db(ppOVar8); } local_38 = (BSTR *)0x0; } if (local_48 != (BSTR *)0x0) { LOCK(); ppOVar8 = local_48 + 2; pOVar9 = *ppOVar8; *ppOVar8 = (BSTR)((int)*ppOVar8 + -1); if ((pOVar9 == (BSTR)0x1) && (local_48 != (BSTR *)0x0)) { if (*local_48 != (BSTR)0x0) { SysFreeString(*local_48); *local_48 = (BSTR)0x0; } if (local_48[1] != (BSTR)0x0) { free(local_48[1]); local_48[1] = (BSTR)0x0; } FUN_1000a4db(local_48); } local_48 = (BSTR *)0x0; } local_8._0_1_ = 1; if (0xf < local_18) { pvVar12 = local_2c[0]; if ((0xfff < local_18 + 1) && (pvVar12 = *(void **)((int)local_2c[0] + -4), 0x1f < (uint)((int)local_2c[0] + (-4 - (int)pvVar12)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar12); } ppOVar8 = local_40; if (-1 < (int)local_40) { local_3c = (int *)0x0; local_4c = 0; (**(code **)(*local_44 + 0x10)) (local_44,0xffffffff,1,&local_3c,&local_4c,uVar15,uVar13,uVar17); if (local_4c != 0) { VariantInit((VARIANTARG *)local_24); uVar17 = 0; uVar15 = 0; iVar2 = *local_3c; puVar14 = local_24; uVar13 = 0; pWVar11 = FUN_10001170(&stack0x0000001c); (**(code **)(iVar2 + 0x10))(local_3c,pWVar11,uVar13,puVar14,uVar15,uVar17); VariantClear((VARIANTARG *)local_24); (**(code **)(*local_3c + 8))(local_3c); } (**(code **)(*local_44 + 8))(local_44); (*local_30->lpVtbl->Release)(local_30); (**(code **)(*local_34 + 8))(local_34); CoUninitialize(); goto LAB_100018fa; } FUN_10001b00((int *)&stack0xfffffefc); pcVar16 = FUN_10001060; local_8._0_1_ = 0xf; piVar5 = FUN_100023d0(local_f4,"Query failed."); piVar5 = FUN_100023d0(piVar5," Error code = 0x"); pbVar6 = std::basic_ostream<char,struct_std::char_traits<char>_>::operator__ ((basic_ostream_char_struct_std__char_traits_char___ *)piVar5,pcVar16); std::basic_ostream<char,struct_std::char_traits<char>_>::operator__(pbVar6,(long)ppOVar8); puVar7 = (undefined4 *)FUN_10001a40(&stack0xfffffefc,(undefined *)local_2c); local_8._0_1_ = 0x10; FUN_10001170(puVar7); if (0xf < local_18) { pvVar12 = local_2c[0]; if ((0xfff < local_18 + 1) && (pvVar12 = *(void **)((int)local_2c[0] + -4), 0x1f < (uint)((int)local_2c[0] + (-4 - (int)pvVar12)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } goto LAB_10001844; } } } local_24._8_4_ = 0; local_18 = 0xf; local_2c[0] = (void *)((uint)local_2c[0] & 0xffffff00); FUN_100019b0((int *)&stack0xfffffefc); LAB_100018fa: if (0xf < in_stack_00000018) { pvVar12 = param_1; if ((0xfff < in_stack_00000018 + 1) && (pvVar12 = *(void **)((int)param_1 + -4), 0x1f < (uint)((int)param_1 + (-4 - (int)pvVar12)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar12); } uStack00000014 = 0; in_stack_00000018 = 0xf; param_1 = (void *)((uint)param_1 & 0xffffff00); if (0xf < in_stack_00000030) { pvVar12 = in_stack_0000001c; if ((0xfff < in_stack_00000030 + 1) && (pvVar12 = *(void **)((int)in_stack_0000001c + -4), 0x1f < (uint)((int)in_stack_0000001c + (-4 - (int)pvVar12)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar12); } ExceptionList = local_10; ___security_check_cookie_4(local_14 ^ (uint)&stack0xfffffffc); return; } void __fastcall FUN_100019b0(int *param_1) { int *this; this = param_1 + 0x1a; *(undefined ***)(*(int *)(*param_1 + 4) + -0x68 + (int)this) = std::basic_stringstream<char,struct_std::char_traits<char>,class_std::allocator<char>_>:: vftable; *(int *)(*(int *)(*param_1 + 4) + -0x6c + (int)this) = *(int *)(*param_1 + 4) + -0x68; FUN_100020a0(param_1 + 6); std::basic_iostream<char,struct_std::char_traits<char>_>:: _basic_iostream_char_struct_std__char_traits_char___ ((basic_iostream_char_struct_std__char_traits_char___ *)(param_1 + 8)); // WARNING: Could not recover jumptable at 0x100019e2. Too many branches // WARNING: Treating indirect jump as call std::basic_ios<char,struct_std::char_traits<char>_>:: _basic_ios_char_struct_std__char_traits_char___ ((basic_ios_char_struct_std__char_traits_char___ *)this); return; } void __fastcall FUN_100019f0(void **param_1) { void *pvVar1; void *pvVar2; if ((void *)0xf < param_1[5]) { pvVar1 = *param_1; pvVar2 = pvVar1; if ((0xfff < (int)param_1[5] + 1U) && (pvVar2 = *(void **)((int)pvVar1 + -4), 0x1f < (uint)((int)pvVar1 + (-4 - (int)pvVar2)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar2); } param_1[4] = (void *)0x0; param_1[5] = (void *)0xf; *(undefined *)param_1 = 0; return; } undefined * __thiscall FUN_10001a40(void *this,undefined *param_1) { uint uVar1; int *piVar2; void *pvVar3; void *local_10; undefined *puStack_c; undefined4 local_8; pvVar3 = ExceptionList; puStack_c = &LAB_1000b6a9; local_10 = ExceptionList; ExceptionList = &local_10; local_8 = 0; *(undefined4 *)(param_1 + 0x10) = 0; *(undefined4 *)(param_1 + 0x14) = 0xf; *param_1 = 0; if (((*(uint *)((int)this + 0x54) & 2) == 0) && (uVar1 = **(uint **)((int)this + 0x38), uVar1 != 0)) { if (uVar1 < *(uint *)((int)this + 0x50)) { uVar1 = *(uint *)((int)this + 0x50); } pvVar3 = **(void ***)((int)this + 0x28); piVar2 = (int *)(uVar1 - (int)pvVar3); } else { if ((*(uint *)((int)this + 0x54) & 4) != 0) { ExceptionList = pvVar3; return param_1; } if (**(int **)((int)this + 0x34) == 0) { ExceptionList = pvVar3; return param_1; } pvVar3 = **(void ***)((int)this + 0x24); piVar2 = (int *)((**(int **)((int)this + 0x44) - (int)pvVar3) + **(int **)((int)this + 0x34)); } FUN_10002250(param_1,pvVar3,piVar2); ExceptionList = local_10; return param_1; } int * __fastcall FUN_10001b00(int *param_1) { int *this; void *local_10; undefined *puStack_c; undefined4 local_8; local_8 = 0xffffffff; puStack_c = &LAB_1000b6f9; local_10 = ExceptionList; ExceptionList = &local_10; *param_1 = (int)&PTR_1000d508; param_1[4] = (int)&DAT_1000d4b8; std::basic_ios<char,struct_std::char_traits<char>_>:: basic_ios_char_struct_std__char_traits_char___ ((basic_ios_char_struct_std__char_traits_char___ *)(param_1 + 0x1a)); this = param_1 + 6; local_8 = 0; std::basic_iostream<char,struct_std::char_traits<char>_>:: basic_iostream_char_struct_std__char_traits_char___ ((basic_iostream_char_struct_std__char_traits_char___ *)param_1, (basic_streambuf_char_struct_std__char_traits_char___ *)this); local_8 = 1; *(undefined ***)((int)param_1 + *(int *)(*param_1 + 4)) = std::basic_stringstream<char,struct_std::char_traits<char>,class_std::allocator<char>_>:: vftable; *(int *)(*(int *)(*param_1 + 4) + -4 + (int)param_1) = *(int *)(*param_1 + 4) + -0x68; std::basic_streambuf<char,struct_std::char_traits<char>_>:: basic_streambuf_char_struct_std__char_traits_char___ ((basic_streambuf_char_struct_std__char_traits_char___ *)this); *this = (int)std::basic_stringbuf<char,struct_std::char_traits<char>,class_std::allocator<char>_> ::vftable; param_1[0x14] = 0; param_1[0x15] = 0; ExceptionList = local_10; return param_1; } void __thiscall FUN_10001bc0(void *this,uint *param_1,uint param_2,int param_3,uint param_4,int param_5, undefined4 param_6,undefined4 param_7,uint param_8) { int iVar1; uint uVar2; int iVar3; int iVar4; uint uVar5; uint uVar6; uint uVar7; uint uVar8; uVar8 = param_4 + param_2; uVar7 = param_5 + param_3 + (uint)CARRY4(param_4,param_2); iVar1 = **(int **)((int)this + 0x1c); uVar2 = **(uint **)((int)this + 0x20); if ((uVar2 != 0) && (*(uint *)((int)this + 0x38) < uVar2)) { *(uint *)((int)this + 0x38) = uVar2; } iVar3 = **(int **)((int)this + 0xc); iVar4 = *(int *)((int)this + 0x38); uVar5 = iVar4 - iVar3; uVar6 = (int)uVar5 >> 0x1f; if (((uVar7 < uVar6) || ((uVar7 <= uVar6 && (uVar8 <= uVar5)))) && (((uVar8 | uVar7) == 0 || ((((param_8 & 1) == 0 || (iVar1 != 0)) && (((param_8 & 2) == 0 || (uVar2 != 0)))))))) { if (((param_8 & 1) != 0) && (iVar1 != 0)) { **(int **)((int)this + 0x1c) = iVar3 + uVar8; **(int **)((int)this + 0x2c) = iVar4 - (iVar3 + uVar8); } if (((param_8 & 2) != 0) && (uVar2 != 0)) { iVar1 = **(int **)((int)this + 0x20); iVar4 = **(int **)((int)this + 0x30); **(int **)((int)this + 0x10) = iVar3; **(int **)((int)this + 0x20) = iVar3 + uVar8; **(int **)((int)this + 0x30) = (iVar1 + iVar4) - (iVar3 + uVar8); } *param_1 = uVar8; param_1[1] = uVar7; } else { *param_1 = 0xffffffff; param_1[1] = 0xffffffff; } param_1[2] = 0; param_1[3] = 0; *(undefined8 *)(param_1 + 4) = 0; return; } void __thiscall FUN_10001cc0(void *this,uint *param_1,uint param_2,int param_3,int param_4,byte param_5) { int iVar1; uint uVar2; int iVar3; int iVar4; uint uVar5; uint uVar6; int iVar7; uint uVar8; uint uVar9; uint local_20; uint uStack_1c; iVar1 = **(int **)((int)this + 0x1c); uVar2 = **(uint **)((int)this + 0x20); if ((uVar2 != 0) && (*(uint *)((int)this + 0x38) < uVar2)) { *(uint *)((int)this + 0x38) = uVar2; } iVar3 = **(int **)((int)this + 0xc); iVar4 = *(int *)((int)this + 0x38); uVar5 = iVar4 - iVar3; uVar8 = (int)uVar5 >> 0x1f; if (param_4 == 0) { uStack_1c = 0; local_20 = 0; LAB_10001d7d: uVar9 = local_20 + param_2; uVar6 = uStack_1c + param_3 + (uint)CARRY4(local_20,param_2); if (((uVar6 < uVar8) || ((uVar6 <= uVar8 && (uVar9 <= uVar5)))) && (((uVar9 | uVar6) == 0 || ((((param_5 & 1) == 0 || (iVar1 != 0)) && (((param_5 & 2) == 0 || (uVar2 != 0)))))))) { iVar7 = iVar3 + uVar9; if (((param_5 & 1) != 0) && (iVar1 != 0)) { **(int **)((int)this + 0x1c) = iVar7; **(int **)((int)this + 0x2c) = iVar4 - iVar7; } if (((param_5 & 2) != 0) && (uVar2 != 0)) { iVar1 = **(int **)((int)this + 0x30); iVar4 = **(int **)((int)this + 0x20); **(int **)((int)this + 0x10) = iVar3; **(int **)((int)this + 0x20) = iVar7; **(int **)((int)this + 0x30) = (iVar1 + iVar4) - iVar7; } *param_1 = uVar9; param_1[1] = uVar6; goto LAB_10001e11; } } else if (param_4 == 1) { if ((param_5 & 3) != 3) { if ((param_5 & 1) == 0) { if (((param_5 & 2) != 0) && ((uVar2 != 0 || (iVar3 == 0)))) { uStack_1c = (int)(uVar2 - iVar3) >> 0x1f; local_20 = uVar2 - iVar3; goto LAB_10001d7d; } } else if ((iVar1 != 0) || (iVar3 == 0)) { uStack_1c = iVar1 - iVar3 >> 0x1f; local_20 = iVar1 - iVar3; goto LAB_10001d7d; } } } else { uStack_1c = uVar8; local_20 = uVar5; if (param_4 == 2) goto LAB_10001d7d; } *param_1 = 0xffffffff; param_1[1] = 0xffffffff; LAB_10001e11: param_1[2] = 0; param_1[3] = 0; *(undefined8 *)(param_1 + 4) = 0; return; } uint __fastcall FUN_10001e30(int param_1) { byte **ppbVar1; byte *pbVar2; byte *pbVar3; byte *pbVar4; ppbVar1 = *(byte ***)(param_1 + 0x1c); pbVar2 = *ppbVar1; if (pbVar2 != (byte *)0x0) { if (pbVar2 < pbVar2 + **(int **)(param_1 + 0x2c)) { return (uint)*pbVar2; } pbVar3 = **(byte ***)(param_1 + 0x20); if ((pbVar3 != (byte *)0x0) && ((*(byte *)(param_1 + 0x3c) & 4) == 0)) { pbVar4 = *(byte **)(param_1 + 0x38); if (*(byte **)(param_1 + 0x38) < pbVar3) { pbVar4 = pbVar3; } if (pbVar2 < pbVar4) { *(byte **)(param_1 + 0x38) = pbVar4; pbVar2 = *ppbVar1; *ppbVar1 = pbVar2; **(int **)(param_1 + 0x2c) = (int)pbVar4 - (int)pbVar2; return (uint)***(byte ***)(param_1 + 0x1c); } } } return 0xffffffff; } // Library Function - Single Match // protected: virtual int __thiscall std::basic_stringbuf<char,struct std::char_traits<char>,class // std::allocator<char> >::pbackfail(int) // // Library: Visual Studio 2019 Release int __thiscall std::basic_stringbuf<char,struct_std::char_traits<char>,class_std::allocator<char>_>::pbackfail (basic_stringbuf_char_struct_std__char_traits_char__class_std__allocator_char___ *this, int param_1) { uint uVar1; uVar1 = **(uint **)(this + 0x1c); if (((uVar1 != 0) && (**(uint **)(this + 0xc) <= uVar1 && uVar1 != **(uint **)(this + 0xc))) && ((param_1 == -1 || (((char)param_1 == *(char *)(uVar1 - 1) || (((byte)this[0x3c] & 2) == 0))))) ) { **(int **)(this + 0x2c) = **(int **)(this + 0x2c) + 1; **(int **)(this + 0x1c) = **(int **)(this + 0x1c) + -1; if (param_1 == -1) { param_1 = 0; } else { ***(char ***)(this + 0x1c) = (char)param_1; } return param_1; } return -1; } int __thiscall FUN_10001ef0(void *this,int param_1) { void *_Src; char *pcVar1; void *pvVar2; int iVar3; uint uVar4; int iVar5; uint uVar6; uint local_c; if ((*(byte *)((int)this + 0x3c) & 2) != 0) { return -1; } if (param_1 == -1) { return 0; } uVar6 = **(uint **)((int)this + 0x20); uVar4 = **(int **)((int)this + 0x30) + uVar6; if ((uVar6 != 0) && (uVar6 < uVar4)) { pcVar1 = std::basic_streambuf<char,struct_std::char_traits<char>_>::_Pninc ((basic_streambuf_char_struct_std__char_traits_char___ *)this); *pcVar1 = (char)param_1; *(uint *)((int)this + 0x38) = uVar6 + 1; return param_1; } _Src = **(void ***)((int)this + 0xc); uVar6 = -(uint)(uVar6 != 0) & uVar4 - (int)_Src; if (uVar6 < 0x20) { local_c = 0x20; pvVar2 = (void *)FUN_1000a4ab(0x20); } else { if (uVar6 < 0x3fffffff) { local_c = uVar6 * 2; if (local_c < 0x1000) { if (local_c == 0) { pvVar2 = (void *)0x0; } else { pvVar2 = (void *)FUN_1000a4ab(local_c); } goto LAB_10001fd5; } } else { if (0x7ffffffe < uVar6) { return -1; } local_c = 0x7fffffff; } uVar4 = local_c + 0x23; if (uVar4 <= local_c) { uVar4 = 0xffffffff; } iVar3 = FUN_1000a4ab(uVar4); if (iVar3 == 0) goto LAB_10002089; pvVar2 = (void *)(iVar3 + 0x23U & 0xffffffe0); *(int *)((int)pvVar2 - 4) = iVar3; } LAB_10001fd5: memcpy(pvVar2,_Src,uVar6); iVar3 = uVar6 + (int)pvVar2; *(int *)((int)this + 0x38) = iVar3 + 1; **(void ***)((int)this + 0x10) = pvVar2; **(int **)((int)this + 0x20) = iVar3; **(int **)((int)this + 0x30) = (int)pvVar2 + (local_c - iVar3); if ((*(byte *)((int)this + 0x3c) & 4) == 0) { iVar3 = *(int *)((int)this + 0x38); iVar5 = (**(int **)((int)this + 0x1c) - (int)_Src) + (int)pvVar2; **(void ***)((int)this + 0xc) = pvVar2; **(int **)((int)this + 0x1c) = iVar5; **(int **)((int)this + 0x2c) = iVar3 - iVar5; } else { **(void ***)((int)this + 0xc) = pvVar2; **(undefined4 **)((int)this + 0x1c) = 0; **(void ***)((int)this + 0x2c) = pvVar2; } uVar4 = *(uint *)((int)this + 0x3c); if ((uVar4 & 1) != 0) { pvVar2 = _Src; if ((0xfff < uVar6) && (pvVar2 = *(void **)((int)_Src + -4), 0x1f < (uint)((int)_Src + (-4 - (int)pvVar2)))) { LAB_10002089: // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar2); uVar4 = *(uint *)((int)this + 0x3c); } *(uint *)((int)this + 0x3c) = uVar4 | 1; pcVar1 = std::basic_streambuf<char,struct_std::char_traits<char>_>::_Pninc ((basic_streambuf_char_struct_std__char_traits_char___ *)this); *pcVar1 = (char)param_1; return param_1; } void __fastcall FUN_100020a0(undefined4 *param_1) { void *pvVar1; void *pvVar2; int iVar3; *param_1 = std::basic_stringbuf<char,struct_std::char_traits<char>,class_std::allocator<char>_>:: vftable; if ((*(byte *)(param_1 + 0xf) & 1) != 0) { if (*(int *)param_1[8] == 0) { iVar3 = *(int *)param_1[0xb] + *(int *)param_1[7]; } else { iVar3 = *(int *)param_1[0xc] + *(int *)param_1[8]; } pvVar1 = *(void **)param_1[3]; pvVar2 = pvVar1; if ((0xfff < (uint)(iVar3 - (int)pvVar1)) && (pvVar2 = *(void **)((int)pvVar1 + -4), 0x1f < (uint)((int)pvVar1 + (-4 - (int)pvVar2)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar2); } *(undefined4 *)param_1[3] = 0; *(undefined4 *)param_1[7] = 0; *(undefined4 *)param_1[0xb] = 0; *(undefined4 *)param_1[4] = 0; *(undefined4 *)param_1[8] = 0; *(undefined4 *)param_1[0xc] = 0; param_1[0xf] = param_1[0xf] & 0xfffffffe; param_1[0xe] = 0; // WARNING: Could not recover jumptable at 0x1000213a. Too many branches // WARNING: Treating indirect jump as call std::basic_streambuf<char,struct_std::char_traits<char>_>:: _basic_streambuf_char_struct_std__char_traits_char___ ((basic_streambuf_char_struct_std__char_traits_char___ *)param_1); return; } int * __thiscall FUN_10002150(void *this,byte param_1) { int *piVar1; piVar1 = (int *)((int)this + -0x68); *(undefined ***)(*(int *)(*(int *)((int)this + -0x68) + 4) + -0x68 + (int)this) = std::basic_stringstream<char,struct_std::char_traits<char>,class_std::allocator<char>_>:: vftable; *(int *)(*(int *)(*piVar1 + 4) + -0x6c + (int)this) = *(int *)(*piVar1 + 4) + -0x68; FUN_100020a0((undefined4 *)((int)this + -0x50)); std::basic_iostream<char,struct_std::char_traits<char>_>:: _basic_iostream_char_struct_std__char_traits_char___ ((basic_iostream_char_struct_std__char_traits_char___ *)((int)this + -0x48)); std::basic_ios<char,struct_std::char_traits<char>_>:: _basic_ios_char_struct_std__char_traits_char___ ((basic_ios_char_struct_std__char_traits_char___ *)this); if ((param_1 & 1) != 0) { FUN_1000a4db(piVar1); } return piVar1; } // Library Function - Single Match // public: virtual void * __thiscall std::basic_stringbuf<char,struct std::char_traits<char>,class // std::allocator<char> >::`scalar deleting destructor'(unsigned int) // // Library: Visual Studio 2019 Release void * __thiscall std::basic_stringbuf<char,struct_std::char_traits<char>,class_std::allocator<char>_>:: _scalar_deleting_destructor_ (basic_stringbuf_char_struct_std__char_traits_char__class_std__allocator_char___ *this, uint param_1) { FUN_100020a0((undefined4 *)this); if ((param_1 & 1) != 0) { FUN_1000a4db(this); } return this; } void __fastcall FUN_100021e0(int **param_1) { int *piVar1; bool bVar2; uint uVar3; void *local_10; undefined *puStack_c; undefined4 local_8; local_8 = 0xffffffff; puStack_c = &LAB_1000b720; local_10 = ExceptionList; uVar3 = DAT_10012024 ^ (uint)&stack0xfffffffc; ExceptionList = &local_10; bVar2 = std::uncaught_exception(); if (!bVar2) { std::basic_ostream<char,struct_std::char_traits<char>_>::_Osfx ((basic_ostream_char_struct_std__char_traits_char___ *)*param_1); } local_8 = 0; piVar1 = *(int **)(*(int *)(**param_1 + 4) + 0x38 + (int)*param_1); if (piVar1 != (int *)0x0) { (**(code **)(*piVar1 + 8))(uVar3); } ExceptionList = local_10; return; } int ** __thiscall FUN_10002250(void *this,void *param_1,int *param_2) { uint uVar1; int *piVar2; void *pvVar3; code *pcVar4; uint uVar5; int iVar6; void *pvVar7; void *pvVar8; int **ppiVar9; uint uVar10; piVar2 = *(int **)((int)this + 0x14); if (param_2 <= piVar2) { pvVar7 = this; if ((int *)0xf < piVar2) { // WARNING: Load size is inaccurate pvVar7 = *this; } *(int **)((int)this + 0x10) = param_2; memmove(pvVar7,param_1,(size_t)param_2); *(undefined *)((int)pvVar7 + (int)param_2) = 0; return (int **)this; } if ((int *)0x7fffffff < param_2) { FUN_100028c0(); pcVar4 = (code *)swi(3); ppiVar9 = (int **)(*pcVar4)(); return ppiVar9; } uVar10 = (uint)param_2 | 0xf; if (uVar10 < 0x80000000) { if ((int *)(0x7fffffff - ((uint)piVar2 >> 1)) < piVar2) { uVar10 = 0x7fffffff; } else { uVar1 = ((uint)piVar2 >> 1) + (int)piVar2; if (uVar10 < uVar1) { uVar10 = uVar1; } } } else { uVar10 = 0x7fffffff; } uVar1 = uVar10 + 1; if (uVar1 < 0x1000) { if (uVar1 == 0) { pvVar7 = (void *)0x0; } else { pvVar7 = (void *)FUN_1000a4ab(uVar1); } } else { uVar5 = uVar10 + 0x24; if (uVar5 <= uVar1) { uVar5 = 0xffffffff; } iVar6 = FUN_1000a4ab(uVar5); if (iVar6 == 0) goto LAB_10002368; pvVar7 = (void *)(iVar6 + 0x23U & 0xffffffe0); *(int *)((int)pvVar7 - 4) = iVar6; } *(int **)((int)this + 0x10) = param_2; *(uint *)((int)this + 0x14) = uVar10; memcpy(pvVar7,param_1,(size_t)param_2); *(undefined *)((int)pvVar7 + (int)param_2) = 0; if ((int *)0xf < piVar2) { // WARNING: Load size is inaccurate pvVar3 = *this; pvVar8 = pvVar3; if ((0xfff < (int)piVar2 + 1U) && (pvVar8 = *(void **)((int)pvVar3 + -4), 0x1f < (uint)((int)pvVar3 + (-4 - (int)pvVar8)))) { LAB_10002368: // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar8); } *(void **)this = pvVar7; return (int **)this; } void __fastcall FUN_10002380(int **param_1) { int *piVar1; void *local_10; undefined *puStack_c; undefined4 uStack_8; uStack_8 = 0xffffffff; puStack_c = &LAB_1000b740; local_10 = ExceptionList; ExceptionList = &local_10; piVar1 = *(int **)(*(int *)(**param_1 + 4) + 0x38 + (int)*param_1); if (piVar1 != (int *)0x0) { (**(code **)(*piVar1 + 8))(DAT_10012024 ^ (uint)&stack0xfffffffc); } ExceptionList = local_10; return; } // WARNING: Could not reconcile some variable overlaps int * __fastcall FUN_100023d0(int *param_1,char *param_2) { char cVar1; uint uVar2; bool bVar3; int iVar4; int *piVar5; char *pcVar6; uint uVar7; int iVar8; __int64 _Var9; int local_34; int iStack_30; void *local_10; undefined *puStack_c; undefined4 local_8; local_8 = 0xffffffff; puStack_c = &LAB_1000b770; local_10 = ExceptionList; ExceptionList = &local_10; pcVar6 = param_2; do { cVar1 = *pcVar6; pcVar6 = pcVar6 + 1; } while (cVar1 != '\0'); iVar8 = *param_1; uVar7 = (int)pcVar6 - (int)(param_2 + 1); iVar4 = *(int *)(iVar8 + 4); iStack_30 = *(int *)((int)param_1 + iVar4 + 0x24); uVar2 = *(uint *)((int)param_1 + iVar4 + 0x20); if ((iStack_30 < 0) || ((iStack_30 < 1 && (((uVar2 == 0 || (iStack_30 < 0)) || ((iStack_30 < 1 && (uVar2 <= uVar7))))) ))) { iStack_30 = 0; local_34 = 0; } else { local_34 = uVar2 - uVar7; iStack_30 = iStack_30 - (uint)(uVar2 < uVar7); } piVar5 = *(int **)((int)param_1 + iVar4 + 0x38); if (piVar5 != (int *)0x0) { (**(code **)(*piVar5 + 4))(); iVar8 = *param_1; } local_8 = 0; iVar4 = *(int *)(iVar8 + 4); if ((*(int *)((int)param_1 + iVar4 + 0xc) == 0) && (*(int *)((int)param_1 + iVar4 + 0x3c) != 0)) { piVar5 = *(int **)((int)param_1 + iVar4 + 0x3c); if (piVar5 != param_1) { std::basic_ostream<char,struct_std::char_traits<char>_>::flush ((basic_ostream_char_struct_std__char_traits_char___ *)piVar5); iVar8 = *param_1; } } local_8 = 1; if (*(int *)(*(int *)(iVar8 + 4) + 0xc + (int)param_1) != 0) { std::basic_ios<char,struct_std::char_traits<char>_>::setstate ((basic_ios_char_struct_std__char_traits_char___ *) (*(int *)(*param_1 + 4) + (int)param_1),4,false); local_8 = 4; bVar3 = std::uncaught_exception(); if (!bVar3) { std::basic_ostream<char,struct_std::char_traits<char>_>::_Osfx ((basic_ostream_char_struct_std__char_traits_char___ *)param_1); } local_8 = CONCAT31(local_8._1_3_,5); piVar5 = *(int **)(*(int *)(*param_1 + 4) + 0x38 + (int)param_1); if (piVar5 != (int *)0x0) { (**(code **)(*piVar5 + 8))(); } ExceptionList = local_10; return param_1; } local_8 = 2; if ((*(uint *)(*(int *)(iVar8 + 4) + 0x14 + (int)param_1) & 0x1c0) != 0x40) { for (; (-1 < iStack_30 && ((0 < iStack_30 || (local_34 != 0)))); local_34 = local_34 + -1) { iVar4 = std::basic_streambuf<char,struct_std::char_traits<char>_>::sputc (*(basic_streambuf_char_struct_std__char_traits_char___ **) (*(int *)(*param_1 + 4) + 0x38 + (int)param_1), *(char *)(*(int *)(*param_1 + 4) + 0x40 + (int)param_1)); if (iVar4 == -1) { iVar4 = 4; goto LAB_1000257e; } iStack_30 = iStack_30 + -1 + (uint)(local_34 != 0); } iVar8 = *param_1; } _Var9 = std::basic_streambuf<char,struct_std::char_traits<char>_>::sputn (*(basic_streambuf_char_struct_std__char_traits_char___ **) (*(int *)(iVar8 + 4) + 0x38 + (int)param_1),param_2,(ulonglong)uVar7); if (((uint)_Var9 == uVar7) && ((int)((ulonglong)_Var9 >> 0x20) == 0)) { for (; (-1 < iStack_30 && ((0 < iStack_30 || (local_34 != 0)))); local_34 = local_34 + -1) { iVar4 = std::basic_streambuf<char,struct_std::char_traits<char>_>::sputc (*(basic_streambuf_char_struct_std__char_traits_char___ **) (*(int *)(*param_1 + 4) + 0x38 + (int)param_1), *(char *)(*(int *)(*param_1 + 4) + 0x40 + (int)param_1)); if (iVar4 == -1) goto LAB_1000256d; iStack_30 = iStack_30 + -1 + (uint)(local_34 != 0); } iVar4 = 0; } else { LAB_1000256d: iVar4 = 4; } LAB_1000257e: iVar8 = *(int *)(*param_1 + 4); *(undefined4 *)(iVar8 + 0x20 + (int)param_1) = 0; *(undefined4 *)(iVar8 + 0x24 + (int)param_1) = 0; piVar5 = (int *)FUN_100025b5(iVar4); return piVar5; } undefined * Catch_All_10002595(void) { int unaff_EBP; std::basic_ios<char,struct_std::char_traits<char>_>::setstate ((basic_ios_char_struct_std__char_traits_char___ *) (*(int *)(**(int **)(unaff_EBP + -0x14) + 4) + (int)*(int **)(unaff_EBP + -0x14)),4, true); return &DAT_100025af; } void __fastcall FUN_100025b5(int param_1) { int *piVar1; bool bVar2; int *unaff_EBX; int unaff_EBP; *(undefined4 *)(unaff_EBP + -4) = 1; std::basic_ios<char,struct_std::char_traits<char>_>::setstate ((basic_ios_char_struct_std__char_traits_char___ *) (*(int *)(*unaff_EBX + 4) + (int)unaff_EBX),param_1,false); *(undefined4 *)(unaff_EBP + -4) = 4; bVar2 = std::uncaught_exception(); piVar1 = *(int **)(unaff_EBP + -0x30); if (!bVar2) { std::basic_ostream<char,struct_std::char_traits<char>_>::_Osfx ((basic_ostream_char_struct_std__char_traits_char___ *)piVar1); } *(undefined *)(unaff_EBP + -4) = 5; piVar1 = *(int **)(*(int *)(*piVar1 + 4) + 0x38 + (int)piVar1); if (piVar1 != (int *)0x0) { (**(code **)(*piVar1 + 8))(); } ExceptionList = *(void **)(unaff_EBP + -0xc); return; } undefined4 * __fastcall FUN_10002620(undefined4 *param_1,char *param_2,undefined4 *param_3) { char cVar1; int iVar2; undefined4 *puVar3; undefined4 *puVar4; char *pcVar5; uint uVar6; uint local_18; void *local_10; undefined *puStack_c; undefined4 local_8; puStack_c = &LAB_1000b7a9; local_10 = ExceptionList; ExceptionList = &local_10; param_1[4] = 0; param_1[5] = 0xf; *(undefined *)param_1 = 0; local_8 = 0; pcVar5 = param_2; do { cVar1 = *pcVar5; pcVar5 = pcVar5 + 1; } while (cVar1 != '\0'); FUN_100028d0(param_1,pcVar5 + (param_3[4] - (int)(param_2 + 1))); pcVar5 = param_2; do { cVar1 = *pcVar5; pcVar5 = pcVar5 + 1; } while (cVar1 != '\0'); uVar6 = (int)pcVar5 - (int)(param_2 + 1); iVar2 = param_1[4]; if ((uint)(param_1[5] - iVar2) < uVar6) { local_18 = (uint)param_2 & 0xffffff00; FUN_10002770(param_1,uVar6,local_18,param_2,uVar6); } else { param_1[4] = iVar2 + uVar6; puVar3 = param_1; if (0xf < (uint)param_1[5]) { puVar3 = (undefined4 *)*param_1; } memmove((void *)((int)puVar3 + iVar2),param_2,uVar6); *(undefined *)((int)(void *)((int)puVar3 + iVar2) + uVar6) = 0; } puVar3 = param_3; if (0xf < (uint)param_3[5]) { puVar3 = (undefined4 *)*param_3; } iVar2 = param_1[4]; uVar6 = param_3[4]; if (uVar6 <= (uint)(param_1[5] - iVar2)) { param_1[4] = iVar2 + uVar6; puVar4 = param_1; if (0xf < (uint)param_1[5]) { puVar4 = (undefined4 *)*param_1; } memmove((void *)((int)puVar4 + iVar2),puVar3,uVar6); *(undefined *)((int)(void *)((int)puVar4 + iVar2) + uVar6) = 0; ExceptionList = local_10; return param_1; } param_3 = (undefined4 *)((uint)param_3 & 0xffffff00); FUN_10002770(param_1,uVar6,param_3,puVar3,uVar6); ExceptionList = local_10; return param_1; } void ** __thiscall FUN_10002770(void *this,uint param_1,undefined4 param_2,void *param_3,size_t param_4) { size_t _Size; uint uVar1; void *_Src; code *pcVar2; uint uVar3; uint uVar4; int iVar5; void **ppvVar6; void *_Dst; uint uVar7; void *pvVar8; _Size = *(size_t *)((int)this + 0x10); if (0x7fffffff - _Size < param_1) { FUN_100028c0(); pcVar2 = (code *)swi(3); ppvVar6 = (void **)(*pcVar2)(); return ppvVar6; } uVar1 = *(uint *)((int)this + 0x14); uVar7 = _Size + param_1 | 0xf; if (uVar7 < 0x80000000) { if (0x7fffffff - (uVar1 >> 1) < uVar1) { uVar7 = 0x7fffffff; } else { uVar3 = (uVar1 >> 1) + uVar1; if (uVar7 < uVar3) { uVar7 = uVar3; } } } else { uVar7 = 0x7fffffff; } uVar3 = uVar7 + 1; if (uVar3 < 0x1000) { if (uVar3 == 0) { _Dst = (void *)0x0; } else { _Dst = (void *)FUN_1000a4ab(uVar3); } } else { uVar4 = uVar7 + 0x24; if (uVar4 <= uVar3) { uVar4 = 0xffffffff; } iVar5 = FUN_1000a4ab(uVar4); if (iVar5 == 0) goto LAB_10002884; _Dst = (void *)(iVar5 + 0x23U & 0xffffffe0); *(int *)((int)_Dst - 4) = iVar5; } *(size_t *)((int)this + 0x10) = _Size + param_1; *(uint *)((int)this + 0x14) = uVar7; pvVar8 = (void *)((int)_Dst + _Size); if (uVar1 < 0x10) { memcpy(_Dst,this,_Size); memcpy(pvVar8,param_3,param_4); *(undefined *)(param_4 + (int)pvVar8) = 0; *(void **)this = _Dst; return (void **)this; } // WARNING: Load size is inaccurate _Src = *this; memcpy(_Dst,_Src,_Size); memcpy(pvVar8,param_3,param_4); *(undefined *)(param_4 + (int)pvVar8) = 0; pvVar8 = _Src; if ((uVar1 + 1 < 0x1000) || (pvVar8 = *(void **)((int)_Src + -4), (uint)((int)_Src + (-4 - (int)pvVar8)) < 0x20)) { FUN_1000a4db(pvVar8); *(void **)this = _Dst; return (void **)this; } LAB_10002884: // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } void FUN_100028c0(void) { code *pcVar1; std::_Xlength_error("string too long"); pcVar1 = (code *)swi(3); (*pcVar1)(); return; } void __thiscall FUN_100028d0(void *this,void *param_1) { uint uVar1; void *pvVar2; void *_Src; code *pcVar3; uint uVar4; int iVar5; void *_Dst; uint uVar6; void *pvVar7; void *pvVar8; pvVar8 = *(void **)((int)this + 0x10); if (param_1 < pvVar8) { return; } pvVar2 = *(void **)((int)this + 0x14); if (pvVar2 == param_1) { return; } if (pvVar2 < param_1) { if (0x7fffffffU - (int)pvVar8 < (uint)((int)param_1 - (int)pvVar8)) { FUN_100028c0(); pcVar3 = (code *)swi(3); (*pcVar3)(); return; } uVar6 = (uint)param_1 | 0xf; if (uVar6 < 0x80000000) { if ((void *)(0x7fffffff - ((uint)pvVar2 >> 1)) < pvVar2) { uVar6 = 0x7fffffff; } else { uVar1 = ((uint)pvVar2 >> 1) + (int)pvVar2; if (uVar6 < uVar1) { uVar6 = uVar1; } } } else { uVar6 = 0x7fffffff; } uVar1 = uVar6 + 1; if (uVar1 < 0x1000) { if (uVar1 == 0) { _Dst = (void *)0x0; } else { _Dst = (void *)FUN_1000a4ab(uVar1); } } else { uVar4 = uVar6 + 0x24; if (uVar4 <= uVar1) { uVar4 = 0xffffffff; } iVar5 = FUN_1000a4ab(uVar4); if (iVar5 == 0) goto LAB_10002a58; _Dst = (void *)(iVar5 + 0x23U & 0xffffffe0); *(int *)((int)_Dst - 4) = iVar5; } *(void **)((int)this + 0x10) = param_1; *(uint *)((int)this + 0x14) = uVar6; if (pvVar2 < (void *)0x10) { memcpy(_Dst,this,(int)pvVar8 + 1U); *(void **)this = _Dst; *(void **)((int)this + 0x10) = pvVar8; return; } // WARNING: Load size is inaccurate _Src = *this; memcpy(_Dst,_Src,(int)pvVar8 + 1U); pvVar7 = _Src; if (((int)pvVar2 + 1U < 0x1000) || (pvVar7 = *(void **)((int)_Src + -4), (uint)((int)_Src + (-4 - (int)pvVar7)) < 0x20)) { FUN_1000a4db(pvVar7); *(void **)this = _Dst; *(void **)((int)this + 0x10) = pvVar8; return; } } else { if ((void *)0xf < param_1) { return; } if (pvVar2 < (void *)0x10) { return; } // WARNING: Load size is inaccurate pvVar2 = *this; memcpy(this,pvVar2,(int)pvVar8 + 1); pvVar8 = pvVar2; if ((*(int *)((int)this + 0x14) + 1U < 0x1000) || (pvVar8 = *(void **)((int)pvVar2 + -4), (uint)((int)pvVar2 + (-4 - (int)pvVar8)) < 0x20)) { FUN_1000a4db(pvVar8); *(undefined4 *)((int)this + 0x14) = 0xf; return; } } LAB_10002a58: // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } void __thiscall FUN_10002a64(void *this,byte param_1) { FUN_10002150((void *)((int)this - *(int *)((int)this + -4)),param_1); return; } void __fastcall FUN_10002a70(longlong *param_1) { uint uVar1; uint extraout_ECX; uint uVar2; undefined8 uVar3; ulonglong uVar4; longlong lVar5; uVar3 = _Query_perf_frequency(); uVar2 = (uint)((ulonglong)uVar3 >> 0x20); uVar1 = (uint)uVar3; uVar3 = _Query_perf_counter(); uVar3 = __alldvrm((uint)uVar3,(uint)((ulonglong)uVar3 >> 0x20),uVar1,uVar2); uVar4 = __allmul(extraout_ECX,uVar1,1000000000,0); lVar5 = __alldiv((uint)uVar4,(uint)(uVar4 >> 0x20),uVar1,uVar2); uVar4 = __allmul((uint)uVar3,(uint)((ulonglong)uVar3 >> 0x20),1000000000,0); *param_1 = lVar5 + uVar4; return; } void __fastcall FUN_10002af0(void *param_1,undefined4 *param_2,undefined4 param_3,int *param_4) { void **ppvVar1; code *pcVar2; undefined *puVar3; void *pvVar4; int *piVar5; undefined4 *puVar6; int *piVar7; uint uVar8; int iVar9; undefined4 *local_50; int *local_44; undefined4 *local_40; void *local_3c; void *pvStack_38; void *pvStack_34; void *pvStack_30; undefined4 local_2c; uint uStack_28; uint local_24; undefined *puStack_20; void *local_1c; undefined *puStack_18; undefined4 local_14; puStack_20 = &stack0xfffffffc; local_14 = 0xffffffff; puStack_18 = &LAB_1000b7e0; local_1c = ExceptionList; local_24 = DAT_10012024 ^ (uint)&stack0xfffffff0; ExceptionList = &local_1c; local_44 = (int *)0x0; local_40 = param_2; if (0xf < (uint)param_2[5]) { local_40 = (undefined4 *)*param_2; } puVar3 = &stack0xfffffffc; if ((param_2[4] == 0) || (pvVar4 = memchr(local_40,0x7c,param_2[4]), puVar3 = puStack_20, pvVar4 == (void *)0x0)) { puStack_20 = puVar3; iVar9 = -1; } else { iVar9 = (int)pvVar4 - (int)local_40; } if (iVar9 != -1) { do { local_2c = 0; uStack_28 = 0xf; local_3c = (void *)((uint)local_3c & 0xffffff00); if ((int *)param_2[4] < local_44) goto LAB_10002d7e; piVar5 = (int *)((int)(int *)param_2[4] - (int)local_44); piVar7 = (int *)(iVar9 - (int)local_44); if (piVar5 < (int *)(iVar9 - (int)local_44)) { piVar7 = piVar5; } puVar6 = param_2; if (0xf < (uint)param_2[5]) { puVar6 = (undefined4 *)*param_2; } FUN_10002250(&local_3c,(void *)((int)puVar6 + (int)local_44),piVar7); pvVar4 = local_3c; local_14 = 0; ppvVar1 = (void **)param_4[1]; if ((void **)param_4[2] == ppvVar1) { FUN_100044f0(param_4,ppvVar1,&local_3c); uVar8 = uStack_28; } else { local_3c = (void *)((uint)local_3c & 0xffffff00); *ppvVar1 = pvVar4; ppvVar1[1] = pvStack_38; ppvVar1[2] = pvStack_34; ppvVar1[3] = pvStack_30; *(ulonglong *)(ppvVar1 + 4) = CONCAT44(uStack_28,local_2c); param_4[1] = param_4[1] + 0x18; uVar8 = 0xf; } local_14 = 0xffffffff; if (0xf < uVar8) { pvVar4 = local_3c; if ((0xfff < uVar8 + 1) && (pvVar4 = *(void **)((int)local_3c + -4), 0x1f < (uint)((int)local_3c + (-4 - (int)pvVar4)))) goto LAB_10002d78; FUN_1000a4db(pvVar4); } local_44 = (int *)(iVar9 + 1); local_50 = param_2; if (0xf < (uint)param_2[5]) { local_50 = (undefined4 *)*param_2; } piVar7 = (int *)param_2[4]; if (local_44 < piVar7) { piVar5 = (int *)((int)piVar7 - (int)local_44); pvVar4 = memchr((void *)((int)local_50 + (int)local_44),0x7c,(size_t)piVar5); if (pvVar4 == (void *)0x0) goto LAB_10002c81; iVar9 = (int)pvVar4 - (int)local_50; } else { piVar5 = (int *)((int)piVar7 - (int)local_44); LAB_10002c81: iVar9 = -1; } } while (iVar9 != -1); local_2c = 0; uStack_28 = 0xf; local_3c = (void *)((uint)local_3c & 0xffffff00); if (piVar7 < local_44) { LAB_10002d7e: uStack_28 = 0xf; local_2c = 0; FUN_100044e0(); pcVar2 = (code *)swi(3); (*pcVar2)(); return; } if (piVar5 < piVar7) { piVar7 = piVar5; } if (0xf < (uint)param_2[5]) { param_2 = (undefined4 *)*param_2; } FUN_10002250(&local_3c,(void *)((int)param_2 + (int)local_44),piVar7); pvVar4 = local_3c; local_14 = 1; ppvVar1 = (void **)param_4[1]; if ((void **)param_4[2] == ppvVar1) { FUN_100044f0(param_4,ppvVar1,&local_3c); uVar8 = uStack_28; } else { local_3c = (void *)((uint)local_3c & 0xffffff00); *ppvVar1 = pvVar4; ppvVar1[1] = pvStack_38; ppvVar1[2] = pvStack_34; ppvVar1[3] = pvStack_30; *(ulonglong *)(ppvVar1 + 4) = CONCAT44(uStack_28,local_2c); param_4[1] = param_4[1] + 0x18; uVar8 = 0xf; } local_14 = 0xffffffff; if (0xf < uVar8) { pvVar4 = local_3c; if ((0xfff < uVar8 + 1) && (pvVar4 = *(void **)((int)local_3c + -4), 0x1f < (uint)((int)local_3c + (-4 - (int)pvVar4)) )) { LAB_10002d78: local_14 = 0xffffffff; // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar4); } } FUN_100043a0(param_1,(void **)(*param_4 + 0x18)); ExceptionList = local_1c; ___security_check_cookie_4(local_24 ^ (uint)&stack0xfffffff0); return; } undefined4 _Java_com_vue_browserlock_win_natives_NativeProxy_getAllProcessIDs_8(int *param_1) { code *pcVar1; void *pvVar2; void *pvVar3; undefined4 uVar4; uint uVar5; uint uVar6; bool bVar7; bool bVar8; void *local_14; int local_10; int local_c; undefined4 local_8; // 0x2d90 7 // _Java_com_vue_browserlock_win_natives_NativeProxy_getAllProcessIDs@8 local_14 = (void *)0x0; local_10 = 0; local_c = 0; FUN_10006720(&local_14); pvVar2 = local_14; uVar6 = local_10 - (int)local_14 >> 2; local_8 = (**(code **)(*param_1 + 0x2d0))(param_1,uVar6); pvVar3 = (void *)FUN_1000a4e9(-(uint)((int)((ulonglong)uVar6 * 8 >> 0x20) != 0) | (uint)((ulonglong)uVar6 * 8)); uVar4 = local_8; uVar5 = 0; if (0 < (int)uVar6) { bVar7 = false; bVar8 = uVar6 == 0; do { if (bVar7 || bVar8) { FUN_10004460(); pcVar1 = (code *)swi(3); uVar4 = (*pcVar1)(); return uVar4; } *(undefined4 *)((int)pvVar3 + uVar5 * 8) = *(undefined4 *)((int)pvVar2 + uVar5 * 4); *(undefined4 *)((int)pvVar3 + uVar5 * 8 + 4) = 0; uVar5 = uVar5 + 1; bVar7 = uVar6 < uVar5; bVar8 = uVar6 == uVar5; } while (!bVar8 && (int)uVar5 <= (int)uVar6); } (**(code **)(*param_1 + 0x350))(param_1,local_8,0,uVar6,pvVar3); free(pvVar3); if (pvVar2 != (void *)0x0) { pvVar3 = pvVar2; if (0xfff < (local_c - (int)pvVar2 & 0xfffffffcU)) { pvVar3 = *(void **)((int)pvVar2 + -4); if (0x1f < (uint)((int)pvVar2 + (-4 - (int)pvVar3))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } } FUN_1000a4db(pvVar3); } return uVar4; } // WARNING: Removing unreachable block (ram,0x100031cf) // WARNING: Removing unreachable block (ram,0x10003205) // WARNING: Removing unreachable block (ram,0x10003215) void _Java_com_vue_browserlock_win_natives_NativeProxy_getBackgroundProcessData_24 (int *param_1,undefined4 param_2,DWORD param_3,undefined4 param_4,int param_5, byte param_6) { char cVar1; void *pvVar2; undefined4 uVar3; char *pcVar4; int *piVar5; char *pcVar6; undefined4 extraout_ECX; undefined4 ****ppppuVar7; uint unaff_EBX; undefined4 unaff_EDI; undefined8 uVar8; undefined4 *in_stack_fffffe10; undefined auStack_1d8 [4]; undefined4 uStack_1d4; undefined4 *puVar9; undefined *puVar10; int iStack_1a4; uint local_1a0; int iStack_19c; undefined8 local_198; int iStack_18c; int local_188 [2]; undefined4 auStack_180 [2]; basic_iostream_char_struct_std__char_traits_char___ abStack_178 [72]; basic_ios_char_struct_std__char_traits_char___ abStack_130 [68]; undefined uStack_ec; void *pvStack_e8; void *pvStack_e0; undefined4 uStack_dc; undefined4 local_d8; undefined4 ****ppppuStack_d4; void *pvStack_d0; uint uStack_cc; uint uStack_c4; uint uStack_c0; uint uStack_bc; void *pvStack_b0; undefined local_a8 [8]; undefined4 uStack_a0; uint uStack_9c; undefined auStack_98 [8]; DWORD local_90 [29]; uint uStack_1c; uint uStack_14; uint local_c; // 0x2e80 8 // _Java_com_vue_browserlock_win_natives_NativeProxy_getBackgroundProcessData@24 local_c = DAT_10012024 ^ (uint)&iStack_1a4; local_198._4_4_ = param_4; local_1a0 = local_1a0 & 0xffffff00 | (uint)param_6; if (param_5 != 0) { puVar9 = &local_d8; pvVar2 = (void *)FUN_100067b0(local_90,param_3,param_6); FUN_10005b30(pvVar2,(undefined *)puVar9); (**(code **)(*param_1 + 0x29c))(); if (0xf < uStack_cc) { pvVar2 = pvStack_e0; if ((0xfff < uStack_cc + 1) && (pvVar2 = *(void **)((int)pvStack_e0 + -4), 0x1f < (uint)((int)pvStack_e0 + (-4 - (int)pvVar2)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar2); } pvStack_d0 = (void *)0x0; uStack_cc = 0xf; pvStack_e0 = (void *)((uint)pvStack_e0 & 0xffffff00); FUN_100059c0((int)auStack_98); ___security_check_cookie_4(uStack_14 ^ (uint)&stack0xfffffe54); return; } FUN_10001b00(local_188); FUN_10002a70(&local_198); puVar10 = local_a8; pvVar2 = (void *)FUN_100067b0(local_90,param_3,(char)local_1a0); FUN_10005b30(pvVar2,puVar10); (**(code **)(*param_1 + 0x29c))(); if (0xf < uStack_9c) { pvVar2 = pvStack_b0; if ((0xfff < uStack_9c + 1) && (pvVar2 = *(void **)((int)pvStack_b0 + -4), 0x1f < (uint)((int)pvStack_b0 + (-4 - (int)pvVar2)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar2); } uStack_a0 = 0; uStack_9c = 0xf; pvStack_b0 = (void *)((uint)pvStack_b0 & 0xffffff00); FUN_100059c0((int)auStack_98); FUN_10002a70((longlong *)&stack0xfffffe58); uVar8 = __alldiv(unaff_EBX - local_1a0,(iStack_1a4 - iStack_19c) - (uint)(unaff_EBX < local_1a0), 1000000,0); uVar3 = (undefined4)uVar8; pcVar4 = (char *)(**(code **)(*param_1 + 0x2a4))(); uStack_dc = 0; local_d8 = 0xf; uStack_ec = 0; pcVar6 = pcVar4; do { cVar1 = *pcVar6; pcVar6 = pcVar6 + 1; } while (cVar1 != '\0'); FUN_10002250(&uStack_ec,pcVar4,(int *)(pcVar6 + -(int)(pcVar4 + 1))); iStack_1a4 = 0; FUN_10002af0(&ppppuStack_d4,(undefined4 *)&uStack_ec,extraout_ECX,(int *)&stack0xfffffe54); piVar5 = FUN_100023d0(&iStack_18c,"Time taken to fetch the process details for "); ppppuVar7 = &ppppuStack_d4; if (0xf < uStack_c0) { ppppuVar7 = ppppuStack_d4; } uStack_1d4 = 0x1000310e; piVar5 = FUN_10004740(piVar5,(char *)ppppuVar7,uStack_c4); piVar5 = FUN_100023d0(piVar5," process from native is: processFetchTime="); piVar5 = (int *)std::basic_ostream<char,struct_std::char_traits<char>_>::operator__ ((basic_ostream_char_struct_std__char_traits_char___ *)piVar5, CONCAT44(unaff_EDI,uVar3)); FUN_100023d0(piVar5," ms"); auStack_1d8[0] = 0; FUN_10002250(auStack_1d8,&DAT_1000d57c,(int *)0x4); FUN_10001a40(&local_198,&stack0xfffffe10); FUN_10005830(in_stack_fffffe10); if (0xf < uStack_bc) { pvVar2 = pvStack_d0; if ((0xfff < uStack_bc + 1) && (pvVar2 = *(void **)((int)pvStack_d0 + -4), 0x1f < (uint)((int)pvStack_d0 + (-4 - (int)pvVar2)))) goto LAB_1000324d; FUN_1000a4db(pvVar2); } pvStack_d0 = (void *)((uint)pvStack_d0 & 0xffffff00); uStack_bc = 0xf; uStack_c0 = 0; if ((undefined4 ****)0xf < ppppuStack_d4) { pvVar2 = pvStack_e8; if (((char *)0xfff < (char *)((int)ppppuStack_d4 + 1)) && (pvVar2 = *(void **)((int)pvStack_e8 + -4), 0x1f < (uint)((int)pvStack_e8 + (-4 - (int)pvVar2)))) { LAB_1000324d: // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar2); } local_d8 = 0; ppppuStack_d4 = (undefined4 ****)0xf; pvStack_e8 = (void *)((uint)pvStack_e8 & 0xffffff00); *(undefined ***)((int)&local_198 + *(int *)((int)local_198 + 4)) = std::basic_stringstream<char,struct_std::char_traits<char>,class_std::allocator<char>_>:: vftable; *(int *)((int)&iStack_19c + *(int *)((int)local_198 + 4)) = *(int *)((int)local_198 + 4) + -0x68; FUN_100020a0(auStack_180); std::basic_iostream<char,struct_std::char_traits<char>_>:: _basic_iostream_char_struct_std__char_traits_char___(abStack_178); std::basic_ios<char,struct_std::char_traits<char>_>:: _basic_ios_char_struct_std__char_traits_char___(abStack_130); ___security_check_cookie_4(uStack_1c ^ (uint)&stack0xfffffe4c); return; } // WARNING: Globals starting with '_' overlap smaller symbols at the same address void _Java_com_vue_browserlock_win_natives_NativeProxy_queryCIMV2Object_16 (int *param_1,undefined4 param_2,uint param_3,uint param_4) { char cVar1; short sVar2; char *pcVar3; char *pcVar4; size_t sVar5; char *pcVar6; int *piVar7; size_t _MaxCount; void *pvVar8; void *in_stack_ffffff60; int *piStack_88; uint uStack_84; char *pcStack_80; int *piStack_7c; undefined auStack_4c [4]; uint local_48; uint local_44; int *local_40; void *apvStack_3c [3]; undefined auStack_30 [16]; undefined4 uStack_20; undefined4 uStack_1c; uint local_c; // 0x32e0 20 // _Java_com_vue_browserlock_win_natives_NativeProxy_queryCIMV2Object@16 local_c = DAT_10012024 ^ (uint)auStack_4c; local_40 = param_1; local_44 = param_3; local_48 = param_4; pcVar3 = (char *)(**(code **)(*param_1 + 0x2a4))(); uStack_20 = 0; uStack_1c = 0xf; auStack_30[0] = 0; pcVar6 = pcVar3; do { cVar1 = *pcVar6; pcVar6 = pcVar6 + 1; } while (cVar1 != '\0'); FUN_10002250(auStack_30,pcVar3,(int *)(pcVar6 + -(int)(pcVar3 + 1))); pcVar4 = (char *)(**(code **)(*param_1 + 0x2a4))(); local_44 = 0; local_40 = (int *)0xf; pcVar6 = pcVar4; do { cVar1 = *pcVar6; pcVar6 = pcVar6 + 1; } while (cVar1 != '\0'); piStack_7c = (int *)0x10003388; FUN_10002250(&stack0xffffffac,pcVar4,(int *)(pcVar6 + -(int)(pcVar4 + 1))); uStack_84 = param_4; if (_DAT_100126c0 == 0) { _DAT_100126c0 = FUN_1000a4ab(1); uStack_84 = param_4; } FUN_100043a0(&piStack_88,(void **)&stack0xffffffac); FUN_100043a0(&stack0xffffff60,apvStack_3c); FUN_100011e0(in_stack_ffffff60); piStack_7c = param_1; pcStack_80 = (char *)0x100033d7; (**(code **)(*param_1 + 0x2a8))(); piStack_88 = param_1; pcStack_80 = pcVar4; (**(code **)(*param_1 + 0x2a8))(); piVar7 = piStack_7c; do { sVar2 = *(short *)piVar7; piVar7 = (int *)((int)piVar7 + 2); } while (sVar2 != 0); _MaxCount = (int)piVar7 - ((int)piStack_7c + 2) >> 1; sVar5 = wcstombs((char *)0x0,(wchar_t *)piStack_7c,_MaxCount); pcVar6 = (char *)FUN_1000a4e9(sVar5 + 1); wcstombs(pcVar6,(wchar_t *)piStack_7c,_MaxCount); pcVar6[sVar5] = '\0'; (**(code **)(*param_1 + 0x29c))(); free(pcVar6); if (0xf < param_3) { pcVar6 = pcVar3; if (0xfff < param_3 + 1) { pcVar6 = *(char **)(pcVar3 + -4); if ((char *)0x1f < pcVar3 + (-4 - (int)pcVar6)) goto LAB_100034a9; } FUN_1000a4db(pcVar6); } if (0xf < local_48) { pvVar8 = (void *)0x0; if (0xfff < local_48 + 1) { pvVar8 = pvRamfffffffc; if (0x1f < 0xfffffffcU - (int)pvRamfffffffc) { LAB_100034a9: // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } } FUN_1000a4db(pvVar8); } piStack_88 = (int *)0x100034c9; ___security_check_cookie_4(local_44 ^ (uint)&uStack_84); return; } uint _Java_com_vue_browserlock_win_natives_NativeProxy_terminateProcess_16 (undefined4 param_1,undefined4 param_2,DWORD param_3) { HANDLE hObject; undefined *puVar1; HMODULE hModule; FARPROC pFVar2; int iVar3; byte *pbVar4; byte bVar5; uint in_stack_ffffffc4; undefined4 *puVar6; undefined local_24 [8]; undefined4 uStack_1c; char *lpProcName; // 0x34d0 25 // _Java_com_vue_browserlock_win_natives_NativeProxy_terminateProcess@16 uStack_1c = 0x100034e7; hObject = OpenProcess(0x1fffff,0,param_3); if (hObject == (HANDLE)0x0) { puVar1 = (undefined *)FUN_1000a4ab(1); *puVar1 = 0; return (uint)puVar1 & 0xffffff00; } lpProcName = "NtTerminateProcess"; hModule = GetModuleHandleA("ntdll"); pFVar2 = GetProcAddress(hModule,lpProcName); if (pFVar2 == (FARPROC)0x0) { local_24[0] = 0; FUN_10002250(local_24,"ERROR",(int *)0x5); puVar6 = (undefined4 *)(in_stack_ffffffc4 & 0xffffff00); FUN_10002250(&stack0xffffffc4,"Error finding function: NtTerminateProcess",(int *)0x2a); FUN_10005830(puVar6); bVar5 = 0; } else { iVar3 = (*pFVar2)(); bVar5 = 1; if (iVar3 < 0) { bVar5 = 0; } } CloseHandle(hObject); pbVar4 = (byte *)FUN_1000a4ab(1); *pbVar4 = bVar5; return (uint)pbVar4 & 0xffffff00 | (uint)bVar5; } // WARNING: Could not reconcile some variable overlaps void _Java_com_vue_browserlock_win_natives_NativeProxy_suspendProcess_16 (undefined4 param_1,undefined4 param_2,DWORD param_3) { HANDLE hObject; HMODULE hModule; FARPROC pFVar1; uint uVar2; int iVar3; int *piVar4; char *pcVar5; uint extraout_ECX; uint extraout_ECX_00; void *pvVar6; uint uVar7; undefined4 *****pppppuVar8; char cVar9; undefined8 uVar10; undefined8 uVar11; ulonglong uVar12; ulonglong uVar13; longlong lVar14; longlong lVar15; __int64 _Var16; uint in_stack_fffffec8; undefined4 *puVar17; undefined4 *in_stack_fffffecc; uint local_fc; undefined8 local_f8; uint local_f0; DWORD local_ec; undefined4 local_e8; int local_dc [2]; undefined auStack_d4 [12]; int local_c8 [2]; undefined4 auStack_c0 [2]; basic_iostream_char_struct_std__char_traits_char___ abStack_b8 [72]; basic_ios_char_struct_std__char_traits_char___ abStack_70 [76]; undefined4 *****local_24; void *pvStack_20; uint uStack_14; uint uStack_10; uint local_c; // 0x35a0 24 // _Java_com_vue_browserlock_win_natives_NativeProxy_suspendProcess@16 local_c = DAT_10012024 ^ (uint)&local_fc; local_ec = param_3; FUN_10001b00(local_dc + 1); uVar10 = _Query_perf_frequency(); uVar7 = (uint)((ulonglong)uVar10 >> 0x20); uVar2 = (uint)uVar10; uVar11 = _Query_perf_counter(); local_fc = (uint)((ulonglong)uVar10 >> 0x20); local_f8._0_4_ = (uint)uVar10; uVar11 = __alldvrm((uint)uVar11,(uint)((ulonglong)uVar11 >> 0x20),uVar2,uVar7); local_fc = (uint)((ulonglong)uVar10 >> 0x20); local_f8._0_4_ = (uint)uVar10; uVar12 = __allmul((uint)uVar11,(uint)((ulonglong)uVar11 >> 0x20),1000000000,0); local_fc = (uint)((ulonglong)uVar10 >> 0x20); local_f8._0_4_ = (uint)uVar10; local_f8._4_4_ = (uint)(uVar12 >> 0x20); uVar13 = __allmul(extraout_ECX,uVar7,1000000000,0); local_fc = (uint)((ulonglong)uVar10 >> 0x20); local_f8._0_4_ = (uint)uVar10; lVar14 = __alldiv((uint)uVar13,(uint)(uVar13 >> 0x20),(uint)local_f8,local_fc); local_fc = (uint)((ulonglong)uVar10 >> 0x20); local_f8._0_4_ = (uint)uVar10; lVar14 = lVar14 + (uVar12 & 0xffffffff | (ulonglong)local_f8._4_4_ << 0x20); hObject = OpenProcess(0x1fffff,0,local_ec); local_fc = (uint)((ulonglong)uVar10 >> 0x20); local_f8._0_4_ = (uint)uVar10; local_e8 = (undefined4)((ulonglong)lVar14 >> 0x20); local_dc[0] = (int)lVar14; if (hObject == (HANDLE)0x0) { local_fc = 0; } else { pcVar5 = "NtSuspendProcess"; hModule = GetModuleHandleA("ntdll"); local_fc = (uint)((ulonglong)uVar10 >> 0x20); local_f8._0_4_ = (uint)uVar10; local_e8 = (undefined4)((ulonglong)lVar14 >> 0x20); local_dc[0] = (int)lVar14; pFVar1 = GetProcAddress(hModule,pcVar5); local_fc = (uint)((ulonglong)uVar10 >> 0x20); local_f8._0_4_ = (uint)uVar10; local_e8 = (undefined4)((ulonglong)lVar14 >> 0x20); local_dc[0] = (int)lVar14; if (pFVar1 == (FARPROC)0x0) { FUN_10002250(&stack0xfffffee0,"ERROR",(int *)0x5); local_fc = (uint)((ulonglong)uVar10 >> 0x20); local_f8._0_4_ = (uint)uVar10; local_e8 = (undefined4)((ulonglong)lVar14 >> 0x20); local_dc[0] = (int)lVar14; puVar17 = (undefined4 *)(in_stack_fffffec8 & 0xffffff00); FUN_10002250(&stack0xfffffec8,"Error finding function: NtSuspendProcess",(int *)0x28); local_fc = (uint)((ulonglong)uVar10 >> 0x20); local_f8._0_4_ = (uint)uVar10; local_e8 = (undefined4)((ulonglong)lVar14 >> 0x20); local_dc[0] = (int)lVar14; uVar2 = FUN_10005830(puVar17); local_fc = (uint)((ulonglong)uVar10 >> 0x20); local_f8._0_4_ = (uint)uVar10; local_e8 = (undefined4)((ulonglong)lVar14 >> 0x20); local_dc[0] = (int)lVar14; local_fc = uVar2 & 0xffffff00; } else { iVar3 = (*pFVar1)(); local_fc = (uint)((ulonglong)uVar10 >> 0x20); local_f8._0_4_ = (uint)uVar10; local_e8 = (undefined4)((ulonglong)lVar14 >> 0x20); local_dc[0] = (int)lVar14; local_fc = (uint)(-1 < iVar3); } CloseHandle(hObject); local_e8 = (undefined4)((ulonglong)lVar14 >> 0x20); local_dc[0] = (int)lVar14; } local_f8 = _Query_perf_frequency(); uVar7 = (uint)((ulonglong)local_f8 >> 0x20); uVar2 = (uint)local_f8; local_e8 = (undefined4)((ulonglong)lVar14 >> 0x20); local_dc[0] = (int)lVar14; uVar10 = _Query_perf_counter(); local_e8 = (undefined4)((ulonglong)lVar14 >> 0x20); local_dc[0] = (int)lVar14; uVar10 = __alldvrm((uint)uVar10,(uint)((ulonglong)uVar10 >> 0x20),uVar2,uVar7); local_e8 = (undefined4)((ulonglong)lVar14 >> 0x20); local_dc[0] = (int)lVar14; uVar12 = __allmul((uint)uVar10,(uint)((ulonglong)uVar10 >> 0x20),1000000000,0); local_e8 = (undefined4)((ulonglong)lVar14 >> 0x20); local_dc[0] = (int)lVar14; local_f0 = (uint)(uVar12 >> 0x20); uVar13 = __allmul(extraout_ECX_00,uVar7,1000000000,0); local_e8 = (undefined4)((ulonglong)lVar14 >> 0x20); local_dc[0] = (int)lVar14; lVar15 = __alldiv((uint)uVar13,(uint)(uVar13 >> 0x20),(uint)local_f8,local_f8._4_4_); local_e8 = (undefined4)((ulonglong)lVar14 >> 0x20); local_dc[0] = (int)lVar14; lVar15 = (lVar15 + (uVar12 & 0xffffffff | (ulonglong)local_f0 << 0x20)) - lVar14; _Var16 = __alldiv((uint)lVar15,(uint)((ulonglong)lVar15 >> 0x20),1000,0); local_e8 = (undefined4)((ulonglong)lVar14 >> 0x20); local_dc[0] = (int)lVar14; cVar9 = (char)local_fc; if (cVar9 != '\0') { FUN_10006240(&local_24,local_ec); local_e8 = (undefined4)((ulonglong)lVar14 >> 0x20); local_dc[0] = (int)lVar14; piVar4 = FUN_100023d0(local_c8,"Time taken to suspend the process "); local_e8 = (undefined4)((ulonglong)lVar14 >> 0x20); local_dc[0] = (int)lVar14; pppppuVar8 = &local_24; if (0xf < uStack_10) { pppppuVar8 = local_24; } piVar4 = FUN_10004740(piVar4,(char *)pppppuVar8,uStack_14); local_e8 = (undefined4)((ulonglong)lVar14 >> 0x20); local_dc[0] = (int)lVar14; piVar4 = FUN_100023d0(piVar4," from native is: processSuspendTime="); local_e8 = (undefined4)((ulonglong)lVar14 >> 0x20); local_dc[0] = (int)lVar14; piVar4 = (int *)std::basic_ostream<char,struct_std::char_traits<char>_>::operator__ ((basic_ostream_char_struct_std__char_traits_char___ *)piVar4,_Var16); local_e8 = (undefined4)((ulonglong)lVar14 >> 0x20); local_dc[0] = (int)lVar14; FUN_100023d0(piVar4," microseconds"); local_e8 = (undefined4)((ulonglong)lVar14 >> 0x20); local_dc[0] = (int)lVar14; FUN_10002250(&stack0xfffffee4,&DAT_1000d57c,(int *)0x4); local_e8 = (undefined4)((ulonglong)lVar14 >> 0x20); local_dc[0] = (int)lVar14; FUN_10001a40(auStack_d4,&stack0xfffffecc); local_e8 = (undefined4)((ulonglong)lVar14 >> 0x20); local_dc[0] = (int)lVar14; FUN_10005830(in_stack_fffffecc); local_e8 = (undefined4)((ulonglong)lVar14 >> 0x20); local_dc[0] = (int)lVar14; if (0xf < local_c) { pvVar6 = pvStack_20; if ((0xfff < local_c + 1) && (pvVar6 = *(void **)((int)pvStack_20 + -4), 0x1f < (uint)((int)pvStack_20 + (-4 - (int)pvVar6)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); local_e8 = (undefined4)((ulonglong)lVar14 >> 0x20); local_dc[0] = (int)lVar14; } FUN_1000a4db(pvVar6); local_e8 = (undefined4)((ulonglong)lVar14 >> 0x20); local_dc[0] = (int)lVar14; } } pcVar5 = (char *)FUN_1000a4ab(1); local_e8 = (undefined4)((ulonglong)lVar14 >> 0x20); local_dc[0] = (int)lVar14; *pcVar5 = cVar9; *(undefined ***)(auStack_d4 + *(int *)(local_dc[1] + 4) + -4) = std::basic_stringstream<char,struct_std::char_traits<char>,class_std::allocator<char>_>:: vftable; *(int *)((int)local_dc + *(int *)(local_dc[1] + 4)) = *(int *)(local_dc[1] + 4) + -0x68; FUN_100020a0(auStack_c0); std::basic_iostream<char,struct_std::char_traits<char>_>:: _basic_iostream_char_struct_std__char_traits_char___(abStack_b8); std::basic_ios<char,struct_std::char_traits<char>_>:: _basic_ios_char_struct_std__char_traits_char___(abStack_70); ___security_check_cookie_4(local_c ^ (uint)&local_fc); return; } void _Java_com_vue_browserlock_win_natives_NativeProxy_getWindowProcesses_8(int *param_1) { undefined4 uVar1; undefined4 *puVar2; void *pvVar3; int iVar4; int *piVar5; int unaff_EDI; int iVar6; int iStack_10c; int *piVar7; char *pcVar8; int iStack_f4; undefined **local_f0; int local_ec; undefined4 local_e8; undefined4 local_e4; undefined *puStack_e0; undefined **appuStack_d8 [2]; basic_iostream_char_struct_std__char_traits_char___ abStack_d0 [48]; undefined4 uStack_a0; undefined4 uStack_9c; basic_ios_char_struct_std__char_traits_char___ abStack_88 [76]; void *apvStack_3c [4]; undefined4 uStack_2c; uint uStack_28; uint uStack_24; uint local_c; // 0x38b0 15 // _Java_com_vue_browserlock_win_natives_NativeProxy_getWindowProcesses@8 local_c = DAT_10012024 ^ (uint)&iStack_f4; local_e4 = 0; local_f0 = (undefined **)0x0; local_ec = 0; local_e8 = 0; iStack_10c = 0x10003900; EnumWindows(FUN_10006b00,(LPARAM)&local_f0); pcVar8 = "java/lang/String"; iVar4 = local_ec - (int)local_f0 >> 7; iStack_10c = 0x10003918; piVar5 = param_1; uVar1 = (**(code **)(*param_1 + 0x18))(); iStack_10c = 0; uVar1 = (**(code **)(*param_1 + 0x2b0))(param_1,iVar4,uVar1); iVar6 = 0; if (0 < iVar4) { iStack_10c = 0; do { local_f0 = &PTR_1000d508; puStack_e0 = &DAT_1000d4b8; std::basic_ios<char,struct_std::char_traits<char>_>:: basic_ios_char_struct_std__char_traits_char___(abStack_88); std::basic_iostream<char,struct_std::char_traits<char>_>:: basic_iostream_char_struct_std__char_traits_char___ ((basic_iostream_char_struct_std__char_traits_char___ *)&local_f0, (basic_streambuf_char_struct_std__char_traits_char___ *)appuStack_d8); *(undefined ***)((int)&local_f0 + (int)local_f0[1]) = std::basic_stringstream<char,struct_std::char_traits<char>,class_std::allocator<char>_>:: vftable; *(undefined **)((int)&iStack_f4 + (int)local_f0[1]) = local_f0[1] + -0x68; std::basic_streambuf<char,struct_std::char_traits<char>_>:: basic_streambuf_char_struct_std__char_traits_char___ ((basic_streambuf_char_struct_std__char_traits_char___ *)appuStack_d8); appuStack_d8[0] = std::basic_stringbuf<char,struct_std::char_traits<char>,class_std::allocator<char>_>:: vftable; uStack_a0 = 0; uStack_9c = 0; puVar2 = (undefined4 *) FUN_10005b30((void *)(iStack_10c + (int)piVar5),(undefined *)apvStack_3c); if (0xf < (uint)puVar2[5]) { puVar2 = (undefined4 *)*puVar2; } iStack_f4 = (**(code **)(*param_1 + 0x29c))(param_1,puVar2); if (0xf < uStack_28) { pvVar3 = apvStack_3c[0]; if ((0xfff < uStack_28 + 1) && (pvVar3 = *(void **)((int)apvStack_3c[0] + -4), 0x1f < (uint)((int)apvStack_3c[0] + (-4 - (int)pvVar3)))) goto LAB_10003ae5; FUN_1000a4db(pvVar3); } uStack_2c = 0; uStack_28 = 0xf; apvStack_3c[0] = (void *)((uint)apvStack_3c[0] & 0xffffff00); (**(code **)(*param_1 + 0x2b8))(param_1,uVar1,iVar6,iStack_f4); *(undefined ***)((int)&local_f0 + (int)local_f0[1]) = std::basic_stringstream<char,struct_std::char_traits<char>,class_std::allocator<char>_>:: vftable; *(undefined **)((int)&iStack_f4 + (int)local_f0[1]) = local_f0[1] + -0x68; FUN_100020a0(appuStack_d8); std::basic_iostream<char,struct_std::char_traits<char>_>:: _basic_iostream_char_struct_std__char_traits_char___(abStack_d0); std::basic_ios<char,struct_std::char_traits<char>_>:: _basic_ios_char_struct_std__char_traits_char___(abStack_88); iStack_10c = iStack_10c + 0x80; iVar6 = iVar6 + 1; } while (iVar6 < iVar4); } piVar7 = piVar5; if (piVar5 != (int *)0x0) { for (; piVar5 != (int *)pcVar8; piVar5 = piVar5 + 0x20) { FUN_100059c0((int)piVar5); } piVar5 = piVar7; if ((0xfff < (unaff_EDI - (int)piVar7 & 0xffffff80U)) && (piVar5 = (int *)piVar7[-1], 0x1f < (uint)((int)piVar7 + (-4 - (int)piVar5)))) { LAB_10003ae5: // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(piVar5); } ___security_check_cookie_4(uStack_24 ^ (uint)&iStack_10c); return; } uint _Java_com_vue_browserlock_win_natives_NativeProxy_resumeProcess_16 (undefined4 param_1,undefined4 param_2,DWORD param_3) { HANDLE hObject; undefined *puVar1; HMODULE hModule; FARPROC pFVar2; int iVar3; byte *pbVar4; byte bVar5; char *lpProcName; // 0x3b10 22 // _Java_com_vue_browserlock_win_natives_NativeProxy_resumeProcess@16 hObject = OpenProcess(0x1fffff,0,param_3); if (hObject == (HANDLE)0x0) { puVar1 = (undefined *)FUN_1000a4ab(1); *puVar1 = 0; return (uint)puVar1 & 0xffffff00; } lpProcName = "NtResumeProcess"; hModule = GetModuleHandleA("ntdll"); pFVar2 = GetProcAddress(hModule,lpProcName); if (pFVar2 == (FARPROC)0x0) { bVar5 = 0; } else { iVar3 = (*pFVar2)(hObject); bVar5 = 1; if (iVar3 < 0) { bVar5 = 0; } } CloseHandle(hObject); pbVar4 = (byte *)FUN_1000a4ab(1); *pbVar4 = bVar5; return (uint)pbVar4 & 0xffffff00 | (uint)bVar5; } void _Java_com_vue_browserlock_win_natives_NativeProxy_disableEaseOfAccessKeys_8(void) { char *pcVar1; // 0x3b90 5 // _Java_com_vue_browserlock_win_natives_NativeProxy_disableEaseOfAccessKeys@8 pcVar1 = DAT_100126c4; if (DAT_100126c4 == (char *)0x0) { pcVar1 = (char *)FUN_1000a4ab(0x1c); DAT_100126c4 = pcVar1; *pcVar1 = '\0'; *(undefined4 *)(pcVar1 + 0x14) = 0; *(undefined4 *)(pcVar1 + 0x18) = 0xf; pcVar1[4] = '\0'; } FUN_100049d0(pcVar1); return; } void _Java_com_vue_browserlock_win_natives_NativeProxy_enableEaseOfAccessKeys_8(void) { char *pcVar1; // 0x3bd0 6 // _Java_com_vue_browserlock_win_natives_NativeProxy_enableEaseOfAccessKeys@8 pcVar1 = DAT_100126c4; if (DAT_100126c4 == (char *)0x0) { pcVar1 = (char *)FUN_1000a4ab(0x1c); DAT_100126c4 = pcVar1; *pcVar1 = '\0'; *(undefined4 *)(pcVar1 + 0x14) = 0; *(undefined4 *)(pcVar1 + 0x18) = 0xf; pcVar1[4] = '\0'; } FUN_100052e0(pcVar1); return; } undefined4 _Java_com_vue_browserlock_win_natives_NativeProxy_hideTaskBar_8(void) { LPARAM lParam; BOOL BVar1; uint in_stack_ffffffc4; undefined4 *puVar2; undefined local_24 [12]; undefined4 uStack_18; // 0x3c10 16 _Java_com_vue_browserlock_win_natives_NativeProxy_hideTaskBar@8 if (DAT_100126d4 == 0) { DAT_100126d4 = FUN_1000a4ab(1); } lParam = DAT_100126d4; local_24[0] = 0; FUN_10002250(local_24,&DAT_1000d57c,(int *)0x4); puVar2 = (undefined4 *)(in_stack_ffffffc4 & 0xffffff00); FUN_10002250(&stack0xffffffc4,"Hiding Taskbar.",(int *)0xf); FUN_10005830(puVar2); uStack_18 = 0x10003c89; BVar1 = EnumWindows(FUN_10008520,lParam); return CONCAT31((int3)((uint)BVar1 >> 8),1); } void _Java_com_vue_browserlock_win_natives_NativeProxy_showTaskBar_8(void) { // 0x3ca0 23 _Java_com_vue_browserlock_win_natives_NativeProxy_showTaskBar@8 if (DAT_100126d4 == 0) { DAT_100126d4 = FUN_1000a4ab(1); } FUN_10008440(); return; } void _Java_com_vue_browserlock_win_natives_NativeProxy_getCurrentProcessId_8(void) { // 0x3cc0 9 // _Java_com_vue_browserlock_win_natives_NativeProxy_getCurrentProcessId@8 GetCurrentProcessId(); return; } void _Java_com_vue_browserlock_win_natives_NativeProxy_getProcessIdFromName_12 (int *param_1,undefined4 param_2,uint param_3) { char cVar1; char *pcVar2; char *pcVar3; void *pvVar4; undefined4 unaff_ESI; int *piStack_44; uint uStack_40; void *pvStack_3c; undefined auStack_2c [4]; uint local_28; uint uStack_24; undefined4 uStack_20; undefined4 uStack_1c; uint local_c; // 0x3cd0 14 // _Java_com_vue_browserlock_win_natives_NativeProxy_getProcessIdFromName@12 local_c = DAT_10012024 ^ (uint)auStack_2c; pvStack_3c = (void *)0x0; uStack_40 = param_3; piStack_44 = param_1; local_28 = param_3; pcVar2 = (char *)(**(code **)(*param_1 + 0x2a4))(); uStack_20 = 0; uStack_1c = 0xf; pcVar3 = pcVar2; do { cVar1 = *pcVar3; pcVar3 = pcVar3 + 1; } while (cVar1 != '\0'); FUN_10002250(&stack0xffffffd0,pcVar2,(int *)(pcVar3 + -(int)(pcVar2 + 1))); FUN_100063b0((void **)&stack0xffffffd0); (**(code **)(*param_1 + 0x2a8))(param_1,unaff_ESI,pcVar2); if (0xf < local_28) { pvVar4 = pvStack_3c; if (0xfff < local_28 + 1) { pvVar4 = *(void **)((int)pvStack_3c + -4); if (0x1f < (uint)((int)pvStack_3c + (-4 - (int)pvVar4))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } } FUN_1000a4db(pvVar4); } ___security_check_cookie_4(uStack_24 ^ (uint)&piStack_44); return; } void _Java_com_vue_browserlock_win_natives_NativeProxy_clearClipboard_8(int *param_1) { BOOL BVar1; DWORD DVar2; int *piVar3; void *pvVar4; int aiStack_dc [5]; int local_c8 [2]; undefined4 auStack_c0 [2]; basic_iostream_char_struct_std__char_traits_char___ abStack_b8 [72]; basic_ios_char_struct_std__char_traits_char___ abStack_70 [68]; void *pvStack_2c; uint local_24 [3]; uint uStack_18; uint local_14; undefined4 local_10; uint local_c; // 0x3db0 3 _Java_com_vue_browserlock_win_natives_NativeProxy_clearClipboard@8 local_c = DAT_10012024 ^ (uint)aiStack_dc; OpenClipboard((HWND)0x0); BVar1 = EmptyClipboard(); if (BVar1 == 0) { FUN_10001b00(aiStack_dc + 1); DVar2 = GetLastError(); piVar3 = FUN_100023d0(local_c8,"Failed to clear the clipboard [error code: "); piVar3 = (int *)std::basic_ostream<char,struct_std::char_traits<char>_>::operator__ ((basic_ostream_char_struct_std__char_traits_char___ *)piVar3,DVar2); FUN_100023d0(piVar3,"]."); CloseClipboard(); FUN_10001a40(aiStack_dc + 1,(undefined *)local_24); *(undefined ***)((int)aiStack_dc + *(int *)(aiStack_dc[1] + 4) + 4) = std::basic_stringstream<char,struct_std::char_traits<char>,class_std::allocator<char>_>:: vftable; *(int *)((int)aiStack_dc + *(int *)(aiStack_dc[1] + 4)) = *(int *)(aiStack_dc[1] + 4) + -0x68; FUN_100020a0(auStack_c0); std::basic_iostream<char,struct_std::char_traits<char>_>:: _basic_iostream_char_struct_std__char_traits_char___(abStack_b8); std::basic_ios<char,struct_std::char_traits<char>_>:: _basic_ios_char_struct_std__char_traits_char___(abStack_70); } else { CloseClipboard(); local_14 = 0; local_10 = 0xf; local_24[0] = local_24[0] & 0xffffff00; FUN_10002250(local_24,&DAT_1000d90e,(int *)0x0); } (**(code **)(*param_1 + 0x29c))(param_1); if (0xf < uStack_18) { pvVar4 = pvStack_2c; if ((0xfff < uStack_18 + 1) && (pvVar4 = *(void **)((int)pvStack_2c + -4), 0x1f < (uint)((int)pvStack_2c + (-4 - (int)pvVar4)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar4); } ___security_check_cookie_4(local_14 ^ (uint)&stack0xffffff1c); return; } // WARNING: Globals starting with '_' overlap smaller symbols at the same address void _Java_com_vue_browserlock_win_natives_NativeProxy_isVirtualMachine_8(void) { // 0x3f30 19 // _Java_com_vue_browserlock_win_natives_NativeProxy_isVirtualMachine@8 if (_DAT_100126d8 == 0) { _DAT_100126d8 = FUN_1000a4ab(1); } FUN_10008910(); return; } void _Java_com_vue_browserlock_win_natives_NativeProxy_getDisplayCountSystemMetrics_8(void) { undefined (*pauVar1) [16]; // 0x3f50 11 // _Java_com_vue_browserlock_win_natives_NativeProxy_getDisplayCountSystemMetrics@8 if (DAT_100126dc == (undefined (*) [16])0x0) { pauVar1 = (undefined (*) [16])FUN_1000a4ab(0x18); DAT_100126dc = pauVar1; *pauVar1 = ZEXT816(0); *(undefined8 *)pauVar1[1] = 0; } GetSystemMetrics(0x50); return; } int _Java_com_vue_browserlock_win_natives_NativeProxy_getDisplayCountEnumDisplay_8(void) { undefined (*pauVar1) [16]; void *pvVar2; int iVar3; void *local_10; int local_c; int local_8; // 0x3f80 10 // _Java_com_vue_browserlock_win_natives_NativeProxy_getDisplayCountEnumDisplay@8 if (DAT_100126dc == (undefined (*) [16])0x0) { pauVar1 = (undefined (*) [16])FUN_1000a4ab(0x18); DAT_100126dc = pauVar1; *pauVar1 = ZEXT816(0); *(undefined8 *)pauVar1[1] = 0; } local_10 = (void *)0x0; local_c = 0; local_8 = 0; EnumDisplayMonitors((HDC)0x0,(LPCRECT)0x0,FUN_10008c30,(LPARAM)&local_10); iVar3 = local_c - (int)local_10; if (local_10 != (void *)0x0) { pvVar2 = local_10; if (0xfff < (local_8 - (int)local_10 & 0xfffffff0U)) { pvVar2 = *(void **)((int)local_10 + -4); if (0x1f < (uint)((int)local_10 + (-4 - (int)pvVar2))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } } FUN_1000a4db(pvVar2); } return iVar3 >> 4; } undefined4 _Java_com_vue_browserlock_win_natives_NativeProxy_getDuplicateDisplayCount_8(void) { undefined (*pauVar1) [16]; HWND hwnd; HMONITOR pHVar2; undefined4 local_8; // 0x4020 12 // _Java_com_vue_browserlock_win_natives_NativeProxy_getDuplicateDisplayCount@8 if (DAT_100126dc == (undefined (*) [16])0x0) { pauVar1 = (undefined (*) [16])FUN_1000a4ab(0x18); DAT_100126dc = pauVar1; *pauVar1 = ZEXT816(0); *(undefined8 *)pauVar1[1] = 0; } hwnd = GetDesktopWindow(); pHVar2 = MonitorFromWindow(hwnd,1); if (pHVar2 != (HMONITOR)0x0) { GetNumberOfPhysicalMonitorsFromHMONITOR(pHVar2,&local_8); return local_8; } return local_8; } void _Java_com_vue_browserlock_win_natives_NativeProxy_isDisplayHdcpCompliant_8(void) { undefined (*pauVar1) [16]; // 0x4080 17 // _Java_com_vue_browserlock_win_natives_NativeProxy_isDisplayHdcpCompliant@8 if (DAT_100126dc == (undefined (*) [16])0x0) { pauVar1 = (undefined (*) [16])FUN_1000a4ab(0x18); DAT_100126dc = pauVar1; *pauVar1 = ZEXT816(0); *(undefined8 *)pauVar1[1] = 0; } FUN_10008e20(); return; } undefined4 _Java_com_vue_browserlock_win_natives_NativeProxy_blockScreenCapture_8(void) { undefined *puVar1; HWND hWnd; HWND hWnd_00; HWND pHVar2; // 0x40b0 2 // _Java_com_vue_browserlock_win_natives_NativeProxy_blockScreenCapture@8 if (DAT_100126c4 == (undefined *)0x0) { puVar1 = (undefined *)FUN_1000a4ab(0x1c); DAT_100126c4 = puVar1; *puVar1 = 0; *(undefined4 *)(puVar1 + 0x14) = 0; *(undefined4 *)(puVar1 + 0x18) = 0xf; puVar1[4] = 0; } hWnd = GetForegroundWindow(); hWnd_00 = GetWindow(hWnd,0); pHVar2 = hWnd_00; if (hWnd != (HWND)0x0) { pHVar2 = (HWND)SetWindowDisplayAffinity(hWnd,0x11); } if (hWnd_00 != (HWND)0x0) { pHVar2 = (HWND)SetWindowDisplayAffinity(hWnd_00,0x11); } return CONCAT31((int3)((uint)pHVar2 >> 8),1); } // WARNING: Globals starting with '_' overlap smaller symbols at the same address void _Java_com_vue_browserlock_win_natives_NativeProxy_clearClipboardHistory_8(void) { int *piVar1; char cVar2; uint in_stack_ffffffa8; undefined4 *puVar3; undefined *local_40; int **ppiStack_3c; wchar_t *pwStack_38; undefined4 uStack_34; undefined *local_30; int *local_24; undefined local_1d; undefined local_1c [20]; uint local_8; // 0x4120 4 // _Java_com_vue_browserlock_win_natives_NativeProxy_clearClipboardHistory@8 local_8 = DAT_10012024 ^ (uint)&stack0xfffffffc; if (_DAT_100126e0 == 0) { local_30 = (undefined *)0x10004140; _DAT_100126e0 = FUN_1000a4ab(1); } cVar2 = FUN_10009be0(); if (cVar2 != '\0') { local_30 = (undefined *)0x0; local_40 = (undefined *)((uint)local_40 & 0xffffff00); FUN_10002250(&local_40,&DAT_1000d57c,(int *)0x4); puVar3 = (undefined4 *)(in_stack_ffffffa8 & 0xffffff00); FUN_10002250(&stack0xffffffa8,"Clearing the clipboard",(int *)0x16); FUN_10005830(puVar3); local_30 = (undefined *)0x100041a9; CoInitialize((LPVOID)0x0); local_30 = local_1c; uStack_34 = 0x2f; pwStack_38 = L"Windows.ApplicationModel.DataTransfer.Clipboard"; ppiStack_3c = (int **)0x100041be; WindowsCreateStringReference(); ppiStack_3c = &local_24; local_24 = (int *)0x0; local_40 = &DAT_1000dd78; RoGetActivationFactory(); local_1d = 0; (**(code **)(*local_24 + 0x1c))(); piVar1 = local_24; if (local_24 != (int *)0x0) { local_24 = (int *)0x0; local_30 = (undefined *)0x100041fc; (**(code **)(*piVar1 + 8))(); } CoUninitialize(); } ___security_check_cookie_4(local_8 ^ (uint)&stack0xfffffffc); return; } // WARNING: Globals starting with '_' overlap smaller symbols at the same address void _Java_com_vue_browserlock_win_natives_NativeProxy_isSystemSettingsSuspended_16 (undefined4 param_1,undefined4 param_2,int param_3) { // 0x4220 18 // _Java_com_vue_browserlock_win_natives_NativeProxy_isSystemSettingsSuspended@16 if (_DAT_100126e4 == 0) { _DAT_100126e4 = FUN_1000a4ab(1); } FUN_10009ec0(param_3); return; } void _Java_com_vue_browserlock_win_natives_NativeProxy_restoreMinimizedProcess_12 (int *param_1,undefined4 param_2,void *param_3) { char cVar1; char *pcVar2; char *pcVar3; void *pvVar4; void *pvStack_30; undefined4 uStack_2c; undefined auStack_24 [4]; undefined4 uStack_20; uint uStack_1c; uint uStack_18; uint local_c; // 0x4250 21 // _Java_com_vue_browserlock_win_natives_NativeProxy_restoreMinimizedProcess@12 local_c = DAT_10012024 ^ (uint)auStack_24; uStack_2c = 0; pvStack_30 = param_3; pcVar2 = (char *)(**(code **)(*param_1 + 0x2a4))(param_1); uStack_20 = 0; uStack_1c = 0xf; pvStack_30 = (void *)((uint)pvStack_30 & 0xffffff00); pcVar3 = pcVar2; do { cVar1 = *pcVar3; pcVar3 = pcVar3 + 1; } while (cVar1 != '\0'); FUN_10002250(&pvStack_30,pcVar2,(int *)(pcVar3 + -(int)(pcVar2 + 1))); FUN_10007120(&pvStack_30); if (0xf < uStack_1c) { pvVar4 = pvStack_30; if (0xfff < uStack_1c + 1) { pvVar4 = *(void **)((int)pvStack_30 + -4); if (0x1f < (uint)((int)pvStack_30 + (-4 - (int)pvVar4))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } } FUN_1000a4db(pvVar4); } ___security_check_cookie_4(uStack_18 ^ (uint)&pvStack_30); return; } void _Java_com_vue_browserlock_win_natives_NativeProxy_allowToggle_8(void) { // 0x4300 1 _Java_com_vue_browserlock_win_natives_NativeProxy_allowToggle@8 FUN_10007810(); return; } void _Java_com_vue_browserlock_win_natives_NativeProxy_getNameFromProcessId_16 (int *param_1,undefined4 param_2,int param_3) { void *pvVar1; undefined4 *puStack_3c; undefined auStack_34 [8]; void *pvStack_2c; undefined4 local_24 [3]; uint uStack_18; uint uStack_14; uint local_c; // 0x4310 13 // _Java_com_vue_browserlock_win_natives_NativeProxy_getNameFromProcessId@16 local_c = DAT_10012024 ^ (uint)auStack_34; puStack_3c = (undefined4 *)0x10004334; puStack_3c = (undefined4 *)FUN_10006240(local_24,param_3); if (0xf < (uint)puStack_3c[5]) { puStack_3c = (undefined4 *)*puStack_3c; } (**(code **)(*param_1 + 0x29c))(param_1); if (0xf < uStack_18) { pvVar1 = pvStack_2c; if (0xfff < uStack_18 + 1) { pvVar1 = *(void **)((int)pvStack_2c + -4); if (0x1f < (uint)((int)pvStack_2c + (-4 - (int)pvVar1))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } } FUN_1000a4db(pvVar1); } ___security_check_cookie_4(uStack_14 ^ (uint)&puStack_3c); return; } void ** __thiscall FUN_100043a0(void *this,void **param_1) { uint uVar1; void *pvVar2; void *pvVar3; void *pvVar4; uint uVar5; int iVar6; void *pvVar7; uint uVar8; *(undefined4 *)((int)this + 0x10) = 0; *(undefined4 *)((int)this + 0x14) = 0; pvVar2 = param_1[4]; if ((void *)0xf < param_1[5]) { param_1 = (void **)*param_1; } if (pvVar2 < (void *)0x10) { pvVar7 = param_1[1]; pvVar3 = param_1[2]; pvVar4 = param_1[3]; *(void **)this = *param_1; *(void **)((int)this + 4) = pvVar7; *(void **)((int)this + 8) = pvVar3; *(void **)((int)this + 0xc) = pvVar4; *(void **)((int)this + 0x10) = pvVar2; *(undefined4 *)((int)this + 0x14) = 0xf; return (void **)this; } uVar8 = (uint)pvVar2 | 0xf; if (0x7fffffff < uVar8) { uVar8 = 0x7fffffff; } uVar1 = uVar8 + 1; if (uVar1 < 0x1000) { if (uVar1 == 0) { pvVar7 = (void *)0x0; } else { pvVar7 = (void *)FUN_1000a4ab(uVar1); } } else { uVar5 = uVar8 + 0x24; if (uVar5 <= uVar1) { uVar5 = 0xffffffff; } iVar6 = FUN_1000a4ab(uVar5); if (iVar6 == 0) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } pvVar7 = (void *)(iVar6 + 0x23U & 0xffffffe0); *(int *)((int)pvVar7 - 4) = iVar6; } *(void **)this = pvVar7; memcpy(pvVar7,param_1,(int)pvVar2 + 1); *(void **)((int)this + 0x10) = pvVar2; *(uint *)((int)this + 0x14) = uVar8; return (void **)this; } void FUN_10004460(void) { code *pcVar1; std::_Xout_of_range("invalid vector<T> subscript"); pcVar1 = (code *)swi(3); (*pcVar1)(); return; } void FUN_10004470(int param_1,int param_2) { if (param_1 != param_2) { do { FUN_100059c0(param_1); param_1 = param_1 + 0x80; } while (param_1 != param_2); } return; } void FUN_100044a0(void *param_1,int param_2) { void *pvVar1; pvVar1 = param_1; if ((0xfff < (uint)(param_2 * 0x80)) && (pvVar1 = *(void **)((int)param_1 + -4), 0x1f < (uint)((int)param_1 + (-4 - (int)pvVar1)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar1); return; } void FUN_100044e0(void) { code *pcVar1; std::_Xout_of_range("invalid string position"); pcVar1 = (code *)swi(3); (*pcVar1)(); return; } void * __thiscall FUN_100044f0(void *this,void **param_1,void **param_2) { int iVar1; code *pcVar2; int iVar3; int iVar4; void *pvVar5; uint uVar6; uint uVar7; void *pvVar8; uint uVar9; void **ppvVar10; void **ppvVar11; uint uVar12; void *pvVar13; void **ppvVar14; void **ppvVar15; // WARNING: Load size is inaccurate iVar1 = *this; iVar3 = ((int)param_1 - iVar1) / 0x18; iVar4 = (*(int *)((int)this + 4) - iVar1) / 0x18; if (iVar4 == 0xaaaaaaa) { FUN_10004730(); pcVar2 = (code *)swi(3); pvVar8 = (void *)(*pcVar2)(); return pvVar8; } uVar12 = iVar4 + 1; uVar9 = (*(int *)((int)this + 8) - iVar1) / 0x18; uVar6 = uVar12; if ((uVar9 <= 0xaaaaaaa - (uVar9 >> 1)) && (uVar6 = (uVar9 >> 1) + uVar9, uVar6 < uVar12)) { uVar6 = uVar12; } uVar9 = uVar6 * 0x18; if (uVar6 < 0xaaaaaab) { if (0xfff < uVar9) goto LAB_1000458a; if (uVar9 == 0) { ppvVar14 = (void **)0x0; } else { ppvVar14 = (void **)FUN_1000a4ab(uVar9); } } else { uVar9 = 0xffffffff; LAB_1000458a: uVar7 = uVar9 + 0x23; if (uVar7 <= uVar9) { uVar7 = 0xffffffff; } pvVar8 = (void *)FUN_1000a4ab(uVar7); if (pvVar8 == (void *)0x0) goto LAB_100046ad; ppvVar14 = (void **)((int)pvVar8 + 0x23U & 0xffffffe0); ppvVar14[-1] = pvVar8; } ppvVar14[iVar3 * 6 + 4] = (void *)0x0; ppvVar14[iVar3 * 6 + 5] = (void *)0x0; pvVar8 = param_2[1]; pvVar13 = param_2[2]; pvVar5 = param_2[3]; ppvVar11 = ppvVar14 + iVar3 * 6; *ppvVar11 = *param_2; ppvVar11[1] = pvVar8; ppvVar11[2] = pvVar13; ppvVar11[3] = pvVar5; *(undefined8 *)(ppvVar14 + iVar3 * 6 + 4) = *(undefined8 *)(param_2 + 4); param_2[4] = (void *)0x0; param_2[5] = (void *)0xf; *(undefined *)param_2 = 0; // WARNING: Load size is inaccurate ppvVar11 = *(void ***)((int)this + 4); ppvVar10 = *this; ppvVar15 = ppvVar14; if (param_1 != ppvVar11) { FUN_10004960(*this,param_1,ppvVar14); ppvVar11 = *(void ***)((int)this + 4); ppvVar15 = ppvVar14 + iVar3 * 6 + 6; ppvVar10 = param_1; } FUN_10004960(ppvVar10,ppvVar11,ppvVar15); // WARNING: Load size is inaccurate if (*this != (void **)0x0) { FUN_100046c0(*this,*(void ***)((int)this + 4)); // WARNING: Load size is inaccurate pvVar8 = *this; pvVar13 = pvVar8; if ((0xfff < (uint)(((*(int *)((int)this + 8) - (int)pvVar8) / 0x18) * 0x18)) && (pvVar13 = *(void **)((int)pvVar8 + -4), 0x1f < (uint)((int)pvVar8 + (-4 - (int)pvVar13)))) { LAB_100046ad: // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar13); } *(void ***)this = ppvVar14; *(void ***)((int)this + 4) = ppvVar14 + uVar12 * 6; *(void ***)((int)this + 8) = ppvVar14 + uVar6 * 6; // WARNING: Load size is inaccurate return (void *)(*this + iVar3 * 0x18); } void __fastcall FUN_100046c0(void **param_1,void **param_2) { void *pvVar1; void *pvVar2; if (param_1 != param_2) { do { if ((void *)0xf < param_1[5]) { pvVar1 = *param_1; pvVar2 = pvVar1; if ((0xfff < (int)param_1[5] + 1U) && (pvVar2 = *(void **)((int)pvVar1 + -4), 0x1f < (uint)((int)pvVar1 + (-4 - (int)pvVar2)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar2); } param_1[4] = (void *)0x0; param_1[5] = (void *)0xf; *(undefined *)param_1 = 0; param_1 = param_1 + 6; } while (param_1 != param_2); } return; } void FUN_10004730(void) { code *pcVar1; std::_Xlength_error("vector<T> too long"); pcVar1 = (code *)swi(3); (*pcVar1)(); return; } // WARNING: Could not reconcile some variable overlaps int * __fastcall FUN_10004740(int *param_1,char *param_2,uint param_3) { uint uVar1; bool bVar2; int iVar3; int *piVar4; int iVar5; int iVar6; __int64 _Var7; void *local_10; undefined *puStack_c; undefined4 local_8; local_8 = 0xffffffff; puStack_c = &LAB_1000b820; local_10 = ExceptionList; ExceptionList = &local_10; iVar5 = *param_1; iVar3 = *(int *)(iVar5 + 4); uVar1 = *(uint *)((int)param_1 + iVar3 + 0x20); iVar6 = *(int *)((int)param_1 + iVar3 + 0x24); if ((iVar6 < 0) || (((iVar6 < 1 && (uVar1 == 0)) || (uVar1 <= param_3)))) { iVar6 = 0; } else { iVar6 = uVar1 - param_3; } piVar4 = *(int **)((int)param_1 + iVar3 + 0x38); if (piVar4 != (int *)0x0) { (**(code **)(*piVar4 + 4))(); iVar5 = *param_1; } local_8 = 0; iVar3 = *(int *)(iVar5 + 4); if (((*(int *)((int)param_1 + iVar3 + 0xc) == 0) && (*(int *)((int)param_1 + iVar3 + 0x3c) != 0)) && (piVar4 = *(int **)((int)param_1 + iVar3 + 0x3c), piVar4 != param_1)) { std::basic_ostream<char,struct_std::char_traits<char>_>::flush ((basic_ostream_char_struct_std__char_traits_char___ *)piVar4); iVar5 = *param_1; } local_8 = 1; if (*(int *)(*(int *)(iVar5 + 4) + 0xc + (int)param_1) != 0) { std::basic_ios<char,struct_std::char_traits<char>_>::setstate ((basic_ios_char_struct_std__char_traits_char___ *) (*(int *)(*param_1 + 4) + (int)param_1),4,false); local_8 = 4; bVar2 = std::uncaught_exception(); if (!bVar2) { std::basic_ostream<char,struct_std::char_traits<char>_>::_Osfx ((basic_ostream_char_struct_std__char_traits_char___ *)param_1); } local_8 = CONCAT31(local_8._1_3_,5); piVar4 = *(int **)(*(int *)(*param_1 + 4) + 0x38 + (int)param_1); if (piVar4 != (int *)0x0) { (**(code **)(*piVar4 + 8))(); } ExceptionList = local_10; return param_1; } local_8 = 2; if ((*(uint *)(*(int *)(iVar5 + 4) + 0x14 + (int)param_1) & 0x1c0) != 0x40) { for (; iVar6 != 0; iVar6 = iVar6 + -1) { iVar3 = std::basic_streambuf<char,struct_std::char_traits<char>_>::sputc (*(basic_streambuf_char_struct_std__char_traits_char___ **) (*(int *)(*param_1 + 4) + 0x38 + (int)param_1), *(char *)(*(int *)(*param_1 + 4) + 0x40 + (int)param_1)); if (iVar3 == -1) goto LAB_10004890; } iVar5 = *param_1; } _Var7 = std::basic_streambuf<char,struct_std::char_traits<char>_>::sputn (*(basic_streambuf_char_struct_std__char_traits_char___ **) (*(int *)(iVar5 + 4) + 0x38 + (int)param_1),param_2,(ulonglong)param_3); if (((uint)_Var7 == param_3) && ((int)((ulonglong)_Var7 >> 0x20) == 0)) { LAB_10004890: while ((iVar6 != 0 && (iVar3 = std::basic_streambuf<char,struct_std::char_traits<char>_>::sputc (*(basic_streambuf_char_struct_std__char_traits_char___ **) (*(int *)(*param_1 + 4) + 0x38 + (int)param_1), *(char *)(*(int *)(*param_1 + 4) + 0x40 + (int)param_1)), iVar3 != -1 ))) { iVar6 = iVar6 + -1; } } iVar3 = *(int *)(*param_1 + 4); *(undefined4 *)(iVar3 + 0x20 + (int)param_1) = 0; *(undefined4 *)(iVar3 + 0x24 + (int)param_1) = 0; piVar4 = (int *)FUN_100048f6(); return piVar4; } undefined * Catch_All_100048d6(void) { int unaff_EBP; std::basic_ios<char,struct_std::char_traits<char>_>::setstate ((basic_ios_char_struct_std__char_traits_char___ *) (*(int *)(**(int **)(unaff_EBP + -0x1c) + 4) + (int)*(int **)(unaff_EBP + -0x1c)),4, true); return &DAT_100048f0; } void FUN_100048f6(void) { int *piVar1; bool bVar2; int *unaff_EBX; int unaff_EBP; int unaff_EDI; *(undefined4 *)(unaff_EBP + -4) = 1; std::basic_ios<char,struct_std::char_traits<char>_>::setstate ((basic_ios_char_struct_std__char_traits_char___ *) (*(int *)(*unaff_EBX + 4) + (int)unaff_EBX),unaff_EDI,false); *(undefined4 *)(unaff_EBP + -4) = 4; bVar2 = std::uncaught_exception(); piVar1 = *(int **)(unaff_EBP + -0x2c); if (!bVar2) { std::basic_ostream<char,struct_std::char_traits<char>_>::_Osfx ((basic_ostream_char_struct_std__char_traits_char___ *)piVar1); } *(undefined *)(unaff_EBP + -4) = 5; piVar1 = *(int **)(*(int *)(*piVar1 + 4) + 0x38 + (int)piVar1); if (piVar1 != (int *)0x0) { (**(code **)(*piVar1 + 8))(); } ExceptionList = *(void **)(unaff_EBP + -0xc); return; } void ** __fastcall FUN_10004960(void **param_1,void **param_2,void **param_3) { void *pvVar1; void *pvVar2; void *pvVar3; void **ppvVar4; void **ppvVar5; ppvVar5 = param_3; if (param_1 != param_2) { ppvVar4 = param_1; do { ppvVar5[4] = (void *)0x0; *(undefined4 *)((int)param_3 + (0x14 - (int)param_1) + (int)ppvVar4) = 0; pvVar1 = ppvVar4[1]; pvVar2 = ppvVar4[2]; pvVar3 = ppvVar4[3]; *ppvVar5 = *ppvVar4; ppvVar5[1] = pvVar1; ppvVar5[2] = pvVar2; ppvVar5[3] = pvVar3; *(undefined8 *)(ppvVar5 + 4) = *(undefined8 *)(ppvVar4 + 4); ppvVar5 = ppvVar5 + 6; ppvVar4[4] = (void *)0x0; ppvVar4[5] = (void *)0xf; *(undefined *)ppvVar4 = 0; ppvVar4 = ppvVar4 + 6; } while (ppvVar4 != param_2); } FUN_100046c0(ppvVar5,ppvVar5); return ppvVar5; } undefined4 FUN_100049c0(void) { return 1; } void __fastcall FUN_100049d0(char *param_1) { char cVar1; HWND hWnd; undefined4 *puVar2; undefined4 ****ppppuVar3; undefined4 ****ppppuVar4; undefined4 ****_Src; undefined4 *in_stack_ffffff88; undefined local_60 [4]; undefined4 uStack_5c; char *lpCaption; UINT uType; undefined4 ****local_34; char local_2d; undefined4 ****local_2c [4]; size_t local_1c; uint local_18; uint local_14; void *local_10; undefined *puStack_c; undefined4 local_8; local_8 = 0xffffffff; puStack_c = &LAB_1000b858; local_10 = ExceptionList; local_14 = DAT_10012024 ^ (uint)&stack0xfffffffc; ExceptionList = &local_10; cVar1 = FUN_10004c00(param_1); *param_1 = cVar1; local_2d = '\0'; if (cVar1 == '\0') { local_1c = 0; local_18 = 0xf; local_2c[0] = (undefined4 ****)((uint)local_2c[0] & 0xffffff00); FUN_10002250(local_2c, "Ease of access configurations cannot be saved. Please reboot your PC and restart BrowserLock." ,(int *)0x5d); local_8 = 1; puVar2 = (undefined4 *)(param_1 + 4); ppppuVar4 = *(undefined4 *****)(param_1 + 0x14); _Src = local_2c; if (0xf < local_18) { _Src = local_2c[0]; } local_34 = ppppuVar4; if (local_1c <= (uint)(*(int *)(param_1 + 0x18) - (int)ppppuVar4)) { *(size_t *)(param_1 + 0x14) = local_1c + (int)ppppuVar4; if (0xf < *(uint *)(param_1 + 0x18)) { puVar2 = (undefined4 *)*puVar2; } goto LAB_10004a85; } LAB_10004a99: local_34 = (undefined4 ****)((uint)local_34 & 0xffffff00); uStack_5c = 0x10004aa8; FUN_10002770(param_1 + 4,local_1c,local_34,_Src,local_1c); ppppuVar3 = local_2c[0]; } else { local_2d = FUN_10004f20(param_1); if (local_2d != '\0') goto LAB_10004b5d; local_1c = 0; local_18 = 0xf; local_2c[0] = (undefined4 ****)((uint)local_2c[0] & 0xffffff00); FUN_10002250(local_2c, "Accessibility features cannot be turned off. Please reboot your PC and restart BrowserLock." ,(int *)0x5b); local_8 = 0; puVar2 = (undefined4 *)(param_1 + 4); ppppuVar4 = *(undefined4 *****)(param_1 + 0x14); _Src = local_2c; if (0xf < local_18) { _Src = local_2c[0]; } local_34 = _Src; if ((uint)(*(int *)(param_1 + 0x18) - (int)ppppuVar4) < local_1c) goto LAB_10004a99; *(size_t *)(param_1 + 0x14) = local_1c + (int)ppppuVar4; if (0xf < *(uint *)(param_1 + 0x18)) { puVar2 = (undefined4 *)*puVar2; } LAB_10004a85: ppppuVar3 = local_2c[0]; memmove((void *)((int)ppppuVar4 + (int)puVar2),_Src,local_1c); *(undefined *)((int)(void *)((int)ppppuVar4 + (int)puVar2) + local_1c) = 0; } local_8 = 0xffffffff; if (0xf < local_18) { ppppuVar4 = ppppuVar3; if ((0xfff < local_18 + 1) && (ppppuVar4 = (undefined4 ****)ppppuVar3[-1], 0x1f < (uint)((int)ppppuVar3 + (-4 - (int)ppppuVar4)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(ppppuVar4); } LAB_10004b5d: if ((*param_1 == '\0') || (local_2d == '\0')) { local_60[0] = 0; FUN_10002250(local_60,&DAT_1000d700,(int *)0x4); local_8 = 2; puVar2 = (undefined4 *)(param_1 + 4); FUN_10002620((undefined4 *)&stack0xffffff88,"BrowserLock - Ease of Access Warning: ",puVar2); local_8 = 0xffffffff; FUN_10005830(in_stack_ffffff88); if (0xf < *(uint *)(param_1 + 0x18)) { puVar2 = (undefined4 *)*puVar2; } uType = 0x1010; lpCaption = "BrowserLock - Ease of Access Warning"; hWnd = GetForegroundWindow(); uStack_5c = 0x10004bd8; MessageBoxA(hWnd,(LPCSTR)puVar2,lpCaption,uType); } ExceptionList = local_10; ___security_check_cookie_4(local_14 ^ (uint)&stack0xfffffffc); return; } // WARNING: Could not reconcile some variable overlaps // WARNING: Globals starting with '_' overlap smaller symbols at the same address void __fastcall FUN_10004c00(undefined *param_1) { undefined *puVar1; BOOL BVar2; void **ppvVar3; int *piVar4; DWORD DVar5; void *pvVar6; undefined4 *puVar7; bool bVar8; undefined4 *in_stack_fffffee0; uint uStack_108; int local_e4 [4]; int local_d4 [2]; undefined4 local_cc [2]; basic_iostream_char_struct_std__char_traits_char___ local_c4 [72]; basic_ios_char_struct_std__char_traits_char___ local_7c [76]; uint *local_30; void *local_2c [5]; uint local_18; uint local_14; void *local_10; undefined *puStack_c; undefined4 local_8; local_8 = -1; puStack_c = &LAB_1000b893; local_10 = ExceptionList; local_14 = DAT_10012024 ^ (uint)&stack0xfffffffc; ExceptionList = &local_10; uStack_108 = 0x10004c48; local_30 = (uint *)param_1; BVar2 = SystemParametersInfoA(0x3a,8,&DAT_1001205c,0); puVar7 = (undefined4 *)(param_1 + 4); bVar8 = BVar2 != 0; if (!bVar8) { FUN_10002250(puVar7,"Sticky Keys ",(int *)0xc); } uStack_108 = 0x10004c6c; BVar2 = SystemParametersInfoA(0x34,8,&DAT_10012064,0); if (BVar2 == 0) { ppvVar3 = (void **)FUN_100056c0(local_2c,puVar7,"Toggle Keys "); FUN_10005640(puVar7,ppvVar3); if (0xf < local_18) { pvVar6 = local_2c[0]; if ((0xfff < local_18 + 1) && (pvVar6 = *(void **)((int)local_2c[0] + -4), 0x1f < (uint)((int)local_2c[0] + (-4 - (int)pvVar6)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar6); } bVar8 = false; } uStack_108 = 0x10004ccf; BVar2 = SystemParametersInfoA(0x32,0x18,&DAT_1001206c,0); if (BVar2 == 0) { ppvVar3 = (void **)FUN_100056c0(local_2c,puVar7,"Filter Keys "); FUN_10005640(puVar7,ppvVar3); if (0xf < local_18) { pvVar6 = local_2c[0]; if ((0xfff < local_18 + 1) && (pvVar6 = *(void **)((int)local_2c[0] + -4), 0x1f < (uint)((int)local_2c[0] + (-4 - (int)pvVar6)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar6); } bVar8 = false; } uStack_108 = 0x10004d32; BVar2 = SystemParametersInfoA(0x36,0x1c,&DAT_10012034,0); if (BVar2 == 0) { ppvVar3 = (void **)FUN_100056c0(local_2c,puVar7,"Mouse Keys "); FUN_10005640(puVar7,ppvVar3); if (0xf < local_18) { pvVar6 = local_2c[0]; if ((0xfff < local_18 + 1) && (pvVar6 = *(void **)((int)local_2c[0] + -4), 0x1f < (uint)((int)local_2c[0] + (-4 - (int)pvVar6)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar6); } bVar8 = false; } uStack_108 = 0x10004d95; BVar2 = SystemParametersInfoA(0x42,0xc,&DAT_10012050,0); if (BVar2 == 0) { ppvVar3 = (void **)FUN_100056c0(local_2c,puVar7,"HighContrast Keys "); FUN_10005640(puVar7,ppvVar3); if (0xf < local_18) { pvVar6 = local_2c[0]; if ((0xfff < local_18 + 1) && (pvVar6 = *(void **)((int)local_2c[0] + -4), 0x1f < (uint)((int)local_2c[0] + (-4 - (int)pvVar6)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar6); } } else { _DAT_10012058 = 0; if (bVar8) goto LAB_10004ef6; } FUN_10001b00(local_e4); puVar1 = (undefined *)local_30; local_8 = 0; puVar7 = (undefined4 *)((int)local_30 + 4); piVar4 = FUN_100023d0(local_d4,"Failed to save accessibility features: "); if (0xf < *(uint *)(puVar1 + 0x18)) { puVar7 = (undefined4 *)*puVar7; } piVar4 = FUN_10004740(piVar4,(char *)puVar7,*(uint *)(puVar1 + 0x14)); DVar5 = GetLastError(); piVar4 = FUN_100023d0(piVar4,"SystemParametersInfo [error code: "); piVar4 = (int *)std::basic_ostream<char,struct_std::char_traits<char>_>::operator__ ((basic_ostream_char_struct_std__char_traits_char___ *)piVar4,DVar5); FUN_100023d0(piVar4,"]."); local_30 = &uStack_108; uStack_108 = uStack_108 & 0xffffff00; FUN_10002250(&uStack_108,"ERROR",(int *)0x5); local_8._0_1_ = 1; FUN_10001a40(local_e4,&stack0xfffffee0); local_8 = (uint)local_8._1_3_ << 8; FUN_10005830(in_stack_fffffee0); *(undefined ***)((int)local_e4 + *(int *)(local_e4[0] + 4)) = std::basic_stringstream<char,struct_std::char_traits<char>,class_std::allocator<char>_>:: vftable; *(int *)((int)local_cc + *(int *)(local_e4[0] + 4) + -0x1c) = *(int *)(local_e4[0] + 4) + -0x68; FUN_100020a0(local_cc); std::basic_iostream<char,struct_std::char_traits<char>_>:: _basic_iostream_char_struct_std__char_traits_char___(local_c4); std::basic_ios<char,struct_std::char_traits<char>_>:: _basic_ios_char_struct_std__char_traits_char___(local_7c); LAB_10004ef6: ExceptionList = local_10; local_e4[0] = 0x10004f10; ___security_check_cookie_4(local_14 ^ (uint)&stack0xfffffffc); return; } // WARNING: Could not reconcile some variable overlaps void __fastcall FUN_10004f20(undefined *param_1) { undefined *puVar1; BOOL BVar2; void **ppvVar3; int *piVar4; DWORD DVar5; void *pvVar6; undefined4 *puVar7; undefined4 *in_stack_fffffe90; uint uStack_158; int local_138 [4]; int local_128 [2]; undefined4 local_120 [2]; basic_iostream_char_struct_std__char_traits_char___ local_118 [72]; basic_ios_char_struct_std__char_traits_char___ local_d0 [76]; undefined4 local_84; uint local_80; undefined4 local_7c; undefined4 local_78; uint local_74; undefined4 local_70; uint local_6c; uint *local_68; char local_61; undefined4 local_60; uint local_5c; undefined local_58 [16]; undefined4 local_48; uint local_44; undefined local_40 [16]; undefined4 local_30; void *local_2c [5]; uint local_18; uint local_14; void *local_10; undefined *puStack_c; undefined4 local_8; local_8 = -1; puStack_c = &LAB_1000b8d3; local_10 = ExceptionList; local_14 = DAT_10012024 ^ (uint)&stack0xfffffffc; ExceptionList = &local_10; local_6c = DAT_10012060 & 0xfffffffb; local_74 = DAT_10012068 & 0xfffffffb; local_5c = DAT_10012070 & 0xfffffffb; local_61 = '\x01'; local_80 = DAT_10012054 & 0xfffffffb; local_70 = 8; local_44 = DAT_10012038 & 0xfffffffb; local_78 = 8; local_40._0_12_ = ZEXT412(DAT_10012044) << 0x40; local_40 = CONCAT124(local_40._0_12_ >> 0x20,DAT_1001203c) & (undefined [16])0xffffffffffffffff; local_40 = CONCAT412(DAT_10012048,local_40._0_12_); local_30 = DAT_1001204c; local_58 = ZEXT816(0); local_60 = 0x18; local_7c = 0; local_84 = 0xc; local_48 = 0x1c; uStack_158 = 0x10005003; local_68 = (uint *)param_1; BVar2 = SystemParametersInfoA(0x3b,8,&local_70,0); puVar7 = (undefined4 *)(param_1 + 4); if (BVar2 == 0) { FUN_10002250(puVar7,"sticky keys ",(int *)0xc); local_61 = '\0'; } uStack_158 = 0x10005028; BVar2 = SystemParametersInfoA(0x35,8,&local_78,0); if (BVar2 == 0) { ppvVar3 = (void **)FUN_100056c0(local_2c,puVar7,"toggle keys "); FUN_10005640(puVar7,ppvVar3); if (0xf < local_18) { pvVar6 = local_2c[0]; if (0xfff < local_18 + 1) { pvVar6 = *(void **)((int)local_2c[0] + -4); if (0x1f < (uint)((int)local_2c[0] + (-4 - (int)pvVar6))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } } FUN_1000a4db(pvVar6); } local_61 = '\0'; } uStack_158 = 0x1000508c; BVar2 = SystemParametersInfoA(0x33,0x18,&local_60,0); if (BVar2 == 0) { ppvVar3 = (void **)FUN_100056c0(local_2c,puVar7,"filter keys "); FUN_10005640(puVar7,ppvVar3); if (0xf < local_18) { pvVar6 = local_2c[0]; if (0xfff < local_18 + 1) { pvVar6 = *(void **)((int)local_2c[0] + -4); if (0x1f < (uint)((int)local_2c[0] + (-4 - (int)pvVar6))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } } FUN_1000a4db(pvVar6); } local_61 = '\0'; } uStack_158 = 0x100050f0; BVar2 = SystemParametersInfoA(0x43,0xc,&local_84,0); if (BVar2 == 0) { ppvVar3 = (void **)FUN_100056c0(local_2c,puVar7,"hight contrast keys "); FUN_10005640(puVar7,ppvVar3); if (0xf < local_18) { pvVar6 = local_2c[0]; if (0xfff < local_18 + 1) { pvVar6 = *(void **)((int)local_2c[0] + -4); if (0x1f < (uint)((int)local_2c[0] + (-4 - (int)pvVar6))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } } FUN_1000a4db(pvVar6); } local_61 = '\0'; } uStack_158 = 0x10005154; BVar2 = SystemParametersInfoA(0x37,0x1c,&local_48,0); if (BVar2 == 0) { ppvVar3 = (void **)FUN_100056c0(local_2c,puVar7,"mouse keys "); FUN_10005640(puVar7,ppvVar3); if (0xf < local_18) { pvVar6 = local_2c[0]; if (0xfff < local_18 + 1) { pvVar6 = *(void **)((int)local_2c[0] + -4); if (0x1f < (uint)((int)local_2c[0] + (-4 - (int)pvVar6))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } } FUN_1000a4db(pvVar6); } local_61 = '\0'; } else if (local_61 != '\0') goto LAB_100052b6; FUN_10001b00(local_138); puVar1 = (undefined *)local_68; local_8 = 0; puVar7 = (undefined4 *)((int)local_68 + 4); piVar4 = FUN_100023d0(local_128,"Failed to disable "); if (0xf < *(uint *)(puVar1 + 0x18)) { puVar7 = (undefined4 *)*puVar7; } piVar4 = FUN_10004740(piVar4,(char *)puVar7,*(uint *)(puVar1 + 0x14)); DVar5 = GetLastError(); piVar4 = FUN_100023d0(piVar4,"ease of access keys [error code: "); piVar4 = (int *)std::basic_ostream<char,struct_std::char_traits<char>_>::operator__ ((basic_ostream_char_struct_std__char_traits_char___ *)piVar4,DVar5); FUN_100023d0(piVar4,"]."); local_68 = &uStack_158; uStack_158 = uStack_158 & 0xffffff00; FUN_10002250(&uStack_158,"ERROR",(int *)0x5); local_8._0_1_ = 1; FUN_10001a40(local_138,&stack0xfffffe90); local_8 = (uint)local_8._1_3_ << 8; FUN_10005830(in_stack_fffffe90); *(undefined ***)((int)local_138 + *(int *)(local_138[0] + 4)) = std::basic_stringstream<char,struct_std::char_traits<char>,class_std::allocator<char>_>:: vftable; *(int *)((int)local_120 + *(int *)(local_138[0] + 4) + -0x1c) = *(int *)(local_138[0] + 4) + -0x68 ; FUN_100020a0(local_120); std::basic_iostream<char,struct_std::char_traits<char>_>:: _basic_iostream_char_struct_std__char_traits_char___(local_118); std::basic_ios<char,struct_std::char_traits<char>_>:: _basic_ios_char_struct_std__char_traits_char___(local_d0); LAB_100052b6: ExceptionList = local_10; local_138[0] = 0x100052cd; ___security_check_cookie_4(local_14 ^ (uint)&stack0xfffffffc); return; } // WARNING: Could not reconcile some variable overlaps void __fastcall FUN_100052e0(char *param_1) { bool bVar1; char *pcVar2; BOOL BVar3; void **ppvVar4; int *piVar5; DWORD DVar6; void *pvVar7; undefined4 *puVar8; undefined4 *in_stack_fffffee0; uint uStack_108; int local_e4 [4]; int local_d4 [2]; undefined4 local_cc [2]; basic_iostream_char_struct_std__char_traits_char___ local_c4 [72]; basic_ios_char_struct_std__char_traits_char___ local_7c [76]; uint *local_30; void *local_2c [5]; uint local_18; uint local_14; void *local_10; undefined *puStack_c; undefined4 local_8; local_8 = -1; puStack_c = &LAB_1000b893; local_10 = ExceptionList; local_14 = DAT_10012024 ^ (uint)&stack0xfffffffc; ExceptionList = &local_10; bVar1 = true; local_30 = (uint *)param_1; if (*param_1 != '\0') { *param_1 = '\0'; uStack_108 = 0x10005334; BVar3 = SystemParametersInfoA(0x3b,8,&DAT_1001205c,0); if (BVar3 == 0) { ppvVar4 = (void **)FUN_100056c0(local_2c,(undefined4 *)(param_1 + 4),"Sticky Keys "); FUN_10005640(param_1 + 4,ppvVar4); if (0xf < local_18) { pvVar7 = local_2c[0]; if (0xfff < local_18 + 1) { pvVar7 = *(void **)((int)local_2c[0] + -4); if (0x1f < (uint)((int)local_2c[0] + (-4 - (int)pvVar7))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } } FUN_1000a4db(pvVar7); } bVar1 = false; } puVar8 = (undefined4 *)(param_1 + 4); uStack_108 = 0x1000539c; BVar3 = SystemParametersInfoA(0x35,8,&DAT_10012064,0); if (BVar3 == 0) { ppvVar4 = (void **)FUN_100056c0(local_2c,puVar8,"Toggle Keys "); FUN_10005640(puVar8,ppvVar4); if (0xf < local_18) { pvVar7 = local_2c[0]; if (0xfff < local_18 + 1) { pvVar7 = *(void **)((int)local_2c[0] + -4); if (0x1f < (uint)((int)local_2c[0] + (-4 - (int)pvVar7))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } } FUN_1000a4db(pvVar7); } bVar1 = false; } uStack_108 = 0x100053ff; BVar3 = SystemParametersInfoA(0x33,0x18,&DAT_1001206c,0); if (BVar3 == 0) { ppvVar4 = (void **)FUN_100056c0(local_2c,puVar8,"Filter Keys "); FUN_10005640(puVar8,ppvVar4); if (0xf < local_18) { pvVar7 = local_2c[0]; if (0xfff < local_18 + 1) { pvVar7 = *(void **)((int)local_2c[0] + -4); if (0x1f < (uint)((int)local_2c[0] + (-4 - (int)pvVar7))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } } FUN_1000a4db(pvVar7); } bVar1 = false; } uStack_108 = 0x10005462; BVar3 = SystemParametersInfoA(0x37,0x1c,&DAT_10012034,0); if (BVar3 == 0) { ppvVar4 = (void **)FUN_100056c0(local_2c,puVar8,"Mouse Keys "); FUN_10005640(puVar8,ppvVar4); if (0xf < local_18) { pvVar7 = local_2c[0]; if (0xfff < local_18 + 1) { pvVar7 = *(void **)((int)local_2c[0] + -4); if (0x1f < (uint)((int)local_2c[0] + (-4 - (int)pvVar7))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } } FUN_1000a4db(pvVar7); } bVar1 = false; } uStack_108 = 0x100054c5; BVar3 = SystemParametersInfoA(0x43,0xc,&DAT_10012050,0); if (BVar3 == 0) { ppvVar4 = (void **)FUN_100056c0(local_2c,puVar8,"High Contrast Keys "); FUN_10005640(puVar8,ppvVar4); if (0xf < local_18) { pvVar7 = local_2c[0]; if (0xfff < local_18 + 1) { pvVar7 = *(void **)((int)local_2c[0] + -4); if (0x1f < (uint)((int)local_2c[0] + (-4 - (int)pvVar7))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } } FUN_1000a4db(pvVar7); } } else if (bVar1) goto LAB_1000561a; FUN_10001b00(local_e4); pcVar2 = (char *)local_30; local_8 = 0; puVar8 = (undefined4 *)((int)local_30 + 4); piVar5 = FUN_100023d0(local_d4,"Failed to restore"); if (0xf < *(uint *)(pcVar2 + 0x18)) { puVar8 = (undefined4 *)*puVar8; } piVar5 = FUN_10004740(piVar5,(char *)puVar8,*(uint *)(pcVar2 + 0x14)); DVar6 = GetLastError(); piVar5 = FUN_100023d0(piVar5,"ease of access keys [error code: "); piVar5 = (int *)std::basic_ostream<char,struct_std::char_traits<char>_>::operator__ ((basic_ostream_char_struct_std__char_traits_char___ *)piVar5,DVar6); FUN_100023d0(piVar5,"]."); local_30 = &uStack_108; uStack_108 = uStack_108 & 0xffffff00; FUN_10002250(&uStack_108,"ERROR",(int *)0x5); local_8._0_1_ = 1; FUN_10001a40(local_e4,&stack0xfffffee0); local_8 = (uint)local_8._1_3_ << 8; FUN_10005830(in_stack_fffffee0); *(undefined ***)((int)local_e4 + *(int *)(local_e4[0] + 4)) = std::basic_stringstream<char,struct_std::char_traits<char>,class_std::allocator<char>_>:: vftable; *(int *)((int)local_cc + *(int *)(local_e4[0] + 4) + -0x1c) = *(int *)(local_e4[0] + 4) + -0x68; FUN_100020a0(local_cc); std::basic_iostream<char,struct_std::char_traits<char>_>:: _basic_iostream_char_struct_std__char_traits_char___(local_c4); std::basic_ios<char,struct_std::char_traits<char>_>:: _basic_ios_char_struct_std__char_traits_char___(local_7c); } LAB_1000561a: ExceptionList = local_10; local_e4[0] = 0x10005632; ___security_check_cookie_4(local_14 ^ (uint)&stack0xfffffffc); return; } void ** __thiscall FUN_10005640(void *this,void **param_1) { void *pvVar1; void *pvVar2; void *pvVar3; if ((void **)this != param_1) { if (0xf < *(uint *)((int)this + 0x14)) { // WARNING: Load size is inaccurate pvVar1 = *this; pvVar3 = pvVar1; if ((0xfff < *(uint *)((int)this + 0x14) + 1) && (pvVar3 = *(void **)((int)pvVar1 + -4), 0x1f < (uint)((int)pvVar1 + (-4 - (int)pvVar3)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar3); } *(undefined4 *)((int)this + 0x10) = 0; *(undefined4 *)((int)this + 0x14) = 0xf; *(undefined *)this = 0; pvVar1 = param_1[1]; pvVar3 = param_1[2]; pvVar2 = param_1[3]; *(void **)this = *param_1; *(void **)((int)this + 4) = pvVar1; *(void **)((int)this + 8) = pvVar3; *(void **)((int)this + 0xc) = pvVar2; *(undefined8 *)((int)this + 0x10) = *(undefined8 *)(param_1 + 4); param_1[4] = (void *)0x0; param_1[5] = (void *)0xf; *(undefined *)param_1 = 0; } return (void **)this; } undefined4 * __fastcall FUN_100056c0(undefined4 *param_1,undefined4 *param_2,char *param_3) { char cVar1; int iVar2; undefined4 *puVar3; char *pcVar4; uint uVar5; undefined4 *local_14; void *local_10; undefined *puStack_c; undefined4 local_8; puStack_c = &LAB_1000b919; local_10 = ExceptionList; ExceptionList = &local_10; param_1[4] = 0; param_1[5] = 0xf; *(undefined *)param_1 = 0; local_8 = 0; pcVar4 = param_3; do { cVar1 = *pcVar4; pcVar4 = pcVar4 + 1; } while (cVar1 != '\0'); FUN_100028d0(param_1,pcVar4 + (param_2[4] - (int)(param_3 + 1))); local_14 = param_2; if (0xf < (uint)param_2[5]) { local_14 = (undefined4 *)*param_2; } puVar3 = local_14; iVar2 = param_1[4]; uVar5 = param_2[4]; if ((uint)(param_1[5] - iVar2) < uVar5) { local_14 = (undefined4 *)((uint)local_14 & 0xffffff00); FUN_10002770(param_1,uVar5,local_14,puVar3,uVar5); } else { param_1[4] = iVar2 + uVar5; puVar3 = param_1; if (0xf < (uint)param_1[5]) { puVar3 = (undefined4 *)*param_1; } memmove((void *)((int)puVar3 + iVar2),local_14,uVar5); *(undefined *)((int)(void *)((int)puVar3 + iVar2) + uVar5) = 0; } pcVar4 = param_3; do { cVar1 = *pcVar4; pcVar4 = pcVar4 + 1; } while (cVar1 != '\0'); uVar5 = (int)pcVar4 - (int)(param_3 + 1); iVar2 = param_1[4]; if (uVar5 <= (uint)(param_1[5] - iVar2)) { param_1[4] = iVar2 + uVar5; puVar3 = param_1; if (0xf < (uint)param_1[5]) { puVar3 = (undefined4 *)*param_1; } memmove((void *)((int)puVar3 + iVar2),param_3,uVar5); *(undefined *)((int)(void *)((int)puVar3 + iVar2) + uVar5) = 0; ExceptionList = local_10; return param_1; } local_14 = (undefined4 *)((uint)local_14 & 0xffffff00); FUN_10002770(param_1,uVar5,local_14,param_3,uVar5); ExceptionList = local_10; return param_1; } void __cdecl FUN_10005810(int *param_1,undefined4 param_2,undefined4 param_3) { (**(code **)(*param_1 + 0x238))(param_1,param_2,param_3,&stack0x00000010); return; } void __cdecl FUN_10005830(undefined4 *param_1) { int iVar1; int iVar2; undefined4 *puVar3; undefined4 **ppuVar4; undefined4 uStack00000014; uint in_stack_00000018; undefined4 *in_stack_0000001c; uint in_stack_00000030; int local_1c; int *local_18; int *local_14; void *local_10; undefined *puStack_c; undefined4 local_8; puStack_c = &LAB_1000b950; local_10 = ExceptionList; ExceptionList = &local_10; local_8 = 1; iVar1 = JNI_GetCreatedJavaVMs(&local_18,1,&local_1c,DAT_10012024 ^ (uint)&stack0xfffffffc); if ((iVar1 == 0) && (local_1c != 0)) { iVar1 = (**(code **)(*local_18 + 0x18))(local_18,&local_14,0x10006); if (iVar1 == -2) { iVar1 = (**(code **)(*local_18 + 0x10))(local_18,&local_14,0); } if (iVar1 == 0) { iVar1 = (**(code **)(*local_14 + 0x18)) (local_14,"com/vue/browserlock/win/natives/NativeProxy"); if (iVar1 != 0) { iVar2 = (**(code **)(*local_14 + 0x1c4)) (local_14,iVar1,&DAT_1000d908,"(Ljava/lang/String;Ljava/lang/String;)V"); if (iVar2 != 0) { ppuVar4 = ¶m_1; if (0xf < in_stack_00000018) { ppuVar4 = (undefined4 **)param_1; } (**(code **)(*local_14 + 0x29c))(local_14,ppuVar4); puVar3 = &stack0x0000001c; if (0xf < in_stack_00000030) { puVar3 = in_stack_0000001c; } (**(code **)(*local_14 + 0x29c))(local_14,puVar3); FUN_10005810(local_14,iVar1,iVar2); } } } } if (0xf < in_stack_00000018) { puVar3 = param_1; if (0xfff < in_stack_00000018 + 1) { puVar3 = (undefined4 *)param_1[-1]; if (0x1f < (uint)((int)param_1 + (-4 - (int)puVar3))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } } FUN_1000a4db(puVar3); } uStack00000014 = 0; in_stack_00000018 = 0xf; param_1 = (undefined4 *)((uint)param_1 & 0xffffff00); if (0xf < in_stack_00000030) { puVar3 = in_stack_0000001c; if (0xfff < in_stack_00000030 + 1) { puVar3 = (undefined4 *)in_stack_0000001c[-1]; if (0x1f < (uint)((int)in_stack_0000001c + (-4 - (int)puVar3))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } } FUN_1000a4db(puVar3); } ExceptionList = local_10; return; } void __fastcall FUN_100059c0(int param_1) { void *pvVar1; void *pvVar2; if (0xf < *(uint *)(param_1 + 0x78)) { pvVar1 = *(void **)(param_1 + 100); pvVar2 = pvVar1; if ((0xfff < *(uint *)(param_1 + 0x78) + 1) && (pvVar2 = *(void **)((int)pvVar1 + -4), 0x1f < (uint)((int)pvVar1 + (-4 - (int)pvVar2)))) goto LAB_10005b1b; FUN_1000a4db(pvVar2); } *(undefined4 *)(param_1 + 0x74) = 0; *(undefined4 *)(param_1 + 0x78) = 0xf; *(undefined *)(param_1 + 100) = 0; if (0xf < *(uint *)(param_1 + 0x60)) { pvVar1 = *(void **)(param_1 + 0x4c); pvVar2 = pvVar1; if ((0xfff < *(uint *)(param_1 + 0x60) + 1) && (pvVar2 = *(void **)((int)pvVar1 + -4), 0x1f < (uint)((int)pvVar1 + (-4 - (int)pvVar2)))) goto LAB_10005b1b; FUN_1000a4db(pvVar2); } *(undefined4 *)(param_1 + 0x5c) = 0; *(undefined4 *)(param_1 + 0x60) = 0xf; *(undefined *)(param_1 + 0x4c) = 0; if (0xf < *(uint *)(param_1 + 0x48)) { pvVar1 = *(void **)(param_1 + 0x34); pvVar2 = pvVar1; if ((0xfff < *(uint *)(param_1 + 0x48) + 1) && (pvVar2 = *(void **)((int)pvVar1 + -4), 0x1f < (uint)((int)pvVar1 + (-4 - (int)pvVar2)))) goto LAB_10005b1b; FUN_1000a4db(pvVar2); } *(undefined4 *)(param_1 + 0x44) = 0; *(undefined4 *)(param_1 + 0x48) = 0xf; *(undefined *)(param_1 + 0x34) = 0; if (0xf < *(uint *)(param_1 + 0x30)) { pvVar1 = *(void **)(param_1 + 0x1c); pvVar2 = pvVar1; if ((0xfff < *(uint *)(param_1 + 0x30) + 1) && (pvVar2 = *(void **)((int)pvVar1 + -4), 0x1f < (uint)((int)pvVar1 + (-4 - (int)pvVar2)))) goto LAB_10005b1b; FUN_1000a4db(pvVar2); } *(undefined4 *)(param_1 + 0x2c) = 0; *(undefined4 *)(param_1 + 0x30) = 0xf; *(undefined *)(param_1 + 0x1c) = 0; if (0xf < *(uint *)(param_1 + 0x18)) { pvVar1 = *(void **)(param_1 + 4); pvVar2 = pvVar1; if ((0xfff < *(uint *)(param_1 + 0x18) + 1) && (pvVar2 = *(void **)((int)pvVar1 + -4), 0x1f < (uint)((int)pvVar1 + (-4 - (int)pvVar2)))) { LAB_10005b1b: // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar2); } *(undefined4 *)(param_1 + 0x14) = 0; *(undefined4 *)(param_1 + 0x18) = 0xf; *(undefined *)(param_1 + 4) = 0; return; } undefined * __thiscall FUN_10005b30(void *this,undefined *param_1) { int *piVar1; undefined4 *puVar2; void *pvVar3; undefined *puVar4; basic_ostream_char_struct_std__char_traits_char___ local_b8 [8]; undefined4 local_b0 [2]; basic_iostream_char_struct_std__char_traits_char___ local_a8 [72]; basic_ios_char_struct_std__char_traits_char___ local_60 [80]; void *local_10; undefined *puStack_c; undefined4 local_8; local_8 = 0xffffffff; puStack_c = &LAB_1000b97b; local_10 = ExceptionList; ExceptionList = &local_10; FUN_10001b00((int *)&stack0xffffff38); local_8 = 0; // WARNING: Load size is inaccurate puVar2 = (undefined4 *)((int)this + 4); piVar1 = (int *)std::basic_ostream<char,struct_std::char_traits<char>_>::operator__ (local_b8,*this); piVar1 = FUN_100023d0(piVar1,"|"); if (0xf < *(uint *)((int)this + 0x18)) { puVar2 = (undefined4 *)*puVar2; } piVar1 = FUN_10004740(piVar1,(char *)puVar2,*(uint *)((int)this + 0x14)); puVar2 = (undefined4 *)((int)this + 0x1c); piVar1 = FUN_100023d0(piVar1,"|"); if (0xf < *(uint *)((int)this + 0x30)) { puVar2 = (undefined4 *)*puVar2; } piVar1 = FUN_10004740(piVar1,(char *)puVar2,*(uint *)((int)this + 0x2c)); puVar2 = (undefined4 *)((int)this + 0x34); piVar1 = FUN_100023d0(piVar1,"|"); if (0xf < *(uint *)((int)this + 0x48)) { puVar2 = (undefined4 *)*puVar2; } piVar1 = FUN_10004740(piVar1,(char *)puVar2,*(uint *)((int)this + 0x44)); puVar2 = (undefined4 *)((int)this + 0x4c); piVar1 = FUN_100023d0(piVar1,"|"); if (0xf < *(uint *)((int)this + 0x60)) { puVar2 = (undefined4 *)*puVar2; } piVar1 = FUN_10004740(piVar1,(char *)puVar2,*(uint *)((int)this + 0x5c)); puVar2 = (undefined4 *)((int)this + 100); piVar1 = FUN_100023d0(piVar1,"|"); if (0xf < *(uint *)((int)this + 0x78)) { puVar2 = (undefined4 *)*puVar2; } piVar1 = FUN_10004740(piVar1,(char *)puVar2,*(uint *)((int)this + 0x74)); pvVar3 = *(void **)((int)this + 0x7c); piVar1 = FUN_100023d0(piVar1,"|"); std::basic_ostream<char,struct_std::char_traits<char>_>::operator__ ((basic_ostream_char_struct_std__char_traits_char___ *)piVar1,pvVar3); puVar4 = param_1; FUN_10001a40(&stack0xffffff38,param_1); *(undefined ***)(local_a8 + *(int *)(puVar4 + 4) + -0x20) = std::basic_stringstream<char,struct_std::char_traits<char>,class_std::allocator<char>_>:: vftable; *(int *)((int)local_b0 + *(int *)(puVar4 + 4) + -0x1c) = *(int *)(puVar4 + 4) + -0x68; FUN_100020a0(local_b0); std::basic_iostream<char,struct_std::char_traits<char>_>:: _basic_iostream_char_struct_std__char_traits_char___(local_a8); std::basic_ios<char,struct_std::char_traits<char>_>:: _basic_ios_char_struct_std__char_traits_char___(local_60); ExceptionList = local_10; return param_1; } undefined * FUN_10005cd0(void) { return &DAT_100126f8; } int __cdecl FUN_10005ce0(undefined4 param_1,undefined4 param_2,undefined4 param_3) { undefined4 *puVar1; int iVar2; puVar1 = (undefined4 *)FUN_10005cd0(); iVar2 = __stdio_common_vsprintf_s(*puVar1,puVar1[1]); if (iVar2 < 0) { iVar2 = -1; } return iVar2; } void __fastcall FUN_10005d20(undefined *param_1,DWORD param_2) { char cVar1; HANDLE hProcess; BOOL BVar2; char *pcVar3; undefined *local_11c; CHAR local_118 [260]; uint local_14; void *local_10; undefined *puStack_c; undefined4 local_8; puStack_c = &LAB_1000b9c2; local_10 = ExceptionList; local_14 = DAT_10012024 ^ (uint)&stack0xfffffffc; ExceptionList = &local_10; local_8 = 0; *(undefined4 *)(param_1 + 0x10) = 0; *(undefined4 *)(param_1 + 0x14) = 0xf; *param_1 = 0; local_11c = param_1; FUN_10002250(param_1,&DAT_1000d90e,(int *)0x0); local_8 = 0; hProcess = OpenProcess(0x410,0,param_2); if (hProcess != (HANDLE)0x0) { memset(local_118,0,0x104); local_11c = (undefined *)0x104; BVar2 = QueryFullProcessImageNameA(hProcess,0,local_118,(PDWORD)&local_11c); if (BVar2 != 0) { pcVar3 = local_118; do { cVar1 = *pcVar3; pcVar3 = pcVar3 + 1; } while (cVar1 != '\0'); FUN_10002250(param_1,local_118,(int *)(pcVar3 + -(int)(local_118 + 1))); } } CloseHandle(hProcess); ExceptionList = local_10; ___security_check_cookie_4(local_14 ^ (uint)&stack0xfffffffc); return; } // WARNING: Could not reconcile some variable overlaps void __thiscall FUN_10005e30(void *this,undefined4 *param_1) { char cVar1; LANGID LVar2; DWORD dwLen; LPCVOID lpData; undefined4 **ppuVar3; BOOL BVar4; undefined4 ****ppppuVar5; char *pcVar6; void *this_00; void *pvVar7; int *piVar8; undefined4 *puVar9; undefined4 uStack00000014; uint in_stack_00000018; void *in_stack_0000001c; uint in_stack_00000030; undefined2 *local_840; undefined4 local_83c; char *local_838; DWORD local_834; uint local_830; undefined4 ****local_82c [4]; undefined4 local_81c; uint local_818; char local_814 [1024]; char local_414 [1024]; uint local_14; void *local_10; undefined *puStack_c; undefined4 local_8; puStack_c = &LAB_1000ba2d; local_10 = ExceptionList; local_14 = DAT_10012024 ^ (uint)&stack0xfffffffc; ExceptionList = &local_10; local_83c = 0; local_8 = 2; *(undefined4 *)((int)this + 0x10) = 0; *(undefined4 *)((int)this + 0x14) = 0xf; local_834 = 0; *(undefined *)this = 0; local_838 = (char *)this; FUN_10002250(this,&DAT_1000d90e,(int *)0x0); local_83c = 1; ppuVar3 = ¶m_1; if (0xf < in_stack_00000018) { ppuVar3 = (undefined4 **)param_1; } dwLen = GetFileVersionInfoSizeA((LPCSTR)ppuVar3,&local_834); if (dwLen != 0) { lpData = (LPCVOID)FUN_1000a4e9(dwLen); local_830 = 0; ppuVar3 = ¶m_1; if (0xf < in_stack_00000018) { ppuVar3 = (undefined4 **)param_1; } BVar4 = GetFileVersionInfoA((LPCSTR)ppuVar3,local_834,dwLen,lpData); if ((BVar4 != 0) && (lpData != (LPCVOID)0x0)) { local_81c = 0; local_818 = 0xf; local_82c[0] = (undefined4 ****)((uint)local_82c[0] & 0xffffff00); FUN_10002250(local_82c,"\\VarFileInfo\\Translation",(int *)0x18); local_8 = CONCAT31(local_8._1_3_,3); ppppuVar5 = local_82c; if (0xf < local_818) { ppppuVar5 = local_82c[0]; } BVar4 = VerQueryValueA(lpData,(LPCSTR)ppppuVar5,&local_840,&local_830); if (((BVar4 == 0) || (local_830 == 0)) || (local_840 == (undefined2 *)0x0)) { LVar2 = GetUserDefaultLangID(); FUN_10007d70(this_00,local_414,"%04X04B0",(char)LVar2); pcVar6 = local_414; do { cVar1 = *pcVar6; pcVar6 = pcVar6 + 1; } while (cVar1 != '\0'); } else { FUN_10007d70(local_840,local_414,"%04x%04x",(char)*local_840); pcVar6 = local_414; do { cVar1 = *pcVar6; pcVar6 = pcVar6 + 1; } while (cVar1 != '\0'); } FUN_10002250(this,local_414,(int *)(pcVar6 + -(int)(local_414 + 1))); pvVar7 = this; if (0xf < *(uint *)((int)this + 0x14)) { // WARNING: Load size is inaccurate pvVar7 = *this; } FUN_10007d70(pvVar7,local_814,"\\StringFileInfo\\%s\\%s",(char)pvVar7); pcVar6 = local_814; do { cVar1 = *pcVar6; pcVar6 = pcVar6 + 1; } while (cVar1 != '\0'); FUN_10002250(local_82c,local_814,(int *)(pcVar6 + -(int)(local_814 + 1))); local_830 = 0; ppppuVar5 = local_82c; if (0xf < local_818) { ppppuVar5 = local_82c[0]; } BVar4 = VerQueryValueA(lpData,(LPCSTR)ppppuVar5,&local_838,&local_830); if ((BVar4 == 0) || (local_830 == 0)) { piVar8 = (int *)0x0; pcVar6 = ""; } else { pcVar6 = local_838; do { cVar1 = *pcVar6; pcVar6 = pcVar6 + 1; } while (cVar1 != '\0'); piVar8 = (int *)(pcVar6 + -(int)(local_838 + 1)); pcVar6 = local_838; } FUN_10002250(this,pcVar6,piVar8); if (0xf < local_818) { ppppuVar5 = local_82c[0]; if ((0xfff < local_818 + 1) && (ppppuVar5 = (undefined4 ****)local_82c[0][-1], (LPCSTR)0x1f < (LPCSTR)((int)local_82c[0] + (-4 - (int)ppppuVar5)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(ppppuVar5); } } free(lpData); } if (0xf < in_stack_00000018) { puVar9 = param_1; if ((0xfff < in_stack_00000018 + 1) && (puVar9 = (undefined4 *)param_1[-1], 0x1f < (uint)((int)param_1 + (-4 - (int)puVar9)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(puVar9); } uStack00000014 = 0; in_stack_00000018 = 0xf; param_1 = (undefined4 *)((uint)param_1 & 0xffffff00); if (0xf < in_stack_00000030) { pvVar7 = in_stack_0000001c; if ((0xfff < in_stack_00000030 + 1) && (pvVar7 = *(void **)((int)in_stack_0000001c + -4), 0x1f < (uint)((int)in_stack_0000001c + (-4 - (int)pvVar7)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar7); } ExceptionList = local_10; ___security_check_cookie_4(local_14 ^ (uint)&stack0xfffffffc); return; } // WARNING: Could not reconcile some variable overlaps void * __fastcall FUN_10006190(void *param_1,DWORD param_2,void *param_3) { void *pvVar1; uint in_stack_00000018; undefined4 *in_stack_ffffffac; undefined auStack_3c [12]; undefined4 uStack_30; void *local_10; undefined *puStack_c; undefined4 local_8; puStack_c = &LAB_1000ba70; local_10 = ExceptionList; ExceptionList = &local_10; local_8 = 0; FUN_100043a0(auStack_3c,¶m_3); local_8._0_1_ = 1; FUN_10005d20(&stack0xffffffac,param_2); local_8 = (uint)local_8._1_3_ << 8; FUN_10005e30(param_1,in_stack_ffffffac); if (0xf < in_stack_00000018) { pvVar1 = param_3; if (0xfff < in_stack_00000018 + 1) { pvVar1 = *(void **)((int)param_3 + -4); if (0x1f < (uint)((int)param_3 + (-4 - (int)pvVar1))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } } uStack_30 = 0x1000622a; FUN_1000a4db(pvVar1); } ExceptionList = local_10; return param_1; } void __fastcall FUN_10006240(undefined4 *param_1,int param_2) { char cVar1; HANDLE hObject; int iVar2; char *pcVar3; void *pvVar4; undefined4 local_154 [2]; int local_14c; char local_130 [260]; void *local_2c [4]; undefined4 local_1c; uint local_18; uint local_14; void *local_10; undefined *puStack_c; undefined4 local_8; puStack_c = &LAB_1000bab2; local_10 = ExceptionList; local_14 = DAT_10012024 ^ (uint)&stack0xfffffffc; ExceptionList = &local_10; local_8 = 0; param_1[4] = 0; param_1[5] = 0xf; *(undefined *)param_1 = 0; FUN_10002250(param_1,&DAT_1000d90e,(int *)0x0); local_8 = 0; hObject = (HANDLE)CreateToolhelp32Snapshot(2,0); local_154[0] = 0x128; Process32First(hObject,local_154); while (param_2 != local_14c) { iVar2 = Process32Next(hObject,local_154); if (iVar2 == 0) goto LAB_10006372; } pcVar3 = local_130; local_1c = 0; local_18 = 0xf; local_2c[0] = (void *)((uint)local_2c[0] & 0xffffff00); do { cVar1 = *pcVar3; pcVar3 = pcVar3 + 1; } while (cVar1 != '\0'); FUN_10002250(local_2c,local_130,(int *)(pcVar3 + -(int)(local_130 + 1))); FUN_10005640(param_1,local_2c); if (0xf < local_18) { pvVar4 = local_2c[0]; if ((0xfff < local_18 + 1) && (pvVar4 = *(void **)((int)local_2c[0] + -4), 0x1f < (uint)((int)local_2c[0] + (-4 - (int)pvVar4)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar4); } LAB_10006372: CloseHandle(hObject); if (param_1[4] != 0) { FUN_10006d30(param_1); FUN_10006d90(param_1); } ExceptionList = local_10; ___security_check_cookie_4(local_14 ^ (uint)&stack0xfffffffc); return; } // WARNING: Could not reconcile some variable overlaps void __fastcall FUN_100063b0(void **param_1) { char cVar1; uint uVar2; HANDLE hObject; int iVar3; uint uVar4; char *pcVar5; int ****ppppiVar6; int ****ppppiVar7; int iVar8; int iVar9; bool bVar10; undefined4 local_16c [9]; char local_148 [260]; int ****local_44 [4]; uint local_34; uint local_30; int ****local_2c [4]; uint local_1c; uint local_18; uint local_14; void *local_10; undefined *puStack_c; undefined4 local_8; local_8._0_1_ = 0xff; local_8._1_3_ = 0xffffff; puStack_c = &LAB_1000baf0; local_10 = ExceptionList; local_14 = DAT_10012024 ^ (uint)&stack0xfffffffc; ExceptionList = &local_10; hObject = (HANDLE)CreateToolhelp32Snapshot(2,0); local_16c[0] = 0x128; Process32First(hObject,local_16c); do { FUN_100043a0(local_44,param_1); local_8 = 0; ppppiVar6 = (int ****)local_44; if (0xf < local_30) { ppppiVar6 = local_44[0]; } ppppiVar7 = (int ****)local_44; if (0xf < local_30) { ppppiVar7 = local_44[0]; } iVar9 = (int)(int ****)(local_34 + (int)ppppiVar6) - (int)ppppiVar7; iVar8 = 0; if ((int ****)(local_34 + (int)ppppiVar6) < ppppiVar7) { iVar9 = 0; } if (iVar9 != 0) { do { iVar3 = tolower((int)*(char *)(iVar8 + (int)ppppiVar7)); *(char *)(iVar8 + (int)ppppiVar6) = (char)iVar3; iVar8 = iVar8 + 1; } while (iVar8 != iVar9); } FUN_10006d90(local_44); pcVar5 = local_148; local_1c = 0; local_18 = 0xf; local_2c[0] = (int ****)((uint)local_2c[0] & 0xffffff00); do { cVar1 = *pcVar5; pcVar5 = pcVar5 + 1; } while (cVar1 != '\0'); FUN_10002250(local_2c,local_148,(int *)(pcVar5 + -(int)(local_148 + 1))); local_8._0_1_ = 1; ppppiVar6 = (int ****)local_2c; if (0xf < local_18) { ppppiVar6 = local_2c[0]; } ppppiVar7 = (int ****)local_2c; if (0xf < local_18) { ppppiVar7 = local_2c[0]; } iVar9 = (int)(int ****)(local_1c + (int)ppppiVar6) - (int)ppppiVar7; iVar8 = 0; if ((int ****)(local_1c + (int)ppppiVar6) < ppppiVar7) { iVar9 = 0; } if (iVar9 != 0) { do { iVar3 = tolower((int)(char)*(byte *)(iVar8 + (int)ppppiVar7)); *(byte *)(iVar8 + (int)ppppiVar6) = (byte)iVar3; iVar8 = iVar8 + 1; } while (iVar8 != iVar9); } FUN_10006d90(local_2c); ppppiVar6 = (int ****)local_44; if (0xf < local_30) { ppppiVar6 = local_44[0]; } ppppiVar7 = (int ****)local_2c; if (0xf < local_18) { ppppiVar7 = local_2c[0]; } uVar4 = local_1c; if (local_1c == local_34) { while (uVar2 = uVar4 - 4, 3 < uVar4) { if (*ppppiVar7 != *ppppiVar6) goto LAB_10006576; ppppiVar7 = ppppiVar7 + 1; ppppiVar6 = ppppiVar6 + 1; uVar4 = uVar2; } if (uVar2 == 0xfffffffc) { LAB_100065aa: uVar4 = 0; } else { LAB_10006576: bVar10 = *(byte *)ppppiVar7 < *(byte *)ppppiVar6; if ((*(byte *)ppppiVar7 == *(byte *)ppppiVar6) && ((uVar2 == 0xfffffffd || ((bVar10 = *(byte *)((int)ppppiVar7 + 1) < *(byte *)((int)ppppiVar6 + 1), *(byte *)((int)ppppiVar7 + 1) == *(byte *)((int)ppppiVar6 + 1) && ((uVar2 == 0xfffffffe || ((bVar10 = *(byte *)((int)ppppiVar7 + 2) < *(byte *)((int)ppppiVar6 + 2), *(byte *)((int)ppppiVar7 + 2) == *(byte *)((int)ppppiVar6 + 2) && ((uVar2 == 0xffffffff || (bVar10 = *(byte *)((int)ppppiVar7 + 3) < *(byte *)((int)ppppiVar6 + 3), *(byte *)((int)ppppiVar7 + 3) == *(byte *)((int)ppppiVar6 + 3))))))))))))) goto LAB_100065aa; uVar4 = -(uint)bVar10 | 1; } if (uVar4 == 0) { if (0xf < local_18) { ppppiVar6 = local_2c[0]; if ((0xfff < local_18 + 1) && (ppppiVar6 = (int ****)local_2c[0][-1], (byte *)0x1f < (byte *)((int)local_2c[0] + (-4 - (int)ppppiVar6)))) goto LAB_1000668d; FUN_1000a4db(ppppiVar6); } local_1c = 0; local_18 = 0xf; local_2c[0] = (int ****)((uint)local_2c[0] & 0xffffff00); if (0xf < local_30) { ppppiVar6 = local_44[0]; if ((0xfff < local_30 + 1) && (ppppiVar6 = (int ****)local_44[0][-1], 0x1f < (uint)((int)local_44[0] + (-4 - (int)ppppiVar6)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(ppppiVar6); } break; } } local_8._0_1_ = 0; if (0xf < local_18) { ppppiVar6 = local_2c[0]; if ((0xfff < local_18 + 1) && (ppppiVar6 = (int ****)local_2c[0][-1], (byte *)0x1f < (byte *)((int)local_2c[0] + (-4 - (int)ppppiVar6)))) goto LAB_1000668d; FUN_1000a4db(ppppiVar6); } local_8._0_1_ = 0xff; local_8._1_3_ = 0xffffff; local_1c = 0; local_18 = 0xf; local_2c[0] = (int ****)((uint)local_2c[0] & 0xffffff00); if (0xf < local_30) { ppppiVar6 = local_44[0]; if ((0xfff < local_30 + 1) && (ppppiVar6 = (int ****)local_44[0][-1], 0x1f < (uint)((int)local_44[0] + (-4 - (int)ppppiVar6)))) { LAB_1000668d: // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(ppppiVar6); } iVar8 = Process32Next(hObject,local_16c); } while (iVar8 != 0); CloseHandle(hObject); ExceptionList = local_10; ___security_check_cookie_4(local_14 ^ (uint)&stack0xfffffffc); return; } // WARNING: Function: __alloca_probe replaced with injection: alloca_probe void __fastcall FUN_10006720(void *param_1) { int *piVar1; int iVar2; int *piVar3; uint local_100c; int local_1008 [1024]; uint local_8; local_8 = DAT_10012024 ^ (uint)&stack0xfffffffc; iVar2 = K32EnumProcesses(local_1008,0x1000,&local_100c); if ((iVar2 != 0) && (local_100c = local_100c >> 2, local_100c != 0)) { piVar3 = local_1008; do { if (*piVar3 != 0) { piVar1 = *(int **)((int)param_1 + 4); if (*(int **)((int)param_1 + 8) == piVar1) { FUN_10007d90(param_1,piVar1,piVar3); } else { *piVar1 = *piVar3; *(int *)((int)param_1 + 4) = *(int *)((int)param_1 + 4) + 4; } } piVar3 = piVar3 + 1; local_100c = local_100c - 1; } while (local_100c != 0); } ___security_check_cookie_4(local_8 ^ (uint)&stack0xfffffffc); return; } void __fastcall FUN_100067b0(DWORD *param_1,DWORD param_2,char param_3) { DWORD *this; void **ppvVar1; int iVar2; DWORD **this_00; void *pvVar3; void *pvVar4; uint in_stack_ffffff98; void *local_30 [5]; uint local_1c; uint local_18; void *local_10; undefined *puStack_c; undefined4 local_8; puStack_c = &LAB_1000bb39; local_10 = ExceptionList; local_18 = DAT_10012024 ^ (uint)&stack0xfffffffc; ExceptionList = &local_10; this_00 = (DWORD **)(param_1 + 1); this = param_1 + 0x19; param_1[5] = 0; param_1[6] = 0xf; *(undefined *)this_00 = 0; param_1[0xb] = 0; param_1[0xc] = 0xf; *(undefined *)(param_1 + 7) = 0; param_1[0x11] = 0; param_1[0x12] = 0xf; *(undefined *)(param_1 + 0xd) = 0; param_1[0x17] = 0; param_1[0x18] = 0xf; *(undefined *)(param_1 + 0x13) = 0; param_1[0x1d] = 0; param_1[0x1e] = 0xf; *(undefined *)this = 0; param_1[0x1f] = 0; local_8 = 0; *param_1 = param_2; ppvVar1 = (void **)FUN_10006240(local_30,param_2); FUN_10005640(this_00,ppvVar1); if (0xf < local_1c) { pvVar4 = local_30[0]; if (0xfff < local_1c + 1) { pvVar4 = *(void **)((int)local_30[0] + -4); if (0x1f < (uint)((int)local_30[0] + (-4 - (int)pvVar4))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } } FUN_1000a4db(pvVar4); } pvVar4 = (void *)(in_stack_ffffff98 & 0xffffff00); FUN_10002250(&stack0xffffff98,"InternalName",(int *)0xc); ppvVar1 = (void **)FUN_10006190(local_30,param_2,pvVar4); FUN_10005640(param_1 + 0xd,ppvVar1); if (0xf < local_1c) { pvVar3 = local_30[0]; if (0xfff < local_1c + 1) { pvVar3 = *(void **)((int)local_30[0] + -4); if (0x1f < (uint)((int)local_30[0] + (-4 - (int)pvVar3))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } } FUN_1000a4db(pvVar3); } if (param_3 == '\0') { if ((param_1[5] != 0) || (param_1[5] != 0)) { iVar2 = FUN_10007090(param_2); if (iVar2 == 0) { FUN_10002250(param_1 + 7,&DAT_1000d90e,(int *)0x0); } else { iVar2 = FUN_10007090(param_2); ppvVar1 = (void **)FUN_10006240(local_30,iVar2); FUN_10005640(param_1 + 7,ppvVar1); if (0xf < local_1c) { pvVar3 = local_30[0]; if (0xfff < local_1c + 1) { pvVar3 = *(void **)((int)local_30[0] + -4); if (0x1f < (uint)((int)local_30[0] + (-4 - (int)pvVar3))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } } FUN_1000a4db(pvVar3); } } ppvVar1 = (void **)FUN_10005d20((undefined *)local_30,param_2); FUN_10005640(param_1 + 0x13,ppvVar1); if (0xf < local_1c) { pvVar3 = local_30[0]; if (0xfff < local_1c + 1) { pvVar3 = *(void **)((int)local_30[0] + -4); if (0x1f < (uint)((int)local_30[0] + (-4 - (int)pvVar3))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } } FUN_1000a4db(pvVar3); } } pvVar4 = (void *)((uint)pvVar4 & 0xffffff00); FUN_10002250(&stack0xffffff98,"FileDescription",(int *)0xf); ppvVar1 = (void **)FUN_10006190(local_30,param_2,pvVar4); FUN_10005640(this,ppvVar1); if (0xf < local_1c) { pvVar4 = local_30[0]; if (0xfff < local_1c + 1) { pvVar4 = *(void **)((int)local_30[0] + -4); if (0x1f < (uint)((int)local_30[0] + (-4 - (int)pvVar4))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } } FUN_1000a4db(pvVar4); } if ((param_1[0x1d] == 0) || (param_1[0x17] == 0)) { ppvVar1 = (void **)FUN_10006e40((uint *)local_30,param_2); FUN_10005640(this,ppvVar1); if (0xf < local_1c) { pvVar4 = local_30[0]; if (0xfff < local_1c + 1) { pvVar4 = *(void **)((int)local_30[0] + -4); if (0x1f < (uint)((int)local_30[0] + (-4 - (int)pvVar4))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } } FUN_1000a4db(pvVar4); } } } if ((param_1[0x1d] == 0) && (param_1[0x1d] == 0)) { if ((DWORD **)this != this_00) { if (0xf < param_1[6]) { this_00 = (DWORD **)*this_00; } FUN_10002250(this,this_00,(int *)param_1[5]); } } else { FUN_10006d30(this); } ExceptionList = local_10; ___security_check_cookie_4(local_18 ^ (uint)&stack0xfffffffc); return; } // WARNING: Could not reconcile some variable overlaps void FUN_10006b00(HWND param_1,void *param_2) { void **ppvVar1; BOOL BVar2; uint uVar3; int ****ppppiVar4; undefined4 *puVar5; char *pcVar6; int iVar7; bool bVar8; DWORD local_98; void *local_94; int ****local_90 [4]; int local_80; uint local_7c; void *local_78 [6]; void *local_60 [6]; void *local_48 [6]; void *local_30 [6]; HWND local_18; uint local_14; void *local_10; undefined *puStack_c; undefined4 local_8; local_8 = 0xffffffff; puStack_c = &LAB_1000bba3; local_10 = ExceptionList; local_14 = DAT_10012024 ^ (uint)&stack0xfffffffc; ExceptionList = &local_10; BVar2 = IsWindowVisible(param_1); if ((BVar2 != 0) && (BVar2 = IsWindow(param_1), BVar2 != 0)) { local_98 = 0; GetWindowThreadProcessId(param_1,&local_98); FUN_100067b0((DWORD *)&local_94,local_98,'\0'); local_8 = 0; ppppiVar4 = (int ****)local_90; if (0xf < local_7c) { ppppiVar4 = local_90[0]; } local_18 = param_1; if (local_80 == 5) { puVar5 = &DAT_1000da40; iVar7 = 1; if (*ppppiVar4 == (int ***)0x75766e6f) { ppppiVar4 = ppppiVar4 + 1; iVar7 = -3; puVar5 = (undefined4 *)&DAT_1000da44; } bVar8 = *(byte *)ppppiVar4 < *(byte *)puVar5; if ((*(byte *)ppppiVar4 == *(byte *)puVar5) && ((iVar7 == -3 || (((bVar8 = *(byte *)((int)ppppiVar4 + 1) < *(byte *)((int)puVar5 + 1), *(byte *)((int)ppppiVar4 + 1) == *(byte *)((int)puVar5 + 1) && (bVar8 = *(byte *)((int)ppppiVar4 + 2) < *(byte *)((int)puVar5 + 2), *(byte *)((int)ppppiVar4 + 2) == *(byte *)((int)puVar5 + 2))) && (bVar8 = *(byte *)((int)ppppiVar4 + 3) < *(byte *)((int)puVar5 + 3), *(byte *)((int)ppppiVar4 + 3) == *(byte *)((int)puVar5 + 3))))))) { uVar3 = 0; } else { uVar3 = -(uint)bVar8 | 1; } if ((uVar3 == 0) && (DAT_100126d0 == (HWND)0x0)) { DAT_100126d0 = param_1; } } ppppiVar4 = (int ****)local_90; if (0xf < local_7c) { ppppiVar4 = local_90[0]; } if (local_80 == 0xb) { pcVar6 = "browserlock"; uVar3 = 7; do { if (*ppppiVar4 != *(int ****)pcVar6) break; ppppiVar4 = ppppiVar4 + 1; pcVar6 = (char *)((int)pcVar6 + 4); bVar8 = 3 < uVar3; uVar3 = uVar3 - 4; } while (bVar8); bVar8 = *(byte *)ppppiVar4 < (byte)*pcVar6; if (((*(byte *)ppppiVar4 == *pcVar6) && (bVar8 = *(byte *)((int)ppppiVar4 + 1) < *(byte *)((int)pcVar6 + 1), *(byte *)((int)ppppiVar4 + 1) == *(byte *)((int)pcVar6 + 1))) && ((bVar8 = *(byte *)((int)ppppiVar4 + 2) < *(byte *)((int)pcVar6 + 2), *(byte *)((int)ppppiVar4 + 2) == *(byte *)((int)pcVar6 + 2) && ((uVar3 == 0xffffffff || (bVar8 = *(byte *)((int)ppppiVar4 + 3) < *(byte *)((int)pcVar6 + 3), *(byte *)((int)ppppiVar4 + 3) == *(byte *)((int)pcVar6 + 3))))))) { uVar3 = 0; } else { uVar3 = -(uint)bVar8 | 1; } if (uVar3 == 0) { DAT_100126c8 = param_1; } } ppvVar1 = *(void ***)((int)param_2 + 4); if (*(void ***)((int)param_2 + 8) == ppvVar1) { FUN_10007f90(param_2,ppvVar1,&local_94); } else { *ppvVar1 = local_94; FUN_100043a0(ppvVar1 + 1,local_90); local_8._0_1_ = 1; FUN_100043a0(ppvVar1 + 7,local_78); local_8._0_1_ = 2; FUN_100043a0(ppvVar1 + 0xd,local_60); local_8._0_1_ = 3; FUN_100043a0(ppvVar1 + 0x13,local_48); local_8 = CONCAT31(local_8._1_3_,4); FUN_100043a0(ppvVar1 + 0x19,local_30); ppvVar1[0x1f] = local_18; *(int *)((int)param_2 + 4) = *(int *)((int)param_2 + 4) + 0x80; } FUN_100059c0((int)&local_94); } ExceptionList = local_10; ___security_check_cookie_4(local_14 ^ (uint)&stack0xfffffffc); return; } void __fastcall FUN_10006d30(undefined4 *param_1) { int *piVar1; int iVar2; undefined4 *puVar3; int iVar4; int iVar5; undefined4 *local_8; puVar3 = param_1; local_8 = param_1; if (0xf < (uint)param_1[5]) { local_8 = (undefined4 *)*param_1; puVar3 = (undefined4 *)*param_1; } piVar1 = param_1 + 4; if (0xf < (uint)param_1[5]) { param_1 = (undefined4 *)*param_1; } iVar4 = (int)(undefined4 *)(*piVar1 + (int)puVar3) - (int)param_1; iVar5 = 0; if ((undefined4 *)(*piVar1 + (int)puVar3) < param_1) { iVar4 = 0; } if (iVar4 != 0) { do { iVar2 = tolower((int)*(char *)(iVar5 + (int)param_1)); *(char *)(iVar5 + (int)local_8) = (char)iVar2; iVar5 = iVar5 + 1; } while (iVar5 != iVar4); } return; } void __fastcall FUN_10006d90(undefined4 *param_1) { int iVar1; int *piVar2; undefined4 *puVar3; void *pvVar4; void *local_20 [4]; undefined4 local_10; uint local_c; uint local_8; local_8 = DAT_10012024 ^ (uint)&stack0xfffffffc; iVar1 = FUN_10007cd0(param_1); if (iVar1 != 0) { local_10 = 0; local_c = 0xf; local_20[0] = (void *)((uint)local_20[0] & 0xffffff00); piVar2 = (int *)FUN_10007cd0(param_1); if ((int *)param_1[4] < piVar2) { piVar2 = (int *)param_1[4]; } puVar3 = param_1; if (0xf < (uint)param_1[5]) { puVar3 = (undefined4 *)*param_1; } FUN_10002250(local_20,puVar3,piVar2); FUN_10005640(param_1,local_20); if (0xf < local_c) { pvVar4 = local_20[0]; if (0xfff < local_c + 1) { pvVar4 = *(void **)((int)local_20[0] + -4); if (0x1f < (uint)((int)local_20[0] + (-4 - (int)pvVar4))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } } FUN_1000a4db(pvVar4); } } ___security_check_cookie_4(local_8 ^ (uint)&stack0xfffffffc); return; } // WARNING: Could not reconcile some variable overlaps void __fastcall FUN_10006e40(uint *param_1,int param_2) { char cVar1; char *pcVar2; char *pcVar3; void *pvVar4; LPBYTE pBVar5; int iStack_80; LPBYTE local_78; int local_74; int local_70; int local_6c; SC_HANDLE local_68; uint local_64; uint *local_60; uint local_5c; uint local_58; void *local_54 [4]; undefined4 local_44; uint local_40; uint local_3c; uint uStack_38; uint uStack_34; uint uStack_30; undefined4 local_2c; undefined4 uStack_28; uint local_24; undefined *puStack_20; void *local_1c; undefined *puStack_18; undefined4 local_14; puStack_20 = &stack0xfffffffc; local_14 = 0xffffffff; puStack_18 = &LAB_1000bbe0; local_1c = ExceptionList; local_24 = DAT_10012024 ^ (uint)&stack0xfffffff0; ExceptionList = &local_1c; local_2c = 0; uStack_28 = 0xf; local_3c = local_3c & 0xffffff00; local_6c = param_2; local_60 = param_1; FUN_10002250(&local_3c,&DAT_1000d90e,(int *)0x0); local_14 = 0; local_68 = OpenSCManagerA((LPCSTR)0x0,(LPCSTR)0x0,4); if (local_68 == (SC_HANDLE)0x0) { param_1[4] = 0; param_1[5] = 0; *param_1 = local_3c; param_1[1] = uStack_38; param_1[2] = uStack_34; param_1[3] = uStack_30; *(ulonglong *)(param_1 + 4) = CONCAT44(uStack_28,local_2c); } else { local_5c = 0; local_58 = 0; EnumServicesStatusExA (local_68,SC_ENUM_PROCESS_INFO,0x3ff,3,(LPBYTE)0x0,0,&local_5c,&local_58,(LPDWORD)0x0, (LPCSTR)0x0); FUN_10007c30(&local_78,local_5c); local_14 = CONCAT31(local_14._1_3_,1); EnumServicesStatusExA (local_68,SC_ENUM_PROCESS_INFO,0x3ff,3,local_78,local_74 - (int)local_78,&local_5c, &local_58,(LPDWORD)0x0,(LPCSTR)0x0); local_64 = 0; pBVar5 = local_78; if (local_58 != 0) { do { pcVar2 = *(char **)(pBVar5 + 4); iStack_80 = (int)((ulonglong)*(undefined8 *)(pBVar5 + 0x20) >> 0x20); if (iStack_80 == local_6c) { local_44 = 0; local_40 = 0xf; local_54[0] = (void *)((uint)local_54[0] & 0xffffff00); local_60 = (uint *)(pcVar2 + 1); pcVar3 = pcVar2; do { cVar1 = *pcVar3; pcVar3 = pcVar3 + 1; } while (cVar1 != '\0'); FUN_10002250(local_54,pcVar2,(int *)(pcVar3 + -(int)local_60)); FUN_10005640(&local_3c,local_54); if (0xf < local_40) { pvVar4 = local_54[0]; if ((0xfff < local_40 + 1) && (pvVar4 = *(void **)((int)local_54[0] + -4), 0x1f < (uint)((int)local_54[0] + (-4 - (int)pvVar4)))) goto LAB_10007058; FUN_1000a4db(pvVar4); } } local_64 = local_64 + 1; pBVar5 = pBVar5 + 0x2c; } while (local_64 < local_58); } CloseServiceHandle(local_68); param_1[4] = 0; param_1[5] = 0; *param_1 = local_3c; param_1[1] = uStack_38; param_1[2] = uStack_34; param_1[3] = uStack_30; *(ulonglong *)(param_1 + 4) = CONCAT44(uStack_28,local_2c); if (local_78 != (LPBYTE)0x0) { pBVar5 = local_78; if ((0xfff < (uint)(local_70 - (int)local_78)) && (pBVar5 = *(LPBYTE *)(local_78 + -4), (LPBYTE)0x1f < local_78 + (-4 - (int)pBVar5))) { LAB_10007058: // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pBVar5); } } ExceptionList = local_1c; ___security_check_cookie_4(local_24 ^ (uint)&stack0xfffffff0); return; } void __fastcall FUN_10007090(int param_1) { HANDLE hObject; int iVar1; undefined4 local_13c; undefined4 local_138 [2]; int local_130; undefined4 local_120; uint local_c; local_c = DAT_10012024 ^ (uint)&local_13c; local_13c = 0; hObject = (HANDLE)CreateToolhelp32Snapshot(2,0); local_138[0] = 0x128; Process32First(hObject,local_138); do { if (param_1 == local_130) { local_13c = local_120; break; } iVar1 = Process32Next(hObject,local_138); } while (iVar1 != 0); CloseHandle(hObject); ___security_check_cookie_4(local_c ^ (uint)&local_13c); return; } // WARNING: Could not reconcile some variable overlaps void __fastcall FUN_10007120(void **param_1) { size_t _Size; void *_Size_00; undefined4 ***pppuVar1; undefined4 ***pppuVar2; undefined4 ***pppuVar3; undefined4 ****ppppuVar4; BOOL BVar5; void **_Src; HWND pHVar6; char *pcVar7; uint uVar8; HWND pHVar9; HWND__ in_stack_ffffff04; undefined local_e4 [4]; undefined4 uStack_e0; HWND local_bc; HWND local_b8; HWND local_b4; HWND local_b0; HWND local_ac; undefined4 ***local_a8; undefined4 ****local_a4; HWND local_a0; undefined4 ****local_9c [4]; int local_8c; uint uStack_88; undefined4 ****local_84; undefined4 ***pppuStack_80; undefined4 ***pppuStack_7c; undefined4 ***pppuStack_78; undefined8 local_74; undefined4 ****local_6c; undefined4 ***pppuStack_68; undefined4 ***pppuStack_64; undefined4 ***pppuStack_60; undefined8 local_5c; undefined4 ****local_54; undefined4 ***pppuStack_50; undefined4 ***pppuStack_4c; undefined4 ***pppuStack_48; undefined8 local_44; char local_28; undefined local_27 [7]; undefined *puStack_20; void *local_1c; undefined *puStack_18; undefined4 local_14; puStack_20 = &stack0xfffffffc; local_14 = 0xffffffff; puStack_18 = &LAB_1000bc49; local_1c = ExceptionList; local_27._3_4_ = DAT_10012024 ^ (uint)&stack0xfffffff0; ExceptionList = &local_1c; local_a0 = (HWND)param_1; local_a8 = (undefined4 ***)FUN_100063b0(param_1); pHVar9 = (HWND)0x0; local_bc = (HWND)0x0; local_b8 = (HWND)0x0; local_b0 = (HWND)0x0; local_b4 = (HWND)0x0; local_14 = 0; pHVar6 = (HWND)0x0; do { uStack_e0 = 0x100071a4; pHVar6 = FindWindowExA((HWND)0x0,pHVar6,(LPCSTR)0x0,(LPCSTR)0x0); local_a4 = (undefined4 ****)0x0; local_ac = pHVar6; GetWindowThreadProcessId(pHVar6,(LPDWORD)&local_a4); if (local_a4 == (undefined4 ****)local_a8) { if (local_b0 == pHVar9) { FUN_10007d90(&local_bc,pHVar9,&local_ac); local_b0 = local_b4; pHVar6 = local_ac; pHVar9 = local_b8; } else { pHVar9->unused = (int)pHVar6; local_b8 = pHVar9 + 1; pHVar9 = local_b8; } } } while (pHVar6 != (HWND)0x0); local_e4[0] = 0; FUN_10002250(local_e4,&DAT_1000d57c,(int *)0x4); local_14._0_1_ = 1; pcVar7 = &local_28 + 1; local_ac = (HWND)((int)pHVar9 - (int)local_bc); ppppuVar4 = (undefined4 ****)((int)local_ac >> 2); do { pcVar7 = pcVar7 + -1; local_a4 = (undefined4 ****)((uint)ppppuVar4 / 10); *pcVar7 = (char)ppppuVar4 + (char)local_a4 * -10 + '0'; ppppuVar4 = local_a4; } while (local_a4 != (undefined4 ****)0x0); local_8c = 0; uStack_88 = 0xf; local_9c[0] = (undefined4 ****)((uint)local_9c[0] & 0xffffff00); if (pcVar7 != &local_28 + 1) { FUN_10002250(local_9c,pcVar7,(int *)(&local_28 + 1 + -(int)pcVar7)); } local_14 = CONCAT31(local_14._1_3_,2); if (uStack_88 - local_8c < 6) { local_a8 = (undefined4 ***)((uint)local_a8 & 0xffffff00); in_stack_ffffff04.unused = 0x10007391; ppppuVar4 = (undefined4 ****)FUN_100082d0(local_9c,6); } else { ppppuVar4 = local_9c; if (0xf < uStack_88) { ppppuVar4 = local_9c[0]; } if (((undefined4 ****)0x1000da7d < ppppuVar4) || ((char *)((int)ppppuVar4 + local_8c) < "Found ")) { local_a4 = (undefined4 ****)0x6; } else if ("Found " < ppppuVar4) { local_a4 = ppppuVar4 + -0x400369e; } else { local_a4 = (undefined4 ****)0x0; } _Size = local_8c + 1; local_8c = local_8c + 6; memmove((char *)((int)ppppuVar4 + 6),ppppuVar4,_Size); memcpy(ppppuVar4,"Found ",(size_t)local_a4); memcpy((char *)((int)ppppuVar4 + (int)local_a4),(char *)((int)local_a4 + 0x1000da7e), 6 - (int)local_a4); ppppuVar4 = local_9c; } local_74 = 0; local_84 = (undefined4 ****)*ppppuVar4; pppuStack_80 = ppppuVar4[1]; pppuStack_7c = ppppuVar4[2]; pppuStack_78 = ppppuVar4[3]; local_74 = *(ulonglong *)(ppppuVar4 + 4); ppppuVar4[4] = (undefined4 ***)0x0; ppppuVar4[5] = (undefined4 ***)0xf; *(undefined *)ppppuVar4 = 0; local_14 = CONCAT31(local_14._1_3_,3); if (local_74._4_4_ == (uint)local_74) { local_a8 = (undefined4 ***)((uint)local_a8 & 0xffffff00); ppppuVar4 = (undefined4 ****)FUN_10002770(&local_84,1,local_a8,&DAT_1000da74,1); } else { ppppuVar4 = &local_84; if (0xf < local_74._4_4_) { ppppuVar4 = local_84; } local_74 = local_74 & 0xffffffff00000000 | (ulonglong)((uint)local_74 + 1); memmove((void *)((int)ppppuVar4 + (uint)local_74),&DAT_1000da74,1); *(undefined *)((int)(void *)((int)ppppuVar4 + (uint)local_74) + 1) = 0; ppppuVar4 = &local_84; } local_44 = 0; local_54 = (undefined4 ****)*ppppuVar4; pppuStack_50 = ppppuVar4[1]; pppuStack_4c = ppppuVar4[2]; pppuStack_48 = ppppuVar4[3]; local_44 = *(ulonglong *)(ppppuVar4 + 4); ppppuVar4[4] = (undefined4 ***)0x0; ppppuVar4[5] = (undefined4 ***)0xf; *(undefined *)ppppuVar4 = 0; local_14 = CONCAT31(local_14._1_3_,4); _Src = (void **)local_a0; if ((void *)0xf < *(void **)(local_a0 + 5)) { _Src = *(void ***)local_a0; } _Size_00 = *(void **)(local_a0 + 4); if ((void *)(local_44._4_4_ - (int)local_44) < _Size_00) { local_a0 = (HWND)((uint)_Size_00 & 0xffffff00); ppppuVar4 = (undefined4 ****) FUN_10002770(&local_54,(uint)_Size_00,local_a0,_Src,(size_t)_Size_00); } else { local_44 = local_44 & 0xffffffff00000000 | (ulonglong)(uint)((int)_Size_00 + (int)local_44); ppppuVar4 = &local_54; if (0xf < local_44._4_4_) { ppppuVar4 = local_54; } local_a0 = (HWND)_Size_00; memmove((void *)((int)local_44 + (int)ppppuVar4),_Src,(size_t)_Size_00); *(undefined *)((int)(void *)((int)local_44 + (int)ppppuVar4) + (int)local_a0) = 0; ppppuVar4 = &local_54; } local_5c = 0; local_6c = (undefined4 ****)*ppppuVar4; pppuStack_68 = ppppuVar4[1]; pppuStack_64 = ppppuVar4[2]; pppuStack_60 = ppppuVar4[3]; local_5c = *(ulonglong *)(ppppuVar4 + 4); ppppuVar4[4] = (undefined4 ***)0x0; ppppuVar4[5] = (undefined4 ***)0xf; *(undefined *)ppppuVar4 = 0; local_a0 = (HWND)&stack0xffffff04; pHVar6 = (HWND)&stack0xffffff04; local_14 = CONCAT31(local_14._1_3_,5); local_5c._4_4_ = (uint)(local_5c >> 0x20); if (local_5c._4_4_ - (int)local_5c < 0x14) { local_a0 = (HWND)&stack0xffffff00; ppppuVar4 = (undefined4 ****)FUN_10002770(&local_6c,0x14,local_a0," windows to restore.",0x14); } else { ppppuVar4 = &local_6c; if (0xf < local_5c._4_4_) { ppppuVar4 = local_6c; } local_5c = local_5c & 0xffffffff00000000 | (ulonglong)((int)local_5c + 0x14); memmove((void *)((int)ppppuVar4 + (int)local_5c)," windows to restore.",0x14); *(undefined *)((int)(void *)((int)ppppuVar4 + (int)local_5c) + 0x14) = 0; ppppuVar4 = &local_6c; pHVar6 = local_a0; } pHVar6[4].unused = 0; pHVar6[5].unused = 0; pppuVar1 = ppppuVar4[1]; pppuVar2 = ppppuVar4[2]; pppuVar3 = ppppuVar4[3]; pHVar6->unused = (int)*ppppuVar4; pHVar6[1].unused = (int)pppuVar1; pHVar6[2].unused = (int)pppuVar2; pHVar6[3].unused = (int)pppuVar3; *(undefined8 *)(pHVar6 + 4) = *(undefined8 *)(ppppuVar4 + 4); ppppuVar4[4] = (undefined4 ***)0x0; ppppuVar4[5] = (undefined4 ***)0xf; *(undefined *)ppppuVar4 = 0; local_14 = CONCAT31(local_14._1_3_,9); FUN_10005830((undefined4 *)in_stack_ffffff04.unused); if (0xf < local_5c._4_4_) { ppppuVar4 = local_6c; if ((0xfff < local_5c._4_4_ + 1) && (ppppuVar4 = (undefined4 ****)local_6c[-1], 0x1f < (uint)((int)local_6c + (-4 - (int)ppppuVar4)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(ppppuVar4); } local_5c = 0xf00000000; local_6c = (undefined4 ****)((uint)local_6c & 0xffffff00); if (0xf < local_44._4_4_) { ppppuVar4 = local_54; if ((0xfff < local_44._4_4_ + 1) && (ppppuVar4 = (undefined4 ****)local_54[-1], 0x1f < (uint)((int)local_54 + (-4 - (int)ppppuVar4)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(ppppuVar4); } local_44 = 0xf00000000; local_54 = (undefined4 ****)((uint)local_54 & 0xffffff00); if (0xf < local_74._4_4_) { ppppuVar4 = local_84; if ((0xfff < local_74._4_4_ + 1) && (ppppuVar4 = (undefined4 ****)local_84[-1], 0x1f < (uint)((int)local_84 + (-4 - (int)ppppuVar4)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(ppppuVar4); } local_74 = 0xf00000000; local_84 = (undefined4 ****)((uint)local_84 & 0xffffff00); if (0xf < uStack_88) { ppppuVar4 = local_9c[0]; if ((0xfff < uStack_88 + 1) && (ppppuVar4 = (undefined4 ****)local_9c[0][-1], (char *)0x1f < (char *)((int)local_9c[0] + (-4 - (int)ppppuVar4)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(ppppuVar4); } local_a8 = (undefined4 ***)((uint)((int)&local_ac->unused + 3U) >> 2); uVar8 = 0; if (pHVar9 < local_bc) { local_a8 = (undefined4 ***)0x0; } pHVar6 = local_bc; if (local_a8 != (undefined4 ***)0x0) { do { local_a0 = (HWND)pHVar6->unused; BVar5 = IsWindowVisible(local_a0); if (BVar5 != 0) { uStack_e0 = 0x100076eb; PostMessageA(local_a0,0x112,0xf120,0); } uVar8 = uVar8 + 1; pHVar6 = pHVar6 + 1; } while ((undefined4 ***)uVar8 != local_a8); } if (local_bc != (HWND)0x0) { pHVar6 = local_bc; if ((0xfff < ((int)local_b0 - (int)local_bc & 0xfffffffcU)) && (pHVar6 = (HWND)local_bc[-1].unused, 0x1f < (uint)((int)local_bc + (-4 - (int)pHVar6)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pHVar6); } ExceptionList = local_1c; ___security_check_cookie_4(local_27._3_4_ ^ (uint)&stack0xfffffff0); return; } void __fastcall FUN_10007760(HWND param_1) { undefined local_20 [6]; undefined2 uStack_1a; undefined4 local_18; undefined4 local_14; undefined4 local_10; local_20._0_4_ = 1; stack0xffffffe4 = 0x12; local_14 = 0; local_10 = 0; local_18 = 0; SendInput(1,(LPINPUT)local_20,0x1c); SetForegroundWindow(param_1); stack0xffffffe4 = CONCAT22(uStack_1a,0x12); local_18 = 2; SendInput(1,(LPINPUT)local_20,0x1c); return; } undefined4 FUN_100077d0(HWND param_1,DWORD param_2) { DWORD local_8; GetWindowThreadProcessId(param_1,&local_8); if (local_8 == param_2) { DAT_100126cc = param_1; return 0; } return 1; } // WARNING: Could not reconcile some variable overlaps void FUN_10007810(void) { HWND pHVar1; int *piVar2; uint uVar3; LPARAM lParam; BOOL BVar4; undefined4 *puVar5; void *pvVar6; int ****ppppiVar7; int iVar8; bool bVar9; uint in_stack_fffffeb8; undefined4 *in_stack_fffffebc; undefined auStack_12c [8]; undefined4 uStack_124; int local_108 [4]; int local_f8 [2]; undefined4 local_f0 [2]; basic_iostream_char_struct_std__char_traits_char___ local_e8 [72]; basic_ios_char_struct_std__char_traits_char___ local_a0 [72]; DWORD local_58; undefined *local_54; undefined *local_50; DWORD local_4c; int ****local_48 [4]; uint local_38; uint local_34; undefined local_30 [4]; undefined4 local_2c; undefined4 local_28; undefined4 local_24; undefined4 local_20; undefined4 local_1c; uint local_18; uint local_14; void *local_10; undefined *puStack_c; undefined4 local_8; local_8 = 0xffffffff; puStack_c = &LAB_1000bcab; local_10 = ExceptionList; local_14 = DAT_10012024 ^ (uint)&stack0xfffffffc; ExceptionList = &local_10; AllowSetForegroundWindow(0xffffffff); if (DAT_100126c8 == (HWND)0x0) { local_50 = &stack0xfffffed0; FUN_10002250(&stack0xfffffed0,&DAT_1000d57c,(int *)0x4); local_8 = 0; puVar5 = (undefined4 *)(in_stack_fffffeb8 & 0xffffff00); FUN_10002250(&stack0xfffffeb8,"Get browserlock window handle",(int *)0x1d); local_8 = 0xffffffff; FUN_10005830(puVar5); DAT_100126c8 = GetForegroundWindow(); } pHVar1 = GetForegroundWindow(); uStack_124 = 0x100078c8; GetWindowThreadProcessId(pHVar1,&local_4c); FUN_10006240(local_48,local_4c); local_8 = 1; uStack_124 = 0x100078e8; FUN_10001b00(local_108); local_8._0_1_ = 2; piVar2 = FUN_100023d0(local_f8,"Current foreground window before alt+tab : "); ppppiVar7 = (int ****)local_48; if (0xf < local_34) { ppppiVar7 = local_48[0]; } FUN_10004740(piVar2,(char *)ppppiVar7,local_38); local_54 = auStack_12c; auStack_12c[0] = 0; FUN_10002250(auStack_12c,&DAT_1000d57c,(int *)0x4); local_8._0_1_ = 3; FUN_10001a40(local_108,&stack0xfffffebc); local_8._0_1_ = 2; FUN_10005830(in_stack_fffffebc); ppppiVar7 = (int ****)local_48; if (0xf < local_34) { ppppiVar7 = local_48[0]; } if (local_38 == 5) { puVar5 = &DAT_1000da40; iVar8 = 1; if (*ppppiVar7 == (int ***)0x75766e6f) { ppppiVar7 = ppppiVar7 + 1; iVar8 = -3; puVar5 = (undefined4 *)&DAT_1000da44; } bVar9 = *(byte *)ppppiVar7 < *(byte *)puVar5; if ((*(byte *)ppppiVar7 == *(byte *)puVar5) && ((iVar8 == -3 || (((bVar9 = *(byte *)((int)ppppiVar7 + 1) < *(byte *)((int)puVar5 + 1), *(byte *)((int)ppppiVar7 + 1) == *(byte *)((int)puVar5 + 1) && (bVar9 = *(byte *)((int)ppppiVar7 + 2) < *(byte *)((int)puVar5 + 2), *(byte *)((int)ppppiVar7 + 2) == *(byte *)((int)puVar5 + 2))) && (bVar9 = *(byte *)((int)ppppiVar7 + 3) < *(byte *)((int)puVar5 + 3), *(byte *)((int)ppppiVar7 + 3) == *(byte *)((int)puVar5 + 3))))))) { uVar3 = 0; } else { uVar3 = -(uint)bVar9 | 1; } if (uVar3 != 0) goto LAB_100079d4; GetWindowThreadProcessId(DAT_100126c8,&local_58); SetFocus(DAT_100126c8); pHVar1 = DAT_100126c8; } else { LAB_100079d4: local_1c = 0; local_18 = 0xf; local_2c = (void *)((uint)local_2c & 0xffffff00); FUN_10002250(&local_2c,&DAT_1000da40,(int *)0x5); local_8._0_1_ = 4; lParam = FUN_100063b0((void **)&local_2c); if (0xf < local_18) { pvVar6 = local_2c; if (0xfff < local_18 + 1) { pvVar6 = *(void **)((int)local_2c + -4); if (0x1f < (uint)((int)local_2c + (-4 - (int)pvVar6))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } } FUN_1000a4db(pvVar6); } EnumWindows(FUN_100077d0,lParam); BVar4 = IsWindowVisible(DAT_100126cc); if (BVar4 != 0) { BVar4 = IsWindow(DAT_100126cc); if (BVar4 != 0) { SetFocus(DAT_100126cc); FUN_10007760(DAT_100126cc); goto LAB_10007ae0; } } SetFocus(DAT_100126d0); pHVar1 = DAT_100126d0; } local_30 = (undefined [4])0x1; local_2c = (void *)0x12; local_24 = 0; local_20 = 0; local_28 = 0; uStack_124 = 0x10007ac4; SendInput(1,(LPINPUT)local_30,0x1c); SetForegroundWindow(pHVar1); local_2c = (void *)CONCAT22(local_2c._2_2_,0x12); local_28 = 2; uStack_124 = 0x10007ae0; SendInput(1,(LPINPUT)local_30,0x1c); LAB_10007ae0: *(undefined ***)((int)local_108 + *(int *)(local_108[0] + 4)) = std::basic_stringstream<char,struct_std::char_traits<char>,class_std::allocator<char>_>:: vftable; *(int *)((int)local_f0 + *(int *)(local_108[0] + 4) + -0x1c) = *(int *)(local_108[0] + 4) + -0x68; FUN_100020a0(local_f0); std::basic_iostream<char,struct_std::char_traits<char>_>:: _basic_iostream_char_struct_std__char_traits_char___(local_e8); std::basic_ios<char,struct_std::char_traits<char>_>:: _basic_ios_char_struct_std__char_traits_char___(local_a0); if (0xf < local_34) { ppppiVar7 = local_48[0]; if (0xfff < local_34 + 1) { ppppiVar7 = (int ****)local_48[0][-1]; if ((byte *)0x1f < (byte *)((int)local_48[0] + (-4 - (int)ppppiVar7))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } } FUN_1000a4db(ppppiVar7); } ExceptionList = local_10; local_108[0] = 0x10007b78; ___security_check_cookie_4(local_14 ^ (uint)&stack0xfffffffc); return; } void __fastcall FUN_10007b80(void **param_1) { void *pvVar1; void *pvVar2; pvVar1 = *param_1; if (pvVar1 != (void *)0x0) { pvVar2 = pvVar1; if ((0xfff < ((int)param_1[2] - (int)pvVar1 & 0xfffffffcU)) && (pvVar2 = *(void **)((int)pvVar1 + -4), 0x1f < (uint)((int)pvVar1 + (-4 - (int)pvVar2)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar2); *param_1 = (void *)0x0; param_1[1] = (void *)0x0; param_1[2] = (void *)0x0; } return; } void __fastcall FUN_10007be0(void **param_1) { void *pvVar1; void *pvVar2; pvVar1 = *param_1; if (pvVar1 != (void *)0x0) { pvVar2 = pvVar1; if ((0xfff < (uint)((int)param_1[2] - (int)pvVar1)) && (pvVar2 = *(void **)((int)pvVar1 + -4), 0x1f < (uint)((int)pvVar1 + (-4 - (int)pvVar2)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar2); *param_1 = (void *)0x0; param_1[1] = (void *)0x0; param_1[2] = (void *)0x0; } return; } void ** __thiscall FUN_10007c30(void *this,uint param_1) { void *_Dst; code *pcVar1; uint uVar2; int iVar3; void **ppvVar4; *(undefined4 *)this = 0; *(undefined4 *)((int)this + 4) = 0; *(undefined4 *)((int)this + 8) = 0; if (param_1 != 0) { if (0x7fffffff < param_1) { FUN_10004730(); pcVar1 = (code *)swi(3); ppvVar4 = (void **)(*pcVar1)(); return ppvVar4; } if (param_1 < 0x1000) { uVar2 = FUN_1000a4ab(param_1); } else { uVar2 = param_1 + 0x23; if (uVar2 <= param_1) { uVar2 = 0xffffffff; } iVar3 = FUN_1000a4ab(uVar2); if (iVar3 == 0) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } uVar2 = iVar3 + 0x23U & 0xffffffe0; *(int *)(uVar2 - 4) = iVar3; } *(uint *)this = uVar2; *(uint *)((int)this + 4) = uVar2; // WARNING: Load size is inaccurate *(uint *)((int)this + 8) = *this + param_1; // WARNING: Load size is inaccurate _Dst = *this; memset(_Dst,0,param_1); *(uint *)((int)this + 4) = (int)_Dst + param_1; } return (void **)this; } int __fastcall FUN_10007cd0(undefined4 *param_1) { uint uVar1; byte bVar2; int *piVar3; uint uVar4; undefined4 *_Buf; bool bVar5; _Buf = param_1; if (0xf < (uint)param_1[5]) { _Buf = (undefined4 *)*param_1; } uVar1 = param_1[4]; if (3 < uVar1) { piVar3 = (int *)memchr(_Buf,0x2e,uVar1 - 3); while( true ) { if (piVar3 == (int *)0x0) { return -1; } if ((*piVar3 == 0x6578652e) || ((((bVar2 = (byte)*piVar3, bVar5 = bVar2 < 0x2e, bVar2 == 0x2e && (bVar5 = *(byte *)((int)piVar3 + 1) < 0x65, *(byte *)((int)piVar3 + 1) == 0x65)) && (bVar5 = *(byte *)((int)piVar3 + 2) < 0x78, *(byte *)((int)piVar3 + 2) == 0x78)) && (bVar5 = *(byte *)((int)piVar3 + 3) < 0x65, *(byte *)((int)piVar3 + 3) == 0x65)))) { uVar4 = 0; } else { uVar4 = -(uint)bVar5 | 1; } if (uVar4 == 0) break; piVar3 = (int *)memchr((void *)((int)piVar3 + 1),0x2e, (int)_Buf + ((uVar1 - 3) - (int)(void *)((int)piVar3 + 1))); } return (int)piVar3 - (int)_Buf; } return -1; } void __thiscall FUN_10007d70(void *this,undefined4 param_1,undefined4 param_2,undefined param_3) { FUN_10005ce0(param_2,this,¶m_3); return; } void * __thiscall FUN_10007d90(void *this,void *param_1,undefined4 *param_2) { uint uVar1; int iVar2; void *pvVar3; code *pcVar4; int iVar5; uint uVar6; uint uVar7; void *pvVar8; uint uVar9; void *pvVar10; // WARNING: Load size is inaccurate iVar2 = *this; iVar5 = *(int *)((int)this + 4) - iVar2 >> 2; if (iVar5 == 0x3fffffff) { FUN_10004730(); pcVar4 = (code *)swi(3); pvVar10 = (void *)(*pcVar4)(); return pvVar10; } uVar1 = iVar5 + 1; uVar9 = *(int *)((int)this + 8) - iVar2 >> 2; uVar6 = uVar1; if ((uVar9 <= 0x3fffffff - (uVar9 >> 1)) && (uVar6 = (uVar9 >> 1) + uVar9, uVar6 < uVar1)) { uVar6 = uVar1; } uVar9 = uVar6 * 4; if (uVar6 < 0x40000000) { uVar6 = uVar9; if (0xfff < uVar9) goto LAB_10007dff; if (uVar9 == 0) { pvVar10 = (void *)0x0; } else { pvVar10 = (void *)FUN_1000a4ab(uVar9); } } else { uVar6 = 0xffffffff; LAB_10007dff: uVar7 = uVar6 + 0x23; if (uVar7 <= uVar6) { uVar7 = 0xffffffff; } iVar5 = FUN_1000a4ab(uVar7); if (iVar5 == 0) goto LAB_10007edf; pvVar10 = (void *)(iVar5 + 0x23U & 0xffffffe0); *(int *)((int)pvVar10 - 4) = iVar5; } iVar2 = ((int)param_1 - iVar2 >> 2) * 4; *(undefined4 *)(iVar2 + (int)pvVar10) = *param_2; // WARNING: Load size is inaccurate pvVar3 = *this; if (param_1 == *(void **)((int)this + 4)) { memmove(pvVar10,pvVar3,(int)*(void **)((int)this + 4) - (int)pvVar3); } else { memmove(pvVar10,pvVar3,(int)param_1 - (int)pvVar3); memmove((void *)(iVar2 + 4 + (int)pvVar10),param_1,*(int *)((int)this + 4) - (int)param_1); } // WARNING: Load size is inaccurate pvVar3 = *this; if (pvVar3 != (void *)0x0) { pvVar8 = pvVar3; if ((0xfff < (*(int *)((int)this + 8) - (int)pvVar3 & 0xfffffffcU)) && (pvVar8 = *(void **)((int)pvVar3 + -4), 0x1f < (uint)((int)pvVar3 + (-4 - (int)pvVar8)))) { LAB_10007edf: // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar8); } *(void **)this = pvVar10; *(void **)((int)this + 4) = (void *)((int)pvVar10 + uVar1 * 4); *(void **)((int)this + 8) = (void *)(uVar9 + (int)pvVar10); // WARNING: Load size is inaccurate return (void *)(*this + iVar2); } // WARNING: Could not reconcile some variable overlaps void __fastcall FUN_10007ef0(undefined4 param_1,undefined4 *param_2,undefined4 *param_3) { void *local_10; undefined *puStack_c; undefined4 local_8; local_8 = 0xffffffff; puStack_c = &LAB_1000bd0c; local_10 = ExceptionList; ExceptionList = &local_10; *param_2 = *param_3; FUN_100043a0(param_2 + 1,(void **)(param_3 + 1)); local_8 = 0; FUN_100043a0(param_2 + 7,(void **)(param_3 + 7)); local_8._0_1_ = 1; FUN_100043a0(param_2 + 0xd,(void **)(param_3 + 0xd)); local_8._0_1_ = 2; FUN_100043a0(param_2 + 0x13,(void **)(param_3 + 0x13)); local_8 = CONCAT31(local_8._1_3_,3); FUN_100043a0(param_2 + 0x19,(void **)(param_3 + 0x19)); param_2[0x1f] = param_3[0x1f]; ExceptionList = local_10; return; } void * __thiscall FUN_10007f90(void *this,void **param_1,undefined4 *param_2) { uint uVar1; int iVar2; void **ppvVar3; code *pcVar4; int iVar5; int iVar6; uint uVar7; uint uVar8; void *pvVar9; uint uVar10; void **ppvVar11; void **ppvVar12; void *pvVar13; void **ppvVar14; void *local_10; undefined *puStack_c; undefined local_8; undefined3 uStack_7; local_8 = 0xff; uStack_7 = 0xffffff; puStack_c = &LAB_1000bd64; local_10 = ExceptionList; ExceptionList = &local_10; // WARNING: Load size is inaccurate iVar2 = *this; iVar5 = (int)param_1 - iVar2 >> 7; iVar6 = *(int *)((int)this + 4) - iVar2 >> 7; if (iVar6 == 0x1ffffff) { FUN_10004730(); pcVar4 = (code *)swi(3); pvVar9 = (void *)(*pcVar4)(); return pvVar9; } uVar1 = iVar6 + 1; uVar10 = *(int *)((int)this + 8) - iVar2 >> 7; uVar7 = uVar1; if ((uVar10 <= 0x1ffffff - (uVar10 >> 1)) && (uVar7 = (uVar10 >> 1) + uVar10, uVar7 < uVar1)) { uVar7 = uVar1; } uVar10 = uVar7 << 7; if (uVar7 < 0x2000000) { if (0xfff < uVar10) goto LAB_10008027; if (uVar10 == 0) { ppvVar11 = (void **)0x0; } else { ppvVar11 = (void **)FUN_1000a4ab(uVar10); } } else { uVar10 = 0xffffffff; LAB_10008027: uVar8 = uVar10 + 0x23; if (uVar8 <= uVar10) { uVar8 = 0xffffffff; } pvVar9 = (void *)FUN_1000a4ab(uVar8); if (pvVar9 == (void *)0x0) goto LAB_1000804a; ppvVar11 = (void **)((int)pvVar9 + 0x23U & 0xffffffe0); ppvVar11[-1] = pvVar9; } ppvVar14 = ppvVar11 + iVar5 * 0x20; local_8 = 0; uStack_7 = 0; FUN_10007ef0(ppvVar14 + 0x20,ppvVar14,param_2); ppvVar3 = *(void ***)((int)this + 4); if (param_1 == ppvVar3) { ppvVar12 = ppvVar11; // WARNING: Load size is inaccurate for (ppvVar14 = *this; local_8 = 1, ppvVar14 != ppvVar3; ppvVar14 = ppvVar14 + 0x20) { *ppvVar12 = *ppvVar14; FUN_100043a0(ppvVar12 + 1,ppvVar14 + 1); local_8 = 2; FUN_100043a0(ppvVar12 + 7,ppvVar14 + 7); local_8 = 3; FUN_100043a0(ppvVar12 + 0xd,ppvVar14 + 0xd); local_8 = 4; FUN_100043a0(ppvVar12 + 0x13,ppvVar14 + 0x13); local_8 = 5; FUN_100043a0(ppvVar12 + 0x19,ppvVar14 + 0x19); ppvVar12[0x1f] = ppvVar14[0x1f]; ppvVar12 = ppvVar12 + 0x20; } } else { // WARNING: Load size is inaccurate FUN_10008200(*this,param_1,ppvVar11); FUN_10008200(param_1,*(void ***)((int)this + 4),ppvVar14 + 0x20); } // WARNING: Load size is inaccurate pvVar9 = *this; if (pvVar9 != (void *)0x0) { pvVar13 = *(void **)((int)this + 4); if (pvVar9 != pvVar13) { do { FUN_100059c0((int)pvVar9); pvVar9 = (void *)((int)pvVar9 + 0x80); } while (pvVar9 != pvVar13); // WARNING: Load size is inaccurate pvVar9 = *this; } pvVar13 = pvVar9; if ((0xfff < (*(int *)((int)this + 8) - (int)pvVar9 & 0xffffff80U)) && (pvVar13 = *(void **)((int)pvVar9 + -4), 0x1f < (uint)((int)pvVar9 + (-4 - (int)pvVar13)))) { LAB_1000804a: // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar13); } *(void ***)this = ppvVar11; *(void ***)((int)this + 4) = ppvVar11 + uVar1 * 0x20; *(void ***)((int)this + 8) = ppvVar11 + uVar7 * 0x20; // WARNING: Load size is inaccurate ExceptionList = local_10; return (void *)(*this + iVar5 * 0x80); } void Catch_All_100081d4(void) { int unaff_EBP; FUN_10004470(*(int *)(unaff_EBP + -0x18),*(int *)(unaff_EBP + -0x20)); FUN_100044a0(*(void **)(unaff_EBP + -0x28),*(int *)(unaff_EBP + -0x1c)); // WARNING: Subroutine does not return _CxxThrowException((void *)0x0,(ThrowInfo *)0x0); } void ** FUN_10008200(void **param_1,void **param_2,void **param_3) { void **ppvVar1; void **ppvVar2; void *local_10; undefined *puStack_c; undefined local_8; undefined3 uStack_7; puStack_c = &LAB_1000bdb4; local_10 = ExceptionList; ExceptionList = &local_10; uStack_7 = 0; if (param_1 != param_2) { ppvVar2 = param_1 + 7; do { local_8 = 0; *param_3 = ppvVar2[-7]; FUN_100043a0(param_3 + 1,ppvVar2 + -6); local_8 = 1; FUN_100043a0(param_3 + 7,ppvVar2); local_8 = 2; FUN_100043a0(param_3 + 0xd,ppvVar2 + 6); local_8 = 3; FUN_100043a0(param_3 + 0x13,ppvVar2 + 0xc); local_8 = 4; FUN_100043a0(param_3 + 0x19,ppvVar2 + 0x12); param_3[0x1f] = ppvVar2[0x18]; param_3 = param_3 + 0x20; ppvVar1 = ppvVar2 + 0x19; ppvVar2 = ppvVar2 + 0x20; } while (ppvVar1 != param_2); } ExceptionList = local_10; return param_3; } void ** __thiscall FUN_100082d0(void *this,uint param_1) { int iVar1; uint uVar2; void *_Src; code *pcVar3; uint uVar4; uint uVar5; int iVar6; void **ppvVar7; void *_Dst; uint uVar8; void *pvVar9; size_t in_stack_00000014; iVar1 = *(int *)((int)this + 0x10); if (0x7fffffffU - iVar1 < param_1) { FUN_100028c0(); pcVar3 = (code *)swi(3); ppvVar7 = (void **)(*pcVar3)(); return ppvVar7; } uVar2 = *(uint *)((int)this + 0x14); uVar8 = iVar1 + param_1 | 0xf; if (uVar8 < 0x80000000) { if (0x7fffffff - (uVar2 >> 1) < uVar2) { uVar8 = 0x7fffffff; } else { uVar4 = (uVar2 >> 1) + uVar2; if (uVar8 < uVar4) { uVar8 = uVar4; } } } else { uVar8 = 0x7fffffff; } uVar4 = uVar8 + 1; if (uVar4 < 0x1000) { if (uVar4 == 0) { _Dst = (void *)0x0; } else { _Dst = (void *)FUN_1000a4ab(uVar4); } } else { uVar5 = uVar8 + 0x24; if (uVar5 <= uVar4) { uVar5 = 0xffffffff; } iVar6 = FUN_1000a4ab(uVar5); if (iVar6 == 0) goto LAB_100083db; _Dst = (void *)(iVar6 + 0x23U & 0xffffffe0); *(int *)((int)_Dst - 4) = iVar6; } *(uint *)((int)this + 0x10) = iVar1 + param_1; *(uint *)((int)this + 0x14) = uVar8; if (uVar2 < 0x10) { memcpy(_Dst,"Found ",in_stack_00000014); memcpy((void *)((int)_Dst + in_stack_00000014),this,iVar1 + 1); *(void **)this = _Dst; return (void **)this; } // WARNING: Load size is inaccurate _Src = *this; memcpy(_Dst,"Found ",in_stack_00000014); memcpy((void *)((int)_Dst + in_stack_00000014),_Src,iVar1 + 1); pvVar9 = _Src; if ((uVar2 + 1 < 0x1000) || (pvVar9 = *(void **)((int)_Src + -4), (uint)((int)_Src + (-4 - (int)pvVar9)) < 0x20)) { FUN_1000a4db(pvVar9); *(void **)this = _Dst; return (void **)this; } LAB_100083db: // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } void __fastcall FUN_10008410(int *param_1) { int iVar1; int iVar2; iVar1 = param_1[1]; for (iVar2 = *param_1; iVar2 != iVar1; iVar2 = iVar2 + 0x80) { FUN_100059c0(iVar2); } return; } void FUN_10008440(void) { HWND *ppHVar1; uint in_stack_ffffffac; undefined4 *puVar2; undefined local_3c [12]; undefined4 uStack_30; void *local_10; undefined *puStack_c; undefined4 local_8; local_8 = 0xffffffff; puStack_c = &LAB_1000bdd8; local_10 = ExceptionList; ExceptionList = &local_10; local_3c[0] = 0; FUN_10002250(local_3c,&DAT_1000d57c,(int *)0x4); local_8 = 0; puVar2 = (undefined4 *)(in_stack_ffffffac & 0xffffff00); FUN_10002250(&stack0xffffffac,"Showing Taskbar.",(int *)0x10); local_8 = 0xffffffff; FUN_10005830(puVar2); ppHVar1 = DAT_100126e8; if (DAT_100126e8 == DAT_100126ec) { DAT_100126ec = DAT_100126e8; ExceptionList = local_10; return; } do { uStack_30 = 0x100084de; ShowWindow(*ppHVar1,5); ppHVar1 = ppHVar1 + 1; } while (ppHVar1 != DAT_100126ec); DAT_100126ec = DAT_100126e8; ExceptionList = local_10; return; } void FUN_10008520(HWND param_1) { uint uVar1; BOOL BVar2; uint uVar3; int ****ppppiVar4; int **ppiVar5; bool bVar6; uint in_stack_ffffffa0; void *pvVar7; HWND local_34; DWORD local_30; int ****local_2c [4]; uint local_1c; uint local_18; uint local_14; void *local_10; undefined *puStack_c; undefined4 local_8; local_8 = 0xffffffff; puStack_c = &LAB_1000be08; local_10 = ExceptionList; local_14 = DAT_10012024 ^ (uint)&stack0xfffffffc; ExceptionList = &local_10; local_34 = param_1; BVar2 = IsWindowVisible(param_1); if ((BVar2 == 0) || (BVar2 = IsWindow(param_1), BVar2 == 0)) goto LAB_100086b7; local_30 = 0; GetWindowThreadProcessId(param_1,&local_30); pvVar7 = (void *)(in_stack_ffffffa0 & 0xffffff00); FUN_10002250(&stack0xffffffa0,"InternalName",(int *)0xc); FUN_10006190(local_2c,local_30,pvVar7); local_8 = 0; FUN_10006d30(local_2c); ppiVar5 = &DAT_1001209c; ppppiVar4 = (int ****)local_2c; if (0xf < local_18) { ppppiVar4 = local_2c[0]; } if (0xf < DAT_100120b0) { ppiVar5 = (int **)DAT_1001209c; } uVar3 = DAT_100120ac; if (local_1c < DAT_100120ac) { uVar3 = local_1c; } while (uVar1 = uVar3 - 4, 3 < uVar3) { if ((int ***)*ppiVar5 != *ppppiVar4) goto LAB_10008609; ppiVar5 = ppiVar5 + 1; ppppiVar4 = ppppiVar4 + 1; uVar3 = uVar1; } if (uVar1 == 0xfffffffc) { LAB_1000863d: uVar3 = 0; } else { LAB_10008609: bVar6 = *(byte *)ppiVar5 < *(byte *)ppppiVar4; if ((*(byte *)ppiVar5 == *(byte *)ppppiVar4) && ((uVar1 == 0xfffffffd || ((bVar6 = *(byte *)((int)ppiVar5 + 1) < *(byte *)((int)ppppiVar4 + 1), *(byte *)((int)ppiVar5 + 1) == *(byte *)((int)ppppiVar4 + 1) && ((uVar1 == 0xfffffffe || ((bVar6 = *(byte *)((int)ppiVar5 + 2) < *(byte *)((int)ppppiVar4 + 2), *(byte *)((int)ppiVar5 + 2) == *(byte *)((int)ppppiVar4 + 2) && ((uVar1 == 0xffffffff || (bVar6 = *(byte *)((int)ppiVar5 + 3) < *(byte *)((int)ppppiVar4 + 3), *(byte *)((int)ppiVar5 + 3) == *(byte *)((int)ppppiVar4 + 3))))))))))))) goto LAB_1000863d; uVar3 = -(uint)bVar6 | 1; } if (uVar3 == 0) { if ((local_1c <= DAT_100120ac) && (local_1c > DAT_100120ac || DAT_100120ac == local_1c)) { ShowWindow(param_1,0); if (DAT_100126f0 == DAT_100126ec) { FUN_10007d90(&DAT_100126e8,DAT_100126ec,&local_34); } else { *DAT_100126ec = param_1; DAT_100126ec = DAT_100126ec + 1; } } } if (0xf < local_18) { ppppiVar4 = local_2c[0]; if ((0xfff < local_18 + 1) && (ppppiVar4 = (int ****)local_2c[0][-1], 0x1f < (uint)((int)local_2c[0] + (-4 - (int)ppppiVar4)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(ppppiVar4); } LAB_100086b7: ExceptionList = local_10; ___security_check_cookie_4(local_14 ^ (uint)&stack0xfffffffc); return; } undefined4 __fastcall FUN_100086e0(undefined4 *param_1,undefined4 *param_2) { FARPROC pFVar1; FARPROC pFVar2; HMODULE hModule; int iVar3; HANDLE pvVar4; LPVOID lpMem; undefined4 *lpSrch; LPWSTR pWVar5; undefined4 uVar6; FARPROC pFVar7; DWORD DVar8; SIZE_T dwBytes; uint uStack_78; undefined4 local_68; undefined4 local_64; undefined *local_60; undefined4 local_5c; undefined4 local_58; undefined4 local_54; undefined local_50 [8]; FARPROC local_48; undefined4 *local_44; int local_40; undefined *local_3c; FARPROC local_38; FARPROC local_34; undefined4 local_30; undefined4 local_2c; FARPROC local_28; int local_24; SIZE_T local_20; uint *local_1c; void *local_14; code *pcStack_10; uint local_c; undefined4 local_8; local_8 = 0xfffffffe; pcStack_10 = FUN_1000a85b; local_14 = ExceptionList; local_c = DAT_10012024 ^ 0x1000efc0; uStack_78 = DAT_10012024 ^ (uint)&stack0xfffffffc; local_1c = &uStack_78; ExceptionList = &local_14; local_24 = 0; local_30 = 0; local_44 = param_2; hModule = GetModuleHandleW(L"ntdll"); local_34 = GetProcAddress(hModule,"RtlInitUnicodeString"); local_38 = GetProcAddress(hModule,"NtOpenDirectoryObject"); local_28 = GetProcAddress(hModule,"NtQueryDirectoryObject"); local_48 = GetProcAddress(hModule,"ZwClose"); pFVar7 = local_28; pFVar2 = local_34; pFVar1 = local_38; if ((((local_34 != (FARPROC)0x0) && (local_38 != (FARPROC)0x0)) && (local_28 != (FARPROC)0x0)) && (local_48 != (FARPROC)0x0)) { local_8 = 0; local_3c = local_50; for (local_40 = 8; local_40 != 0; local_40 = local_40 + -1) { *local_3c = 0; local_3c = local_3c + 1; } if (7 < (uint)param_1[5]) { param_1 = (undefined4 *)*param_1; } (*pFVar2)(local_50,param_1); local_68 = 0x18; local_64 = 0; local_5c = 0x40; local_60 = local_50; local_58 = 0; local_54 = 0; iVar3 = (*pFVar1)(&local_24,1,&local_68); if (-1 < iVar3) { local_2c = 0; do { local_20 = 0; iVar3 = (*pFVar7)(local_24,0,0,1,0,&local_2c,&local_20); if (iVar3 != -0x3fffffdd) { LAB_1000887b: uVar6 = 0; LAB_1000887d: if (local_24 == 0) { ExceptionList = local_14; return uVar6; } (*local_48)(local_24); ExceptionList = local_14; return uVar6; } DVar8 = 8; dwBytes = local_20; pvVar4 = GetProcessHeap(); lpMem = HeapAlloc(pvVar4,DVar8,dwBytes); if (lpMem == (LPVOID)0x0) goto LAB_1000887b; iVar3 = (*local_28)(local_24,lpMem,local_20,1,0,&local_2c,&local_20); if (iVar3 < 0) { DVar8 = 0; pvVar4 = GetProcessHeap(); HeapFree(pvVar4,DVar8,lpMem); goto LAB_1000887b; } lpSrch = local_44; if (7 < (uint)local_44[5]) { lpSrch = (undefined4 *)*local_44; } pWVar5 = StrStrIW(*(LPCWSTR *)((int)lpMem + 4),(LPCWSTR)lpSrch); DVar8 = 0; if (pWVar5 != (LPWSTR)0x0) { pvVar4 = GetProcessHeap(); HeapFree(pvVar4,DVar8,lpMem); uVar6 = 1; local_30 = 1; goto LAB_1000887d; } pvVar4 = GetProcessHeap(); HeapFree(pvVar4,DVar8,lpMem); pFVar7 = local_28; } while( true ); } } ExceptionList = local_14; return 0; } // WARNING: Removing unreachable block (ram,0x10008947) void FUN_10008910(void) { int iVar1; void *pvVar2; bool bVar3; void *local_44 [4]; undefined4 local_34; uint local_30; void *local_2c [4]; undefined4 local_1c; uint local_18; uint local_14; void *local_10; undefined *puStack_c; undefined4 local_8; local_8 = 0xffffffff; puStack_c = &LAB_1000be49; local_10 = ExceptionList; local_14 = DAT_10012024 ^ (uint)&stack0xfffffffc; ExceptionList = &local_10; iVar1 = cpuid_Version_info(1); bVar3 = -1 < *(int *)(iVar1 + 0xc); if (bVar3) { local_34 = 0; local_30 = 7; local_44[0] = (void *)((uint)local_44[0] & 0xffff0000); FUN_10008af0(local_44,L"vmmemctl",(int *)0x8); local_8 = 0; local_1c = 0; local_18 = 7; local_2c[0] = (void *)((uint)local_2c[0] & 0xffff0000); FUN_10008af0(local_2c,L"\\Device",(int *)0x7); FUN_100086e0(local_2c,local_44); if (7 < local_18) { pvVar2 = local_2c[0]; if ((0xfff < local_18 * 2 + 2) && (pvVar2 = *(void **)((int)local_2c[0] + -4), 0x1f < (uint)((int)local_2c[0] + (-4 - (int)pvVar2)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar2); } local_1c = 0; local_18 = 7; local_2c[0] = (void *)((uint)local_2c[0] & 0xffff0000); } if ((bVar3) && (7 < local_30)) { pvVar2 = local_44[0]; if ((0xfff < local_30 * 2 + 2) && (pvVar2 = *(void **)((int)local_44[0] + -4), 0x1f < (uint)((int)local_44[0] + (-4 - (int)pvVar2)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar2); } ExceptionList = local_10; ___security_check_cookie_4(local_14 ^ (uint)&stack0xfffffffc); return; } void __fastcall FUN_10008a90(void **param_1) { void *pvVar1; void *pvVar2; if ((void *)0x7 < param_1[5]) { pvVar1 = *param_1; pvVar2 = pvVar1; if ((0xfff < (int)param_1[5] * 2 + 2U) && (pvVar2 = *(void **)((int)pvVar1 + -4), 0x1f < (uint)((int)pvVar1 + (-4 - (int)pvVar2)))) { // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar2); } param_1[4] = (void *)0x0; param_1[5] = (void *)0x7; *(undefined2 *)param_1 = 0; return; } int ** __thiscall FUN_10008af0(void *this,void *param_1,int *param_2) { int *piVar1; void *pvVar2; code *pcVar3; uint uVar4; int iVar5; void *pvVar6; int **ppiVar7; uint uVar8; void *pvVar9; uint uVar10; piVar1 = *(int **)((int)this + 0x14); if (param_2 <= piVar1) { pvVar9 = this; if ((int *)0x7 < piVar1) { // WARNING: Load size is inaccurate pvVar9 = *this; } *(int **)((int)this + 0x10) = param_2; memmove(pvVar9,param_1,(int)param_2 * 2); *(undefined2 *)((int)param_2 * 2 + (int)pvVar9) = 0; return (int **)this; } if ((int *)0x7ffffffe < param_2) { FUN_100028c0(); pcVar3 = (code *)swi(3); ppiVar7 = (int **)(*pcVar3)(); return ppiVar7; } uVar10 = (uint)param_2 | 7; if (uVar10 < 0x7fffffff) { if ((int *)(0x7ffffffe - ((uint)piVar1 >> 1)) < piVar1) { uVar10 = 0x7ffffffe; } else { uVar8 = ((uint)piVar1 >> 1) + (int)piVar1; if (uVar10 < uVar8) { uVar10 = uVar8; } } } else { uVar10 = 0x7ffffffe; } uVar8 = (uVar10 + 1) * 2; if (uVar10 + 1 < 0x80000000) { if (0xfff < uVar8) goto LAB_10008b8a; if (uVar8 == 0) { pvVar9 = (void *)0x0; } else { pvVar9 = (void *)FUN_1000a4ab(uVar8); } } else { uVar8 = 0xffffffff; LAB_10008b8a: uVar4 = uVar8 + 0x23; if (uVar4 <= uVar8) { uVar4 = 0xffffffff; } iVar5 = FUN_1000a4ab(uVar4); if (iVar5 == 0) goto LAB_10008c21; pvVar9 = (void *)(iVar5 + 0x23U & 0xffffffe0); *(int *)((int)pvVar9 - 4) = iVar5; } *(uint *)((int)this + 0x14) = uVar10; *(int **)((int)this + 0x10) = param_2; memcpy(pvVar9,param_1,(int)param_2 * 2); *(undefined2 *)((int)param_2 * 2 + (int)pvVar9) = 0; if ((int *)0x7 < piVar1) { // WARNING: Load size is inaccurate pvVar2 = *this; pvVar6 = pvVar2; if ((0xfff < (int)piVar1 * 2 + 2U) && (pvVar6 = *(void **)((int)pvVar2 + -4), 0x1f < (uint)((int)pvVar2 + (-4 - (int)pvVar6)))) { LAB_10008c21: // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar6); } *(void **)this = pvVar9; return (int **)this; } undefined4 FUN_10008c30(undefined4 param_1,undefined4 param_2,undefined4 *param_3,void *param_4) { undefined4 *puVar1; undefined4 uVar2; undefined4 uVar3; undefined4 uVar4; puVar1 = *(undefined4 **)((int)param_4 + 4); if (*(undefined4 **)((int)param_4 + 8) != puVar1) { uVar2 = param_3[1]; uVar3 = param_3[2]; uVar4 = param_3[3]; *puVar1 = *param_3; puVar1[1] = uVar2; puVar1[2] = uVar3; puVar1[3] = uVar4; *(int *)((int)param_4 + 4) = *(int *)((int)param_4 + 4) + 0x10; return 1; } FUN_100092c0(param_4,puVar1,param_3); return 1; } // WARNING: Function: __alloca_probe replaced with injection: alloca_probe void __thiscall FUN_10008c70(void *this,undefined (*param_1) [16],undefined4 param_2,undefined4 param_3, undefined4 param_4,undefined4 param_5,int *param_6) { NTSTATUS NVar1; int iVar2; int *piVar3; int *piVar4; uint uVar5; bool bVar6; undefined auStack_1058 [12]; undefined (*local_104c) [16]; int *local_1048; void *local_1044; undefined local_1040 [16]; UCHAR local_1028 [16]; int local_1018 [4]; undefined4 local_1008; undefined4 uStack_1004; undefined4 uStack_1000; undefined4 uStack_ffc; undefined4 local_ff8; uint local_14; local_14 = DAT_10012024 ^ (uint)auStack_1058; local_104c = param_1; local_1048 = param_6; local_1040 = ZEXT816(0); local_1044 = this; memset(local_1028,0,0x1010); memset(param_6,0,0x1000); NVar1 = BCryptGenRandom((BCRYPT_ALG_HANDLE)0x0,(PUCHAR)local_1018,0x10,2); if (-1 < NVar1) { local_ff8 = *(undefined4 *)((int)this + 0x10); local_1008 = param_2; uStack_1004 = param_3; uStack_1000 = param_4; uStack_ffc = param_5; iVar2 = FUN_100094f0((undefined4 *)this,(undefined (*) [16])local_1018,0x1000,local_1028); if ((-1 < iVar2) && (iVar2 = (**(code **)(*(int *)*local_104c + 0x14))(local_104c,local_1028,param_6), -1 < iVar2 )) { local_104c = (undefined (*) [16])(param_6 + 4); iVar2 = FUN_100094f0((undefined4 *)this,local_104c,0xff0,local_1040); if (-1 < iVar2) { piVar4 = (int *)local_1040; uVar5 = 0xc; piVar3 = local_1048; while (*piVar3 == *piVar4) { piVar3 = piVar3 + 1; piVar4 = piVar4 + 1; bVar6 = uVar5 < 4; uVar5 = uVar5 - 4; if (bVar6) { *(int *)((int)local_1044 + 0x10) = *(int *)((int)local_1044 + 0x10) + 1; if (*(uint *)*local_104c < 0x10) { ___security_check_cookie_4(local_14 ^ (uint)auStack_1058); return; } piVar4 = local_1018; piVar3 = local_1048 + 5; uVar5 = 0xc; do { if (*piVar3 != *piVar4) { ___security_check_cookie_4(local_14 ^ (uint)auStack_1058); return; } piVar3 = piVar3 + 1; piVar4 = piVar4 + 1; bVar6 = 3 < uVar5; uVar5 = uVar5 - 4; } while (bVar6); ___security_check_cookie_4(local_14 ^ (uint)auStack_1058); return; } } } } } ___security_check_cookie_4(local_14 ^ (uint)auStack_1058); return; } // WARNING: Function: __alloca_probe replaced with injection: alloca_probe // WARNING: Could not reconcile some variable overlaps void FUN_10008e20(void) { undefined (*pauVar1) [16]; HWND hwnd; int iVar2; BOOL BVar3; DWORD DVar4; uint uVar5; uint uVar6; char *pcVar7; int *piVar8; uint in_stack_ffffee4c; undefined4 *puVar9; wchar_t *local_1178; undefined4 local_1174; undefined4 local_1170; ULONG local_116c; int local_1168; uint local_1164; undefined4 *local_1160; int local_115c; int local_1158; BCRYPT_KEY_HANDLE local_1154; HCRYPTPROV local_1150; undefined (*local_114c) [16]; uint local_1148; int local_1144 [4]; size_t local_1134; undefined local_1130 [4076]; undefined4 local_144; undefined4 uStack_140; undefined4 uStack_13c; undefined4 uStack_138; undefined4 local_134; undefined4 uStack_130; undefined4 uStack_12c; undefined4 uStack_128; undefined4 local_124; undefined4 local_120; undefined local_44 [16]; undefined local_34 [16]; undefined local_24 [8]; undefined4 uStack_1c; undefined4 uStack_18; uint local_14; void *local_10; undefined *puStack_c; undefined4 local_8; local_8 = 0xffffffff; puStack_c = &LAB_1000bea7; local_10 = ExceptionList; local_14 = DAT_10012024 ^ (uint)&stack0xfffffffc; ExceptionList = &local_10; hwnd = GetDesktopWindow(); MonitorFromWindow(hwnd,1); OPMGetVideoOutputsFromHMONITOR(); local_1148 = 0; if (local_1164 != 0) { while( true ) { local_114c = *(undefined (**) [16])(local_1168 + local_1148 * 4); _local_24 = ZEXT816(0); local_1158 = 0; local_115c = 0; iVar2 = (**(code **)(*(int *)*local_114c + 0xc))(); if (iVar2 < 0) break; memset(&local_134,0,0xf0); local_1150 = 0; local_144 = local_24._0_4_; uStack_140 = local_24._4_4_; uStack_13c = uStack_1c; uStack_138 = uStack_18; BVar3 = CryptAcquireContextA(&local_1150,(LPCSTR)0x0,(LPCSTR)0x0,0x18,0xf0000048); if (BVar3 == 0) { DVar4 = GetLastError(); if (DVar4 == 0x8009000f) { BVar3 = CryptAcquireContextA(&local_1150,(LPCSTR)0x0,(LPCSTR)0x0,0x18,0xf0000040); if (BVar3 != 0) goto LAB_10008f59; goto LAB_10008fa1; } LAB_10008fa5: if (0 < (int)DVar4) { DVar4 = DVar4 & 0xffff | 0x80070000; } if (-1 < (int)DVar4) { DVar4 = 0x80004005; } } else { LAB_10008f59: DVar4 = 0; BVar3 = CryptGenRandom(local_1150,0x18,(BYTE *)&local_134); if (BVar3 == 0) { DVar4 = GetLastError(); if (0 < (int)DVar4) { DVar4 = DVar4 & 0xffff | 0x80070000; } if (-1 < (int)DVar4) { DVar4 = 0x80004005; } } BVar3 = CryptReleaseContext(local_1150,0); if (BVar3 == 0) { LAB_10008fa1: DVar4 = GetLastError(); goto LAB_10008fa5; } } if ((int)DVar4 < 0) { local_114c = (undefined (*) [16])&stack0xffffee64; FUN_10002250(&stack0xffffee64,"ERROR",(int *)0x5); local_8 = 1; piVar8 = (int *)0x25; pcVar7 = "HDCP CHECK: Failed to generate random"; goto LAB_10009272; } local_1160[4] = local_124; *local_1160 = local_134; local_1160[1] = uStack_130; local_1160[2] = uStack_12c; local_1160[3] = uStack_128; local_1160[5] = local_120; if ((local_1158 == 0) || (local_115c == 0)) { LAB_100091bd: local_114c = (undefined (*) [16])&stack0xffffee64; FUN_10002250(&stack0xffffee64,"ERROR",(int *)0x5); local_8 = 2; piVar8 = (int *)0x1e; pcVar7 = "HDCP CHECK: Failed to Encrypt!"; goto LAB_10009272; } local_1154 = (BCRYPT_KEY_HANDLE)0x0; uVar5 = FUN_10009790(local_1158,local_115c,&local_1154); if ((int)uVar5 < 0) goto LAB_100091bd; local_1178 = L"SHA512"; local_1174 = 0; local_1170 = 0; local_116c = 0; uVar5 = BCryptEncrypt(local_1154,(PUCHAR)&local_144,0x28,&local_1178,(PUCHAR)0x0,0, (PUCHAR)&local_144,0x100,&local_116c,4); uVar6 = BCryptDestroyKey(local_1154); pauVar1 = local_114c; if (((int)(uVar5 | 0x10000000) < 0) || ((int)(uVar6 | 0x10000000) < 0)) goto LAB_100091bd; iVar2 = (**(code **)(*(int *)*local_114c + 0x10))(); if (iVar2 < 0) { local_114c = (undefined (*) [16])&stack0xffffee64; FUN_10002250(&stack0xffffee64,"ERROR",(int *)0x5); local_8 = 3; piVar8 = (int *)0x2c; pcVar7 = "HDCP CHECK: Failed to finish initialization!"; goto LAB_10009272; } iVar2 = FUN_10008c70(local_1160,pauVar1,0x38f2a801,0x48bb9a6c,0x69b60791,0x97176f6e,local_1144 ); if (iVar2 < 0) { local_114c = (undefined (*) [16])&stack0xffffee64; FUN_10002250(&stack0xffffee64,"ERROR",(int *)0x5); local_8 = 4; piVar8 = (int *)0x2a; pcVar7 = "HDCP CHECK: Failed to send status request!"; goto LAB_10009272; } local_44 = ZEXT816(0); local_34 = ZEXT816(0); if (local_1134 != 0) { memcpy(local_44,local_1130,local_1134); } if ((local_34._4_4_ == 0) || (local_1148 = local_1148 + 1, local_1164 <= local_1148)) goto LAB_10009299; } local_114c = (undefined (*) [16])&stack0xffffee64; FUN_10002250(&stack0xffffee64,"ERROR",(int *)0x5); local_8 = 0; piVar8 = (int *)0x2a; pcVar7 = "HDCP CHECK: Failed to start initialization"; LAB_10009272: puVar9 = (undefined4 *)(in_stack_ffffee4c & 0xffffff00); FUN_10002250(&stack0xffffee4c,pcVar7,piVar8); local_8 = 0xffffffff; FUN_10005830(puVar9); } LAB_10009299: ExceptionList = local_10; ___security_check_cookie_4(local_14 ^ (uint)&stack0xfffffffc); return; } void * __thiscall FUN_100092c0(void *this,void *param_1,undefined4 *param_2) { uint uVar1; undefined4 *puVar2; void *pvVar3; code *pcVar4; undefined4 uVar5; undefined4 uVar6; undefined4 uVar7; int iVar8; uint uVar9; uint uVar10; void *pvVar11; uint uVar12; int iVar13; void *pvVar14; // WARNING: Load size is inaccurate iVar13 = *this; iVar8 = *(int *)((int)this + 4) - iVar13 >> 4; if (iVar8 == 0xfffffff) { FUN_10004730(); pcVar4 = (code *)swi(3); pvVar14 = (void *)(*pcVar4)(); return pvVar14; } uVar1 = iVar8 + 1; uVar12 = *(int *)((int)this + 8) - iVar13 >> 4; uVar9 = uVar1; if ((uVar12 <= 0xfffffff - (uVar12 >> 1)) && (uVar9 = (uVar12 >> 1) + uVar12, uVar9 < uVar1)) { uVar9 = uVar1; } uVar12 = uVar9 * 0x10; if (uVar9 < 0x10000000) { uVar9 = uVar12; if (0xfff < uVar12) goto LAB_1000932d; if (uVar12 == 0) { pvVar14 = (void *)0x0; } else { pvVar14 = (void *)FUN_1000a4ab(uVar12); } } else { uVar9 = 0xffffffff; LAB_1000932d: uVar10 = uVar9 + 0x23; if (uVar10 <= uVar9) { uVar10 = 0xffffffff; } iVar8 = FUN_1000a4ab(uVar10); if (iVar8 == 0) goto LAB_10009412; pvVar14 = (void *)(iVar8 + 0x23U & 0xffffffe0); *(int *)((int)pvVar14 - 4) = iVar8; } iVar13 = ((int)param_1 - iVar13 >> 4) * 0x10; puVar2 = (undefined4 *)(iVar13 + (int)pvVar14); uVar5 = param_2[1]; uVar6 = param_2[2]; uVar7 = param_2[3]; *puVar2 = *param_2; puVar2[1] = uVar5; puVar2[2] = uVar6; puVar2[3] = uVar7; // WARNING: Load size is inaccurate pvVar3 = *this; if (param_1 == *(void **)((int)this + 4)) { memmove(pvVar14,pvVar3,(int)*(void **)((int)this + 4) - (int)pvVar3); } else { memmove(pvVar14,pvVar3,(int)param_1 - (int)pvVar3); memmove(puVar2 + 4,param_1,*(int *)((int)this + 4) - (int)param_1); } // WARNING: Load size is inaccurate pvVar3 = *this; if (pvVar3 != (void *)0x0) { pvVar11 = pvVar3; if ((0xfff < (*(int *)((int)this + 8) - (int)pvVar3 & 0xfffffff0U)) && (pvVar11 = *(void **)((int)pvVar3 + -4), 0x1f < (uint)((int)pvVar3 + (-4 - (int)pvVar11)))) { LAB_10009412: // WARNING: Subroutine does not return _invalid_parameter_noinfo_noreturn(); } FUN_1000a4db(pvVar11); } *(void **)this = pvVar14; *(void **)((int)this + 4) = (void *)(uVar1 * 0x10 + (int)pvVar14); *(void **)((int)this + 8) = (void *)(uVar12 + (int)pvVar14); // WARNING: Load size is inaccurate return (void *)(*this + iVar13); } void __fastcall FUN_10009420(int param_1,byte *param_2) { byte bVar1; byte bVar2; int iVar3; int iVar4; int iVar5; int iVar6; byte *pbVar7; iVar4 = 1 - (int)param_2; iVar3 = param_1 - (int)param_2; iVar5 = 2 - (int)param_2; pbVar7 = (byte *)(param_1 + 2); iVar6 = 3 - (int)param_2; do { bVar1 = param_2[iVar3]; bVar2 = pbVar7[-1]; *param_2 = bVar1 * '\x02'; if (pbVar7 + (-2 - param_1) < (byte *)0xf) { *param_2 = bVar2 >> 7 | bVar1 * '\x02'; } bVar2 = bVar2 * '\x02'; bVar1 = *pbVar7; param_2[1] = bVar2; if (param_2 + iVar4 < (byte *)0xf) { param_2[1] = bVar1 >> 7 | bVar2; } bVar1 = bVar1 * '\x02'; bVar2 = pbVar7[1]; param_2[2] = bVar1; if (param_2 + iVar5 < (byte *)0xf) { param_2[2] = bVar2 >> 7 | bVar1; } bVar2 = bVar2 * '\x02'; param_2[3] = bVar2; if (param_2 + iVar6 < (byte *)0xf) { param_2[3] = pbVar7[2] >> 7 | bVar2; } pbVar7 = pbVar7 + 4; param_2 = param_2 + 4; } while (pbVar7 + (-2 - param_1) < (byte *)0x10); return; } // WARNING: Could not reconcile some variable overlaps void __fastcall FUN_100094f0(undefined4 *param_1,undefined (*param_2) [16],uint param_3,PUCHAR param_4) { uint uVar1; NTSTATUS NVar2; int iVar3; wchar_t *hObject; ULONG local_6c; PUCHAR local_68; uint local_64; size_t local_60; LPCWSTR local_5c; BCRYPT_KEY_HANDLE local_58; undefined4 local_54; undefined4 local_50; undefined4 local_4c; undefined4 local_48; undefined4 uStack_44; undefined4 uStack_40; undefined4 uStack_3c; uint local_38; uint uStack_34; uint uStack_30; uint uStack_2c; uint local_28; uint uStack_24; uint uStack_20; uint uStack_1c; undefined local_18 [8]; uint uStack_10; uint uStack_c; uint local_8; local_8 = DAT_10012024 ^ (uint)&stack0xfffffffc; local_48 = *param_1; uStack_44 = param_1[1]; uStack_40 = param_1[2]; uStack_3c = param_1[3]; local_5c = (LPCWSTR)0x0; local_58 = (BCRYPT_KEY_HANDLE)0x0; local_60 = 0; local_64 = 0; local_68 = (PUCHAR)0x0; local_54 = 0x4d42444b; local_50 = 1; local_4c = 0x10; NVar2 = BCryptOpenAlgorithmProvider(&local_5c,L"AES",L"Microsoft Primitive Provider",0); if (NVar2 == 0) { hObject = L"ObjectLength"; NVar2 = BCryptGetProperty(local_5c,L"ObjectLength",(PUCHAR)&local_60,4,&local_64,0); if ((((NVar2 == 0) && (local_68 = (PUCHAR)FUN_1000a87e(local_60), local_68 != (PUCHAR)0x0)) && (NVar2 = BCryptSetProperty(hObject,local_5c,(PUCHAR)L"ChainingMode", (ULONG)L"ChainingModeCBC",0x20), NVar2 == 0)) && (NVar2 = BCryptImportKey(local_5c,(BCRYPT_KEY_HANDLE)0x0,L"KeyDataBlob",&local_58,local_68, local_60,(PUCHAR)&local_54,0x1c,0), NVar2 == 0)) { local_6c = 0x10; _local_18 = ZEXT816(0); NVar2 = BCryptEncrypt(local_58,local_18,0x10,(void *)0x0,(PUCHAR)0x0,0,local_18,0x10,&local_6c ,0); if (NVar2 == 0) { FUN_10009420((int)local_18,(byte *)&local_28); if ((char)local_18[0] < '\0') { uStack_1c = uStack_1c ^ 0x87000000; } FUN_10009420((int)&local_28,(byte *)&local_38); if ((local_28 & 0x80) != 0) { uStack_2c = uStack_2c ^ 0x87000000; } BCryptDestroyKey(local_58); local_58 = (BCRYPT_KEY_HANDLE)0x0; NVar2 = BCryptImportKey(local_5c,(BCRYPT_KEY_HANDLE)0x0,L"KeyDataBlob",&local_58,local_68, local_60,(PUCHAR)&local_54,0x1c,0); if (NVar2 == 0) { local_64 = param_3; do { uVar1 = local_64; local_6c = 0; if (local_64 < 0x11) { if (local_64 == 0x10) { local_18 = (undefined [8]) CONCAT44(*(uint *)(*param_2 + 4) ^ uStack_24,*(uint *)*param_2 ^ local_28 ); _local_18 = CONCAT48(*(uint *)(*param_2 + 8) ^ uStack_20,local_18); _local_18 = CONCAT412(*(uint *)(*param_2 + 0xc) ^ uStack_1c,_local_18); } else { _local_18 = ZEXT816(0); memcpy(local_18,param_2,local_64); local_18[uVar1] = 0x80; local_18 = (undefined [8]) CONCAT44(uStack_34 ^ local_18._4_4_,local_38 ^ local_18._0_4_); _local_18 = CONCAT48(uStack_30 ^ uStack_10,local_18); _local_18 = CONCAT412(uStack_2c ^ uStack_c,_local_18); } iVar3 = BCryptEncrypt(local_58,local_18,0x10,(void *)0x0,(PUCHAR)0x0,0,param_4,0x10, &local_6c,0); local_64 = 0; } else { _local_18 = *param_2; iVar3 = BCryptEncrypt(local_58,local_18,0x10,(void *)0x0,(PUCHAR)0x0,0,local_18,0x10, &local_6c,0); param_2 = param_2[1]; local_64 = local_64 - 0x10; } } while ((iVar3 == 0) && (local_64 != 0)); } } } } if (local_58 != (BCRYPT_KEY_HANDLE)0x0) { BCryptDestroyKey(local_58); } if (local_5c != (LPCWSTR)0x0) { BCryptCloseAlgorithmProvider(local_5c,0); } free(local_68); ___security_check_cookie_4(local_8 ^ (uint)&stack0xfffffffc); return; } uint __fastcall FUN_10009790(int param_1,int param_2,BCRYPT_KEY_HANDLE *param_3) { HCERTSTORE hCertStore; PCCERT_CONTEXT pCertContext; DWORD DVar1; BOOL BVar2; PCCERT_CONTEXT pCertContext_00; int local_10; int local_c; HCERTSTORE local_8; if (param_1 == 0) { return 0x80004003; } if (param_2 == 0) { return 0x80070057; } local_10 = param_2; local_c = param_1; hCertStore = CertOpenStore((LPCSTR)0x5,0x10001,0,0x8000,&local_10); if (hCertStore == (HCERTSTORE)0x0) { return 0x80004005; } pCertContext_00 = (PCCERT_CONTEXT)0x0; local_8 = hCertStore; pCertContext = CertEnumCertificatesInStore(hCertStore,(PCCERT_CONTEXT)0x0); if (pCertContext != (PCCERT_CONTEXT)0x0) { do { if (pCertContext_00 != (PCCERT_CONTEXT)0x0) { CertFreeCertificateContext(pCertContext_00); } pCertContext_00 = CertDuplicateCertificateContext(pCertContext); DVar1 = FUN_10009900(pCertContext_00,hCertStore); if ((int)DVar1 < 0) { CertFreeCertificateContext(pCertContext); CertFreeCertificateContext(pCertContext_00); BVar2 = CertCloseStore(local_8,0); if (BVar2 != 0) { return DVar1; } GetLastError(); return DVar1; } pCertContext = CertEnumCertificatesInStore(local_8,pCertContext); hCertStore = local_8; } while (pCertContext != (PCCERT_CONTEXT)0x0); if (pCertContext_00 != (PCCERT_CONTEXT)0x0) { BVar2 = CryptImportPublicKeyInfoEx2 (0x10001,&pCertContext_00->pCertInfo->SubjectPublicKeyInfo,0,(void *)0x0, param_3); if (BVar2 == 0) { DVar1 = GetLastError(); if (0 < (int)DVar1) { DVar1 = DVar1 & 0xffff | 0x80070000; } if (-1 < (int)DVar1) { DVar1 = 0x80004005; } } CertFreeCertificateContext(pCertContext_00); BVar2 = CertCloseStore(local_8,0); if (BVar2 != 0) { return DVar1; } DVar1 = GetLastError(); goto LAB_10009807; } } DVar1 = GetLastError(); CertCloseStore(local_8,0); LAB_10009807: if (0 < (int)DVar1) { DVar1 = DVar1 & 0xffff | 0x80070000; } if (-1 < (int)DVar1) { DVar1 = 0x80004005; } return DVar1; } DWORD __fastcall FUN_10009900(PCCERT_CONTEXT param_1,HCERTSTORE param_2) { PCCERT_CONTEXT pSubjectContext; BOOL BVar1; uint uVar2; DWORD DVar3; code *pcVar4; PCCERT_CONTEXT pvIssuer; DWORD local_10; PCCERT_CONTEXT local_c; HCRYPTPROV local_8; if ((param_1 == (PCCERT_CONTEXT)0x0) || (param_2 == (HCERTSTORE)0x0)) { return 0x80004003; } pSubjectContext = CertDuplicateCertificateContext(param_1); uVar2 = 0; if (pSubjectContext == (PCCERT_CONTEXT)0x0) { return 0; } do { DVar3 = 0; local_10 = 0; local_c = pSubjectContext; pSubjectContext = CertGetIssuerCertificateFromStore(param_2,pSubjectContext,(PCCERT_CONTEXT)0x0,&local_10); if (pSubjectContext == (PCCERT_CONTEXT)0x0) { DVar3 = GetLastError(); uVar2 = DVar3; if (0 < (int)DVar3) { uVar2 = DVar3 & 0xffff | 0x80070000; } if (-1 < (int)uVar2) { uVar2 = 0x80004005; } if (DVar3 == 0x80092007) { uVar2 = 0; BVar1 = CertCompareCertificateName (1,&local_c->pCertInfo->Subject,&local_c->pCertInfo->Issuer); if (BVar1 == 0) { DVar3 = GetLastError(); uVar2 = DVar3; if (0 < (int)DVar3) { uVar2 = DVar3 & 0xffff | 0x80070000; } if (-1 < (int)uVar2) { uVar2 = 0x80004005; } } } } local_8 = 0; if ((int)uVar2 < 0) { LAB_100099fd: if (DVar3 == 0x8009000f) { uVar2 = 0; BVar1 = CryptAcquireContextA(&local_8,(LPCSTR)0x0,(LPCSTR)0x0,1,0xf0000040); pcVar4 = GetLastError_exref; if (BVar1 != 0) goto LAB_10009a44; uVar2 = GetLastError(); if (0 < (int)uVar2) { uVar2 = uVar2 & 0xffff | 0x80070000; } if (-1 < (int)uVar2) { uVar2 = 0x80004005; } } else { pcVar4 = GetLastError_exref; if (-1 < (int)uVar2) goto LAB_10009a44; } } else { BVar1 = CryptAcquireContextA(&local_8,(LPCSTR)0x0,(LPCSTR)0x0,1,0xf0000048); if (BVar1 == 0) { DVar3 = GetLastError(); uVar2 = DVar3; if (0 < (int)DVar3) { uVar2 = DVar3 & 0xffff | 0x80070000; } if (-1 < (int)uVar2) { uVar2 = 0x80004005; } goto LAB_100099fd; } LAB_10009a44: pvIssuer = local_c; if (pSubjectContext != (PCCERT_CONTEXT)0x0) { pvIssuer = pSubjectContext; } BVar1 = CryptVerifyCertificateSignatureEx(local_8,1,2,local_c,2,pvIssuer,0,(void *)0x0); pcVar4 = GetLastError_exref; if (BVar1 == 0) { uVar2 = GetLastError(); if (0 < (int)uVar2) { uVar2 = uVar2 & 0xffff | 0x80070000; } if (-1 < (int)uVar2) { uVar2 = 0x80004005; } } } BVar1 = CryptReleaseContext(local_8,0); local_8 = 0; if (BVar1 == 0) { uVar2 = (*pcVar4)(); if (0 < (int)uVar2) { uVar2 = uVar2 & 0xffff | 0x80070000; } if (-1 < (int)uVar2) { uVar2 = 0x80004005; } } CertFreeCertificateContext(local_c); if ((int)uVar2 < 0) { if (pSubjectContext == (PCCERT_CONTEXT)0x0) { return uVar2; } local_c = pSubjectContext; CertFreeCertificateContext(pSubjectContext); return uVar2; } if (pSubjectContext == (PCCERT_CONTEXT)0x0) { return uVar2; } } while( true ); } // WARNING: Could not reconcile some variable overlaps void FUN_10009b10(void) { DWORDLONG dwlConditionMask; undefined8 uVar1; undefined4 uStack_164; undefined8 uStack_160; DWORD DStack_158; DWORD DStack_154; DWORD DStack_150; undefined4 uStack_14c; undefined4 uStack_148; undefined auStack_134 [4]; undefined4 local_130; undefined4 local_12c; undefined4 local_128; undefined4 local_124; undefined4 local_120; undefined local_11c [208]; WORD WStack_4c; uint uStack_3c; undefined2 local_1c; undefined4 local_1a; undefined2 local_16; uint local_c; local_c = DAT_10012024 ^ (uint)auStack_134; local_130 = 0x11c; local_12c = 0; local_128 = 0; local_124 = 0; local_120 = 0; uStack_148 = 0x10009b64; memset(local_11c,0,0x100); local_1c = 0; local_1a = 0; uStack_148 = 1; uStack_14c = 3; DStack_150 = 2; DStack_154 = 0; DStack_158 = 0; local_16 = 0; uStack_160._4_4_ = 0x10009b96; uStack_160 = VerSetConditionMask(); uStack_164 = 0x10009b9a; uVar1 = VerSetConditionMask(); uStack_164 = (undefined4)((ulonglong)uVar1 >> 0x20); dwlConditionMask = (DWORDLONG)VerSetConditionMask((int)uVar1); uStack_160._4_4_ = 10; DStack_158 = 0; WStack_4c = 0; VerifyVersionInfoW((LPOSVERSIONINFOEXW)&uStack_160,0x23,dwlConditionMask); ___security_check_cookie_4(uStack_3c ^ (uint)&uStack_164); return; } // WARNING: Could not reconcile some variable overlaps void FUN_10009be0(void) { char cVar1; HMODULE hModule; FARPROC pFVar2; int *piVar3; double dVar4; double dVar5; uint in_stack_fffffddc; undefined4 *puVar6; undefined local_20c [4]; undefined4 uStack_208; char *lpProcName; int local_1e8 [4]; int local_1d8 [2]; undefined4 local_1d0 [2]; basic_iostream_char_struct_std__char_traits_char___ local_1c8 [72]; basic_ios_char_struct_std__char_traits_char___ local_180 [72]; undefined *local_138; undefined *local_134; undefined4 local_130; int local_12c; int local_124; uint local_14; void *local_10; undefined *puStack_c; undefined4 local_8; local_8 = 0xffffffff; puStack_c = &LAB_1000befc; local_10 = ExceptionList; local_14 = DAT_10012024 ^ (uint)&stack0xfffffffc; ExceptionList = &local_10; FUN_10001b00(local_1e8); local_134 = local_20c; local_8 = 0; local_20c[0] = 0; FUN_10002250(local_20c,&DAT_1000d57c,(int *)0x4); local_8._0_1_ = 1; puVar6 = (undefined4 *)(in_stack_fffffddc & 0xffffff00); FUN_10002250(&stack0xfffffddc,"Check windows version",(int *)0x15); local_8._0_1_ = 0; FUN_10005830(puVar6); lpProcName = "RtlGetVersion"; hModule = GetModuleHandleA("ntdll"); pFVar2 = GetProcAddress(hModule,lpProcName); if (pFVar2 != (FARPROC)0x0) { cVar1 = FUN_10009b10(); if (cVar1 != '\0') { local_130 = 0x11c; (*pFVar2)(); dVar5 = (double)local_12c + *(double *)(&DAT_1000dee0 + (local_12c >> 0x1f) * -8); dVar4 = (double)local_124 + *(double *)(&DAT_1000dee0 + (local_124 >> 0x1f) * -8); if ((dVar5 != 10.0) || (17763.0 <= dVar4)) { uStack_208 = 0x10009dc0; piVar3 = FUN_100023d0(local_1d8,"Clipboard history can be cleared for Windows "); uStack_208 = 0x10009dc8; piVar3 = (int *)std::basic_ostream<char,struct_std::char_traits<char>_>::operator__ ((basic_ostream_char_struct_std__char_traits_char___ *)piVar3, dVar5); piVar3 = FUN_100023d0(piVar3," with build number "); std::basic_ostream<char,struct_std::char_traits<char>_>::operator__ ((basic_ostream_char_struct_std__char_traits_char___ *)piVar3,dVar4); local_138 = local_20c; local_20c[0] = 0; FUN_10002250(local_20c,&DAT_1000d57c,(int *)0x4); local_8._0_1_ = 3; FUN_10001a40(local_1e8,&stack0xfffffddc); local_8._0_1_ = 0; FUN_10005830(puVar6); } else { uStack_208 = 0x10009d38; piVar3 = FUN_100023d0(local_1d8,"Clipboard history cannot be cleared for Windows "); uStack_208 = 0x10009d40; piVar3 = (int *)std::basic_ostream<char,struct_std::char_traits<char>_>::operator__ ((basic_ostream_char_struct_std__char_traits_char___ *)piVar3, dVar5); piVar3 = FUN_100023d0(piVar3," with build number "); std::basic_ostream<char,struct_std::char_traits<char>_>::operator__ ((basic_ostream_char_struct_std__char_traits_char___ *)piVar3,dVar4); local_138 = local_20c; local_20c[0] = 0; FUN_10002250(local_20c,&DAT_1000d57c,(int *)0x4); local_8._0_1_ = 2; FUN_10001a40(local_1e8,&stack0xfffffddc); local_8._0_1_ = 0; FUN_10005830(puVar6); } } } *(undefined ***)((int)local_1e8 + *(int *)(local_1e8[0] + 4)) = std::basic_stringstream<char,struct_std::char_traits<char>,class_std::allocator<char>_>:: vftable; *(int *)((int)local_1d0 + *(int *)(local_1e8[0] + 4) + -0x1c) = *(int *)(local_1e8[0] + 4) + -0x68 ; FUN_100020a0(local_1d0); std::basic_iostream<char,struct_std::char_traits<char>_>:: _basic_iostream_char_struct_std__char_traits_char___(local_1c8); std::basic_ios<char,struct_std::char_traits<char>_>:: _basic_ios_char_struct_std__char_traits_char___(local_180); ExceptionList = local_10; ___security_check_cookie_4(local_14 ^ (uint)&stack0xfffffffc); return; } void __cdecl FUN_10009e90(undefined4 param_1,undefined param_2) { undefined4 uVar1; undefined4 *puVar2; undefined4 uVar3; undefined1 *puVar4; uVar1 = __acrt_iob_func(1); puVar4 = ¶m_2; uVar3 = 0; puVar2 = (undefined4 *)FUN_10005cd0(); __stdio_common_vfwprintf(*puVar2,puVar2[1],uVar1,param_1,uVar3,puVar4); return; } // WARNING: Could not reconcile some variable overlaps uint FUN_10009ec0(int param_1) { HLOCAL hMem; HMODULE hModule; FARPROC pFVar1; DWORD DVar2; int *piVar3; int iVar4; uint uVar5; int iVar6; byte bVar7; undefined4 *in_stack_fffffed0; undefined4 *in_stack_fffffee0; uint uStack_118; undefined4 *in_stack_fffffef0; uint uStack_108; undefined4 uVar8; char *lpProcName; int local_d0 [4]; int local_c0 [2]; undefined4 local_b8 [2]; basic_iostream_char_struct_std__char_traits_char___ local_b0 [72]; basic_ios_char_struct_std__char_traits_char___ local_68 [72]; uint *local_20; undefined *local_1c; HLOCAL local_18; SIZE_T local_14; void *local_10; undefined *puStack_c; undefined4 local_8; local_8 = 0xffffffff; puStack_c = &LAB_1000bf53; local_10 = ExceptionList; ExceptionList = &local_10; local_14 = 0; local_18 = (HLOCAL)0x0; bVar7 = 0; FUN_10001b00(local_d0); lpProcName = "NtQuerySystemInformation"; local_8 = 0; hModule = GetModuleHandleA("NtDll.dll"); pFVar1 = GetProcAddress(hModule,lpProcName); if (pFVar1 == (FARPROC)0x0) { DVar2 = GetLastError(); piVar3 = FUN_100023d0(local_c0,"Error while retrieving address of NtQuerySystemInformation "); std::basic_ostream<char,struct_std::char_traits<char>_>::operator__ ((basic_ostream_char_struct_std__char_traits_char___ *)piVar3,DVar2); local_1c = &stack0xffffff08; FUN_10002250(&stack0xffffff08,&DAT_1000d57c,(int *)0x4); local_8._0_1_ = 1; uStack_118 = 0x10009f85; FUN_10001a40(local_d0,&stack0xfffffef0); local_8 = (uint)local_8._1_3_ << 8; FUN_10005830(in_stack_fffffef0); } iVar4 = (*pFVar1)(); if (iVar4 == -0x3ffffffc) { local_18 = LocalAlloc(0,local_14); } else { DVar2 = GetLastError(); piVar3 = FUN_100023d0(local_c0,"Error while retrieving address of NtQuerySystemInformation "); std::basic_ostream<char,struct_std::char_traits<char>_>::operator__ ((basic_ostream_char_struct_std__char_traits_char___ *)piVar3,DVar2); local_20 = &uStack_108; uStack_108 = uStack_108 & 0xffffff00; FUN_10002250(&uStack_108,&DAT_1000d57c,(int *)0x4); local_8._0_1_ = 2; FUN_10001a40(local_d0,&stack0xfffffee0); local_8 = (uint)local_8._1_3_ << 8; FUN_10005830(in_stack_fffffee0); } uVar8 = 5; iVar4 = (*pFVar1)(); if (iVar4 != 0) { DVar2 = GetLastError(); uStack_108 = 0x1000a038; piVar3 = FUN_100023d0(local_c0,"Error while retrieving address of NtQuerySystemInformation "); uStack_108 = 0x1000a040; std::basic_ostream<char,struct_std::char_traits<char>_>::operator__ ((basic_ostream_char_struct_std__char_traits_char___ *)piVar3,DVar2); local_20 = &uStack_118; uStack_108 = 0; uStack_118 = uStack_118 & 0xffffff00; FUN_10002250(&uStack_118,&DAT_1000d57c,(int *)0x4); local_8._0_1_ = 3; FUN_10001a40(local_d0,&stack0xfffffed0); local_8 = (uint)local_8._1_3_ << 8; FUN_10005830(in_stack_fffffed0); } hMem = local_18; iVar4 = 0; do { iVar6 = *(int *)(iVar4 + 0x44 + (int)hMem); if (iVar6 == 0) { *(wchar_t **)(iVar4 + 0x3c + (int)hMem) = L"System Idle Process"; } if ((param_1 == iVar6) && (iVar6 = *(int *)(iVar4 + 4 + (int)hMem), iVar6 != 0)) { piVar3 = (int *)((int)hMem + iVar4 + 0xf0); do { if (piVar3[-1] == 5) { if (*piVar3 == 5) { bVar7 = 1; } } piVar3 = piVar3 + 0x10; iVar6 = iVar6 + -1; } while (iVar6 != 0); } uStack_108 = 0x1000a0d6; FUN_10009e90(&DAT_1000decc,(char)uVar8); piVar3 = (int *)(iVar4 + (int)hMem); iVar4 = iVar4 + *piVar3; } while (*piVar3 != 0); uStack_108 = 0x1000a0ee; LocalFree(hMem); *(undefined ***)((int)local_d0 + *(int *)(local_d0[0] + 4)) = std::basic_stringstream<char,struct_std::char_traits<char>,class_std::allocator<char>_>:: vftable; *(int *)((int)local_b8 + *(int *)(local_d0[0] + 4) + -0x1c) = *(int *)(local_d0[0] + 4) + -0x68; uVar5 = FUN_100020a0(local_b8); std::basic_iostream<char,struct_std::char_traits<char>_>:: _basic_iostream_char_struct_std__char_traits_char___(local_b0); std::basic_ios<char,struct_std::char_traits<char>_>:: _basic_ios_char_struct_std__char_traits_char___(local_68); ExceptionList = local_10; return uVar5 & 0xffffff00 | (uint)bVar7; } void __thiscall std::basic_streambuf<char,struct_std::char_traits<char>_>::_Lock (basic_streambuf_char_struct_std__char_traits_char___ *this) { // WARNING: Could not recover jumptable at 0x1000a14b. Too many branches // WARNING: Treating indirect jump as call _Lock(this); return; } void __thiscall std::basic_streambuf<char,struct_std::char_traits<char>_>::_Unlock (basic_streambuf_char_struct_std__char_traits_char___ *this) { // WARNING: Could not recover jumptable at 0x1000a151. Too many branches // WARNING: Treating indirect jump as call _Unlock(this); return; } __int64 __thiscall std::basic_streambuf<char,struct_std::char_traits<char>_>::showmanyc (basic_streambuf_char_struct_std__char_traits_char___ *this) { __int64 _Var1; // WARNING: Could not recover jumptable at 0x1000a157. Too many branches // WARNING: Treating indirect jump as call _Var1 = showmanyc(this); return _Var1; } int __thiscall std::basic_streambuf<char,struct_std::char_traits<char>_>::uflow (basic_streambuf_char_struct_std__char_traits_char___ *this) { int iVar1; // WARNING: Could not recover jumptable at 0x1000a15d. Too many branches // WARNING: Treating indirect jump as call iVar1 = uflow(this); return iVar1; } __int64 __thiscall std::basic_streambuf<char,struct_std::char_traits<char>_>::xsgetn (basic_streambuf_char_struct_std__char_traits_char___ *this,char *param_1,__int64 param_2) { __int64 _Var1; // WARNING: Could not recover jumptable at 0x1000a163. Too many branches // WARNING: Treating indirect jump as call _Var1 = xsgetn(this,param_1,param_2); return _Var1; } __int64 __thiscall std::basic_streambuf<char,struct_std::char_traits<char>_>::xsputn (basic_streambuf_char_struct_std__char_traits_char___ *this,char *param_1,__int64 param_2) { __int64 _Var1; // WARNING: Could not recover jumptable at 0x1000a169. Too many branches // WARNING: Treating indirect jump as call _Var1 = xsputn(this,param_1,param_2); return _Var1; } basic_streambuf_char_struct_std__char_traits_char___ * __thiscall std::basic_streambuf<char,struct_std::char_traits<char>_>::setbuf (basic_streambuf_char_struct_std__char_traits_char___ *this,char *param_1,__int64 param_2) { basic_streambuf_char_struct_std__char_traits_char___ *pbVar1; // WARNING: Could not recover jumptable at 0x1000a16f. Too many branches // WARNING: Treating indirect jump as call pbVar1 = setbuf(this,param_1,param_2); return pbVar1; } int __thiscall std::basic_streambuf<char,struct_std::char_traits<char>_>::sync (basic_streambuf_char_struct_std__char_traits_char___ *this) { int iVar1; // WARNING: Could not recover jumptable at 0x1000a175. Too many branches // WARNING: Treating indirect jump as call iVar1 = sync(this); return iVar1; } void __thiscall std::basic_streambuf<char,struct_std::char_traits<char>_>::imbue (basic_streambuf_char_struct_std__char_traits_char___ *this,locale *param_1) { // WARNING: Could not recover jumptable at 0x1000a17b. Too many branches // WARNING: Treating indirect jump as call imbue(this,param_1); return; } // Library Function - Single Match // void __stdcall _com_issue_error(long) // // Library: Visual Studio 2017 Release void _com_issue_error(long param_1) { undefined *puVar1; undefined4 uVar2; puVar1 = PTR_FUN_10012000; uVar2 = 0; _guard_check_icall(); (*(code *)puVar1)(param_1,uVar2); return; } // WARNING: Function: __alloca_probe_16 replaced with injection: alloca_probe // Library Function - Multiple Matches With Same Base Name // unsigned short * __stdcall _com_util::ConvertStringToBSTR(char const *) // wchar_t * __stdcall _com_util::ConvertStringToBSTR(char const *) // // Library: Visual Studio 2017 Release void ConvertStringToBSTR(LPCSTR param_1) { char *cbMultiByte; char cVar1; code *pcVar2; uint uVar3; int iVar4; BSTR pOVar5; DWORD DVar6; LPCSTR pCVar7; uint *unaff_ESI; int unaff_EDI; uint local_3c; void *local_14; code *pcStack_10; uint local_c; undefined4 local_8; local_8 = 0xfffffffe; pcStack_10 = FUN_1000a85b; local_14 = ExceptionList; local_c = DAT_10012024 ^ 0x1000f0e0; uVar3 = DAT_10012024 ^ (uint)&stack0xfffffffc; ExceptionList = &local_14; local_3c = uVar3; if (param_1 == (LPCSTR)0x0) { LAB_1000a2c9: ExceptionList = local_14; ___security_check_cookie_4(uVar3 ^ (uint)&stack0xfffffffc); return; } pCVar7 = param_1; do { cVar1 = *pCVar7; pCVar7 = pCVar7 + 1; } while (cVar1 != '\0'); cbMultiByte = pCVar7 + (1 - (int)(param_1 + 1)); if (cbMultiByte < (char *)0x80000000) { unaff_EDI = MultiByteToWideChar(0,0,param_1,(int)cbMultiByte,(LPWSTR)0x0,0); if (unaff_EDI == 0) goto LAB_1000a2f4; local_8 = 0; if (unaff_EDI < 0x1000) { unaff_ESI = &local_3c; } else { unaff_ESI = (uint *)malloc(unaff_EDI * 2); } local_8 = 0xfffffffe; if (unaff_ESI == (uint *)0x0) goto LAB_1000a30c; iVar4 = MultiByteToWideChar(0,0,param_1,(int)cbMultiByte,(LPWSTR)unaff_ESI,unaff_EDI); if (iVar4 != 0) { pOVar5 = SysAllocString((OLECHAR *)unaff_ESI); if (0xfff < unaff_EDI) { free(unaff_ESI); } if (pOVar5 != (BSTR)0x0) goto LAB_1000a2c9; goto LAB_1000a33f; } } else { _com_issue_error(-0x7ff8ffa9); LAB_1000a2f4: DVar6 = GetLastError(); if (0 < (int)DVar6) { DVar6 = DVar6 & 0xffff | 0x80070000; } _com_issue_error(DVar6); LAB_1000a30c: _com_issue_error(-0x7ff8fff2); } if (0xfff < unaff_EDI) { free(unaff_ESI); } DVar6 = GetLastError(); if (0 < (int)DVar6) { DVar6 = DVar6 & 0xffff | 0x80070000; } _com_issue_error(DVar6); LAB_1000a33f: _com_issue_error(-0x7ff8fff2); pcVar2 = (code *)swi(3); (*pcVar2)(); return; } // Library Function - Single Match // public: __thiscall _com_error::_com_error(class _com_error const &) // // Libraries: Visual Studio 2017 Release, Visual Studio 2019 Release _com_error * __thiscall _com_error::_com_error(_com_error *this,_com_error *param_1) { code *pcVar1; int *piVar2; *(undefined ***)this = &PTR__scalar_deleting_destructor__1000d300; *(undefined4 *)(this + 4) = *(undefined4 *)(param_1 + 4); piVar2 = *(int **)(param_1 + 8); *(int **)(this + 8) = piVar2; *(undefined4 *)(this + 0xc) = 0; if (piVar2 != (int *)0x0) { pcVar1 = *(code **)(*piVar2 + 4); _guard_check_icall(); (*pcVar1)(piVar2); } return this; } // Library Function - Single Match // public: __thiscall _com_error::_com_error(long,struct IErrorInfo *,bool) // // Libraries: Visual Studio 2017 Release, Visual Studio 2019 Release _com_error * __thiscall _com_error::_com_error(_com_error *this,long param_1,IErrorInfo *param_2,bool param_3) { code *pcVar1; *(undefined ***)this = &PTR__scalar_deleting_destructor__1000d300; *(long *)(this + 4) = param_1; *(IErrorInfo **)(this + 8) = param_2; *(undefined4 *)(this + 0xc) = 0; if ((param_2 != (IErrorInfo *)0x0) && (param_3)) { pcVar1 = *(code **)(*(int *)param_2 + 4); _guard_check_icall(); (*pcVar1)(param_2); } return this; } // Library Function - Single Match // public: virtual void * __thiscall _com_error::`scalar deleting destructor'(unsigned int) // // Libraries: Visual Studio 2017 Release, Visual Studio 2019 Release void * __thiscall _com_error::_scalar_deleting_destructor_(_com_error *this,uint param_1) { code *pcVar1; int *piVar2; piVar2 = *(int **)(this + 8); *(undefined ***)this = &PTR__scalar_deleting_destructor__1000d300; if (piVar2 != (int *)0x0) { pcVar1 = *(code **)(*piVar2 + 8); _guard_check_icall(); (*pcVar1)(piVar2); } if (*(HLOCAL *)(this + 0xc) != (HLOCAL)0x0) { LocalFree(*(HLOCAL *)(this + 0xc)); } if ((param_1 & 1) != 0) { FUN_1000a4db(this); } return this; } void FUN_1000a470(long param_1,IErrorInfo *param_2) { _com_error local_14 [16]; _com_error::_com_error(local_14,param_1,param_2,false); // WARNING: Subroutine does not return _CxxThrowException(local_14,(ThrowInfo *)&DAT_1000f0fc); } // Library Function - Single Match // @__security_check_cookie@4 // // Libraries: Visual Studio 2017 Release, Visual Studio 2019 Release void __fastcall ___security_check_cookie_4(int param_1) { if (param_1 == DAT_10012024) { return; } ___report_gsfailure(); return; } void __cdecl free(void *_Memory) { free(_Memory); return; } void __cdecl FUN_1000a4ab(size_t param_1) { int iVar1; void *pvVar2; undefined4 local_14 [2]; undefined4 uStack_c; do { uStack_c = 0x1000a4c5; pvVar2 = malloc(param_1); if (pvVar2 != (void *)0x0) { return; } uStack_c = 0x1000a4b8; iVar1 = _callnewh(param_1); } while (iVar1 != 0); if (param_1 != 0xffffffff) { FUN_1000adf2(); return; } FUN_1000ad70(local_14); // WARNING: Subroutine does not return _CxxThrowException(local_14,(ThrowInfo *)&DAT_1000f200); } void __cdecl FUN_1000a4db(void *param_1) { free(param_1); return; } void __cdecl FUN_1000a4e9(size_t param_1) { FUN_1000a4ab(param_1); return; } undefined4 * __thiscall FUN_1000a4f2(void *this,byte param_1) { *(undefined ***)this = type_info::vftable; if ((param_1 & 1) != 0) { FUN_1000a4db(this); } return (undefined4 *)this; } // Library Function - Single Match // struct _IMAGE_SECTION_HEADER * __cdecl find_pe_section(unsigned char * const,unsigned int) // // Libraries: Visual Studio 2017 Release, Visual Studio 2019 Release _IMAGE_SECTION_HEADER * __cdecl find_pe_section(uchar *param_1,uint param_2) { int iVar1; _IMAGE_SECTION_HEADER *p_Var2; _IMAGE_SECTION_HEADER *p_Var3; iVar1 = *(int *)(param_1 + 0x3c); p_Var2 = (_IMAGE_SECTION_HEADER *) (param_1 + (uint)*(ushort *)(param_1 + iVar1 + 0x14) + iVar1 + 0x18); p_Var3 = p_Var2 + (uint)*(ushort *)(param_1 + iVar1 + 6) * 0x28; while( true ) { if (p_Var2 == p_Var3) { return (_IMAGE_SECTION_HEADER *)0x0; } if ((*(uint *)(p_Var2 + 0xc) <= param_2) && (param_2 < (uint)(*(int *)(p_Var2 + 8) + *(int *)(p_Var2 + 0xc)))) break; p_Var2 = p_Var2 + 0x28; } return p_Var2; } // Library Function - Single Match // ___scrt_acquire_startup_lock // // Library: Visual Studio 2017 Release uint ___scrt_acquire_startup_lock(void) { void *pvVar1; bool bVar2; undefined3 extraout_var; void *pvVar3; bVar2 = ___scrt_is_ucrt_dll_in_use(); pvVar3 = (void *)CONCAT31(extraout_var,bVar2); if (pvVar3 != (void *)0x0) { while( true ) { pvVar3 = (void *)0x0; LOCK(); pvVar1 = StackBase; if (DAT_10012360 != (void *)0x0) { pvVar3 = DAT_10012360; pvVar1 = DAT_10012360; } DAT_10012360 = pvVar1; if (pvVar3 == (void *)0x0) break; if (StackBase == pvVar3) { return CONCAT31((int3)((uint)pvVar3 >> 8),1); } } } return (uint)pvVar3 & 0xffffff00; } // Library Function - Single Match // ___scrt_dllmain_after_initialize_c // // Library: Visual Studio 2017 Release undefined4 ___scrt_dllmain_after_initialize_c(void) { bool bVar1; undefined3 extraout_var; undefined4 uVar2; uint uVar3; bVar1 = ___scrt_is_ucrt_dll_in_use(); if (CONCAT31(extraout_var,bVar1) == 0) { uVar2 = FUN_1000afd0(); uVar3 = _configure_narrow_argv(uVar2); if (uVar3 != 0) { return uVar3 & 0xffffff00; } uVar2 = _initialize_narrow_environment(); } else { uVar2 = ___isa_available_init(); } return CONCAT31((int3)((uint)uVar2 >> 8),1); } // Library Function - Single Match // ___scrt_dllmain_before_initialize_c // // Library: Visual Studio 2017 Release uint ___scrt_dllmain_before_initialize_c(void) { uint uVar1; uVar1 = ___scrt_initialize_onexit_tables(0); return uVar1 & 0xffffff00 | (uint)((char)uVar1 != '\0'); } // Library Function - Single Match // ___scrt_dllmain_crt_thread_attach // // Libraries: Visual Studio 2015 Release, Visual Studio 2017 Release, Visual Studio 2019 Release undefined ___scrt_dllmain_crt_thread_attach(void) { char cVar1; cVar1 = FUN_1000b3a1(); if (cVar1 != '\0') { cVar1 = FUN_1000b3a1(); if (cVar1 != '\0') { return 1; } FUN_1000b3a1(); } return 0; } // Library Function - Single Match // ___scrt_dllmain_crt_thread_detach // // Libraries: Visual Studio 2015 Release, Visual Studio 2017 Release, Visual Studio 2019 Release undefined ___scrt_dllmain_crt_thread_detach(void) { FUN_1000b3a1(); FUN_1000b3a1(); return 1; } // Library Function - Single Match // ___scrt_dllmain_exception_filter // // Libraries: Visual Studio 2017 Release, Visual Studio 2019 Release void __cdecl ___scrt_dllmain_exception_filter (undefined4 param_1,int param_2,undefined4 param_3,undefined *param_4,undefined4 param_5, undefined4 param_6) { bool bVar1; undefined3 extraout_var; int iVar2; bVar1 = ___scrt_is_ucrt_dll_in_use(); iVar2 = CONCAT31(extraout_var,bVar1); if ((iVar2 == 0) && (param_2 == 1)) { _guard_check_icall(); (*(code *)param_4)(param_1,iVar2,param_3); } _seh_filter_dll(param_5,param_6); return; } void FUN_1000a624(void) { bool bVar1; undefined3 extraout_var; int iVar2; bVar1 = ___scrt_is_ucrt_dll_in_use(); if (CONCAT31(extraout_var,bVar1) != 0) { _execute_onexit_table(&DAT_10012368); return; } iVar2 = FUN_1000b3a4(); if (iVar2 != 0) { return; } // WARNING: Could not recover jumptable at 0x1000b389. Too many branches // WARNING: Treating indirect jump as call _cexit(); return; } void FUN_1000a647(void) { FUN_1000b3a1(); FUN_1000b3a1(); return; } // Library Function - Single Match // ___scrt_initialize_crt // // Library: Visual Studio 2017 Release uint __cdecl ___scrt_initialize_crt(int param_1) { uint uVar1; undefined4 uVar2; if (param_1 == 0) { DAT_10012364 = 1; } ___isa_available_init(); uVar1 = FUN_1000b3a1(); if ((char)uVar1 != '\0') { uVar2 = FUN_1000b3a1(); if ((char)uVar2 != '\0') { return CONCAT31((int3)((uint)uVar2 >> 8),1); } uVar1 = FUN_1000b3a1(); } return uVar1 & 0xffffff00; } // Library Function - Single Match // ___scrt_initialize_onexit_tables // // Library: Visual Studio 2017 Release undefined4 __cdecl ___scrt_initialize_onexit_tables(int param_1) { code *pcVar1; byte bVar2; bool bVar3; undefined4 in_EAX; undefined3 extraout_var; uint uVar4; undefined4 uVar5; if (DAT_10012365 != '\0') { return CONCAT31((int3)((uint)in_EAX >> 8),1); } if ((param_1 != 0) && (param_1 != 1)) { ___scrt_fastfail(5); pcVar1 = (code *)swi(3); uVar5 = (*pcVar1)(); return uVar5; } bVar3 = ___scrt_is_ucrt_dll_in_use(); if ((CONCAT31(extraout_var,bVar3) == 0) || (param_1 != 0)) { bVar2 = 0x20 - ((byte)DAT_10012024 & 0x1f) & 0x1f; uVar4 = (0xffffffffU >> bVar2 | -1 << 0x20 - bVar2) ^ DAT_10012024; DAT_10012368 = uVar4; DAT_1001236c = uVar4; DAT_10012370 = uVar4; DAT_10012374 = uVar4; DAT_10012378 = uVar4; DAT_1001237c = uVar4; LAB_1000a71e: DAT_10012365 = '\x01'; uVar4 = CONCAT31((int3)(uVar4 >> 8),1); } else { uVar4 = _initialize_onexit_table(&DAT_10012368); if (uVar4 == 0) { uVar4 = _initialize_onexit_table(&DAT_10012374); if (uVar4 == 0) goto LAB_1000a71e; } uVar4 = uVar4 & 0xffffff00; } return uVar4; } // WARNING: Function: __SEH_prolog4 replaced with injection: SEH_prolog4 // Library Function - Single Match // ___scrt_is_nonwritable_in_current_image // // Library: Visual Studio 2017 Release uint __cdecl ___scrt_is_nonwritable_in_current_image(int param_1) { _IMAGE_SECTION_HEADER *p_Var1; uint uVar2; void *local_14; p_Var1 = find_pe_section((uchar *)&IMAGE_DOS_HEADER_10000000,param_1 + 0xf0000000); if ((p_Var1 == (_IMAGE_SECTION_HEADER *)0x0) || (*(int *)(p_Var1 + 0x24) < 0)) { uVar2 = (uint)p_Var1 & 0xffffff00; } else { uVar2 = CONCAT31((int3)((uint)p_Var1 >> 8),1); } ExceptionList = local_14; return uVar2; } // Library Function - Single Match // ___scrt_release_startup_lock // // Libraries: Visual Studio 2015 Release, Visual Studio 2017 Release int __cdecl ___scrt_release_startup_lock(char param_1) { int iVar1; bool bVar2; undefined3 extraout_var; int iVar3; bVar2 = ___scrt_is_ucrt_dll_in_use(); iVar1 = DAT_10012360; iVar3 = CONCAT31(extraout_var,bVar2); if ((iVar3 != 0) && (param_1 == '\0')) { DAT_10012360 = 0; iVar3 = iVar1; } return iVar3; } // Library Function - Single Match // ___scrt_uninitialize_crt // // Library: Visual Studio 2017 Release undefined __cdecl ___scrt_uninitialize_crt(undefined4 param_1,char param_2) { if ((DAT_10012364 == '\0') || (param_2 == '\0')) { FUN_1000b3a1(); FUN_1000b3a1(); } return 1; } // Library Function - Single Match // __onexit // // Libraries: Visual Studio 2015 Release, Visual Studio 2017 Release _onexit_t __cdecl __onexit(_onexit_t _Func) { int iVar1; byte bVar2; bVar2 = (byte)DAT_10012024 & 0x1f; if (((DAT_10012024 ^ DAT_10012368) >> bVar2 | (DAT_10012024 ^ DAT_10012368) << 0x20 - bVar2) == 0xffffffff) { iVar1 = _crt_atexit(); } else { iVar1 = _register_onexit_function(&DAT_10012368,_Func); } return (_onexit_t)(~-(uint)(iVar1 != 0) & (uint)_Func); } // Library Function - Single Match // _atexit // // Libraries: Visual Studio 2015 Release, Visual Studio 2017 Release int __cdecl _atexit(void *param_1) { _onexit_t p_Var1; p_Var1 = __onexit((_onexit_t)param_1); return (p_Var1 != (_onexit_t)0x0) - 1; } void __cdecl FUN_1000a85b(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4) { _except_handler4_common(&DAT_10012024,___security_check_cookie_4,param_1,param_2,param_3,param_4); return; } void FUN_1000a87e(size_t param_1) { FUN_1000b16b(param_1); return; } // Library Function - Single Match // int __stdcall dllmain_crt_dispatch(struct HINSTANCE__ * const,unsigned long,void * const) // // Library: Visual Studio 2017 Release int dllmain_crt_dispatch(HINSTANCE__ *param_1,ulong param_2,void *param_3) { uint uVar1; if (param_2 == 0) { uVar1 = dllmain_crt_process_detach(param_3 != (void *)0x0); } else if (param_2 == 1) { uVar1 = dllmain_crt_process_attach(param_1,param_3); } else { if (param_2 == 2) { uVar1 = ___scrt_dllmain_crt_thread_attach(); } else { if (param_2 != 3) { return 1; } uVar1 = ___scrt_dllmain_crt_thread_detach(); } uVar1 = uVar1 & 0xff; } return uVar1; } // WARNING: Function: __SEH_prolog4 replaced with injection: SEH_prolog4 // WARNING: Globals starting with '_' overlap smaller symbols at the same address // Library Function - Single Match // int __cdecl dllmain_crt_process_attach(struct HINSTANCE__ * const,void * const) // // Library: Visual Studio 2017 Release int __cdecl dllmain_crt_process_attach(HINSTANCE__ *param_1,void *param_2) { code *pcVar1; bool bVar2; undefined4 uVar3; uint uVar4; int iVar5; code **ppcVar6; void *local_14; uVar3 = ___scrt_initialize_crt(0); if ((char)uVar3 != '\0') { ___scrt_acquire_startup_lock(); bVar2 = true; if (_DAT_1001235c != 0) { ___scrt_fastfail(7); pcVar1 = (code *)swi(3); iVar5 = (*pcVar1)(); return iVar5; } _DAT_1001235c = 1; uVar4 = ___scrt_dllmain_before_initialize_c(); if ((char)uVar4 != '\0') { __RTC_Initialize(); FUN_1000b253(); ___scrt_initialize_default_local_stdio_options(); iVar5 = _initterm_e(&DAT_1000d2e0,&DAT_1000d2e4); if ((iVar5 == 0) && (uVar3 = ___scrt_dllmain_after_initialize_c(), (char)uVar3 != '\0')) { _initterm(&DAT_1000d2c8,&DAT_1000d2dc); _DAT_1001235c = 2; bVar2 = false; } } FUN_1000a9d2(); if (!bVar2) { ppcVar6 = (code **)FUN_1000b28e(); if ((*ppcVar6 != (code *)0x0) && (uVar3 = ___scrt_is_nonwritable_in_current_image((int)ppcVar6), (char)uVar3 != '\0')) { uVar3 = 2; pcVar1 = *ppcVar6; _guard_check_icall(); (*pcVar1)(param_1,uVar3,param_2); } DAT_10012380 = DAT_10012380 + 1; ExceptionList = local_14; return 1; } } ExceptionList = local_14; return 0; } void FUN_1000a9d2(void) { int unaff_EBP; ___scrt_release_startup_lock((char)*(undefined4 *)(unaff_EBP + -0x1d)); return; } // WARNING: Function: __SEH_prolog4 replaced with injection: SEH_prolog4 // WARNING: Globals starting with '_' overlap smaller symbols at the same address // Library Function - Single Match // int __cdecl dllmain_crt_process_detach(bool) // // Library: Visual Studio 2017 Release int __cdecl dllmain_crt_process_detach(bool param_1) { code *pcVar1; char cVar2; uint uVar3; int iVar4; undefined3 in_stack_00000005; void *local_14; if (DAT_10012380 < 1) { uVar3 = 0; } else { DAT_10012380 = DAT_10012380 + -1; ___scrt_acquire_startup_lock(); if (_DAT_1001235c != 2) { ___scrt_fastfail(7); pcVar1 = (code *)swi(3); iVar4 = (*pcVar1)(); return iVar4; } FUN_1000a624(); __scrt_uninitialize_type_info(); __RTC_Terminate(); _DAT_1001235c = 0; FUN_1000aa5f(); cVar2 = ___scrt_uninitialize_crt(_param_1,'\0'); uVar3 = (uint)(cVar2 != '\0'); } ExceptionList = local_14; return uVar3; } void FUN_1000aa5f(void) { int unaff_EBP; FUN_1000a647(); ___scrt_release_startup_lock((char)*(undefined4 *)(unaff_EBP + -0x1c)); return; } // WARNING: Function: __SEH_prolog4 replaced with injection: SEH_prolog4 // Library Function - Single Match // int __cdecl dllmain_dispatch(struct HINSTANCE__ * const,unsigned long,void * const) // // Library: Visual Studio 2017 Release int __cdecl dllmain_dispatch(HINSTANCE__ *param_1,ulong param_2,void *param_3) { int iVar1; void *local_14; if ((param_2 == 0) && (DAT_10012380 < 1)) { iVar1 = 0; } else if (((param_2 != 1) && (param_2 != 2)) || ((iVar1 = dllmain_raw(param_1,param_2,param_3), iVar1 != 0 && (iVar1 = dllmain_crt_dispatch(param_1,param_2,param_3), iVar1 != 0)))) { iVar1 = FUN_100049c0(); if ((param_2 == 1) && (iVar1 == 0)) { FUN_100049c0(); dllmain_crt_dispatch(param_1,0,param_3); dllmain_raw(param_1,0,param_3); } if (((param_2 == 0) || (param_2 == 3)) && (iVar1 = dllmain_crt_dispatch(param_1,param_2,param_3), iVar1 != 0)) { iVar1 = dllmain_raw(param_1,param_2,param_3); } } ExceptionList = local_14; return iVar1; } // WARNING: Removing unreachable block (ram,0x1000ab8f) // Library Function - Single Match // int __stdcall dllmain_raw(struct HINSTANCE__ * const,unsigned long,void * const) // // Library: Visual Studio 2017 Release int dllmain_raw(HINSTANCE__ *param_1,ulong param_2,void *param_3) { return 1; } void entry(HINSTANCE__ *param_1,ulong param_2,void *param_3) { if (param_2 == 1) { ___security_init_cookie(); } dllmain_dispatch(param_1,param_2,param_3); return; } void _guard_check_icall(void) { return; } // WARNING: This is an inlined function // WARNING: Function: __alloca_probe replaced with injection: alloca_probe // Library Function - Single Match // __alloca_probe_16 // // Library: Visual Studio 2017 Release uint __alloca_probe_16(undefined1 param_1) { uint in_EAX; uint uVar1; uVar1 = 4 - in_EAX & 0xf; return in_EAX + uVar1 | -(uint)CARRY4(in_EAX,uVar1); } // WARNING: This is an inlined function // WARNING: Function: __alloca_probe replaced with injection: alloca_probe uint __alloca_probe_8(undefined1 param_1) { uint in_EAX; uint uVar1; uVar1 = 4 - in_EAX & 7; return in_EAX + uVar1 | -(uint)CARRY4(in_EAX,uVar1); } // Library Function - Single Match // ___raise_securityfailure // // Libraries: Visual Studio 2017 Release, Visual Studio 2019 Release void __cdecl ___raise_securityfailure(_EXCEPTION_POINTERS *param_1) { HANDLE hProcess; UINT uExitCode; SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)0x0); UnhandledExceptionFilter(param_1); uExitCode = 0xc0000409; hProcess = GetCurrentProcess(); TerminateProcess(hProcess,uExitCode); return; } // WARNING: Globals starting with '_' overlap smaller symbols at the same address // Library Function - Single Match // ___report_gsfailure // // Libraries: Visual Studio 2017 Release, Visual Studio 2019 Release void __cdecl ___report_gsfailure(void) { code *pcVar1; uint uVar2; undefined4 extraout_ECX; undefined4 extraout_ECX_00; undefined4 uVar3; undefined4 extraout_EDX; undefined4 unaff_EBX; undefined4 unaff_EBP; undefined4 unaff_ESI; undefined4 unaff_EDI; undefined2 in_ES; undefined2 in_CS; undefined2 in_SS; undefined2 in_DS; undefined2 in_FS; undefined2 in_GS; byte bVar4; byte bVar5; byte in_AF; byte bVar6; byte bVar7; byte in_TF; byte in_IF; byte bVar8; byte in_NT; byte in_AC; byte in_VIF; byte in_VIP; byte in_ID; undefined8 uVar9; undefined4 unaff_retaddr; uVar2 = IsProcessorFeaturePresent(0x17); uVar9 = CONCAT44(extraout_EDX,uVar2); bVar4 = 0; bVar8 = 0; bVar7 = (int)uVar2 < 0; bVar6 = uVar2 == 0; bVar5 = (POPCOUNT(uVar2 & 0xff) & 1U) == 0; uVar3 = extraout_ECX; if (!(bool)bVar6) { pcVar1 = (code *)swi(0x29); uVar9 = (*pcVar1)(); uVar3 = extraout_ECX_00; } _DAT_10012498 = (uint)(in_NT & 1) * 0x4000 | (uint)(bVar8 & 1) * 0x800 | (uint)(in_IF & 1) * 0x200 | (uint)(in_TF & 1) * 0x100 | (uint)(bVar7 & 1) * 0x80 | (uint)(bVar6 & 1) * 0x40 | (uint)(in_AF & 1) * 0x10 | (uint)(bVar5 & 1) * 4 | (uint)(bVar4 & 1) | (uint)(in_ID & 1) * 0x200000 | (uint)(in_VIP & 1) * 0x100000 | (uint)(in_VIF & 1) * 0x80000 | (uint)(in_AC & 1) * 0x40000; _DAT_1001249c = &stack0x00000004; _DAT_100123d8 = 0x10001; _DAT_10012388 = 0xc0000409; _DAT_1001238c = 1; _DAT_10012398 = 1; _DAT_1001239c = 2; _DAT_10012394 = unaff_retaddr; _DAT_10012464 = in_GS; _DAT_10012468 = in_FS; _DAT_1001246c = in_ES; _DAT_10012470 = in_DS; _DAT_10012474 = unaff_EDI; _DAT_10012478 = unaff_ESI; _DAT_1001247c = unaff_EBX; _DAT_10012484 = uVar3; _DAT_1001248c = unaff_EBP; DAT_10012490 = unaff_retaddr; _DAT_10012494 = in_CS; _DAT_100124a0 = in_SS; ___raise_securityfailure((_EXCEPTION_POINTERS *)&PTR_DAT_1000d330); _DAT_10012480 = (undefined4)((ulonglong)uVar9 >> 0x20); _DAT_10012488 = (undefined4)uVar9; return; } void __cdecl free(void *_Memory) { // WARNING: Could not recover jumptable at 0x1000b34d. Too many branches // WARNING: Treating indirect jump as call free(_Memory); return; } undefined4 * __thiscall FUN_1000ad22(void *this,exception *param_1) { std::exception::exception((exception *)this,param_1); *(undefined ***)this = std::bad_alloc::vftable; return (undefined4 *)this; } undefined4 * __fastcall FUN_1000ad3d(undefined4 *param_1) { param_1[1] = 0; param_1[2] = 0; param_1[1] = "bad allocation"; *param_1 = std::bad_alloc::vftable; return param_1; } undefined4 * __thiscall FUN_1000ad55(void *this,exception *param_1) { std::exception::exception((exception *)this,param_1); *(undefined ***)this = std::bad_array_new_length::vftable; return (undefined4 *)this; } undefined4 * __fastcall FUN_1000ad70(undefined4 *param_1) { param_1[1] = 0; param_1[2] = 0; param_1[1] = "bad array new length"; *param_1 = std::bad_array_new_length::vftable; return param_1; } // Library Function - Single Match // public: __thiscall std::exception::exception(class std::exception const &) // // Libraries: Visual Studio 2015 Release, Visual Studio 2017 Release, Visual Studio 2019 Release exception * __thiscall std::exception::exception(exception *this,exception *param_1) { *(undefined ***)this = vftable; *(undefined4 *)(this + 4) = 0; *(undefined4 *)(this + 8) = 0; __std_exception_copy(param_1 + 4,this + 4); return this; } undefined4 * __thiscall FUN_1000adc5(void *this,byte param_1) { *(undefined ***)this = std::exception::vftable; __std_exception_destroy((int)this + 4); if ((param_1 & 1) != 0) { FUN_1000a4db(this); } return (undefined4 *)this; } void FUN_1000adf2(void) { undefined4 local_10 [3]; FUN_1000ad3d(local_10); // WARNING: Subroutine does not return _CxxThrowException(local_10,(ThrowInfo *)&DAT_1000f1ac); } char * __fastcall FUN_1000ae2c(int param_1) { char *pcVar1; pcVar1 = *(char **)(param_1 + 4); if (pcVar1 == (char *)0x0) { pcVar1 = "Unknown exception"; } return pcVar1; } // WARNING: Removing unreachable block (ram,0x1000aeb5) // WARNING: Removing unreachable block (ram,0x1000ae7a) // WARNING: Removing unreachable block (ram,0x1000af2d) // WARNING: Globals starting with '_' overlap smaller symbols at the same address // Library Function - Single Match // ___isa_available_init // // Library: Visual Studio 2017 Release undefined4 ___isa_available_init(void) { int *piVar1; uint *puVar2; int iVar3; uint uVar4; BOOL BVar5; uint uVar6; uint uVar7; uint in_XCR0; _DAT_100126a4 = 0; DAT_1001202c = DAT_1001202c | 1; BVar5 = IsProcessorFeaturePresent(10); uVar4 = DAT_1001202c; if (BVar5 != 0) { DAT_1001202c = DAT_1001202c | 2; _DAT_100126a4 = 1; piVar1 = (int *)cpuid_basic_info(0); puVar2 = (uint *)cpuid_Version_info(1); uVar7 = puVar2[3]; if (((piVar1[3] ^ 0x6c65746eU | piVar1[2] ^ 0x49656e69U | piVar1[1] ^ 0x756e6547U) == 0) && (((((uVar6 = *puVar2 & 0xfff3ff0, uVar6 == 0x106c0 || (uVar6 == 0x20660)) || (uVar6 == 0x20670)) || ((uVar6 == 0x30650 || (uVar6 == 0x30660)))) || (uVar6 == 0x30670))) ) { DAT_100126a8 = DAT_100126a8 | 1; } if (*piVar1 < 7) { uVar6 = 0; } else { iVar3 = cpuid_Extended_Feature_Enumeration_info(7); uVar6 = *(uint *)(iVar3 + 4); if ((uVar6 & 0x200) != 0) { DAT_100126a8 = DAT_100126a8 | 2; } } if ((uVar7 & 0x100000) != 0) { DAT_1001202c = uVar4 | 6; _DAT_100126a4 = 2; if ((((uVar7 & 0x8000000) != 0) && ((uVar7 & 0x10000000) != 0)) && ((in_XCR0 & 6) == 6)) { DAT_1001202c = uVar4 | 0xe; _DAT_100126a4 = 3; if ((uVar6 & 0x20) != 0) { DAT_1001202c = uVar4 | 0x2e; _DAT_100126a4 = 5; } } } } return 0; } undefined4 FUN_1000afd0(void) { return 1; } // WARNING: Globals starting with '_' overlap smaller symbols at the same address // Library Function - Single Match // ___scrt_is_ucrt_dll_in_use // // Library: Visual Studio 2017 Release bool ___scrt_is_ucrt_dll_in_use(void) { return _DAT_10012030 != 0; } // Library Function - Single Match // ___scrt_fastfail // // Library: Visual Studio 2017 Release void ___scrt_fastfail(undefined4 param_1) { code *pcVar1; BOOL BVar2; LONG LVar3; undefined4 local_328 [39]; EXCEPTION_RECORD local_5c; _EXCEPTION_POINTERS local_c; BVar2 = IsProcessorFeaturePresent(0x17); if (BVar2 != 0) { pcVar1 = (code *)swi(0x29); (*pcVar1)(); } FUN_1000b0fa(); memset(local_328,0,0x2cc); local_328[0] = 0x10001; memset(&local_5c,0,0x50); local_5c.ExceptionCode = 0x40000015; local_5c.ExceptionFlags = 1; BVar2 = IsDebuggerPresent(); local_c.ExceptionRecord = &local_5c; local_c.ContextRecord = (PCONTEXT)local_328; SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)0x0); LVar3 = UnhandledExceptionFilter(&local_c); if ((LVar3 == 0) && (BVar2 != 1)) { FUN_1000b0fa(); } return; } // WARNING: Globals starting with '_' overlap smaller symbols at the same address void FUN_1000b0fa(void) { _DAT_100126ac = 0; return; } // WARNING: This is an inlined function // WARNING: Unable to track spacebase fully for stack // WARNING: Variable defined which should be unmapped: param_2 // Library Function - Single Match // __SEH_prolog4 // // Libraries: Visual Studio 2015, Visual Studio 2017, Visual Studio 2019 void __cdecl __SEH_prolog4(undefined4 param_1,int param_2) { int iVar1; undefined4 unaff_EBX; undefined4 unaff_ESI; undefined4 unaff_EDI; undefined4 unaff_retaddr; uint auStack_1c [5]; undefined local_8 [8]; iVar1 = -param_2; *(undefined4 *)((int)auStack_1c + iVar1 + 0x10) = unaff_EBX; *(undefined4 *)((int)auStack_1c + iVar1 + 0xc) = unaff_ESI; *(undefined4 *)((int)auStack_1c + iVar1 + 8) = unaff_EDI; *(uint *)((int)auStack_1c + iVar1 + 4) = DAT_10012024 ^ (uint)¶m_2; *(undefined4 *)((int)auStack_1c + iVar1) = unaff_retaddr; ExceptionList = local_8; return; } void FUN_1000b16b(size_t param_1) { void *local_10; undefined *puStack_c; undefined4 local_8; puStack_c = &LAB_1000bf71; local_10 = ExceptionList; ExceptionList = &local_10; local_8 = 0; FUN_1000a4ab(param_1); FUN_1000b1ab(); return; } undefined * Catch_All_1000b1a3(void) { return &DAT_1000b1a9; } void FUN_1000b1ab(void) { int unaff_EBP; ExceptionList = *(void **)(unaff_EBP + -0xc); return; } // Library Function - Single Match // ___get_entropy // // Libraries: Visual Studio 2017 Release, Visual Studio 2019 Release uint ___get_entropy(void) { DWORD DVar1; uint local_18; uint local_14; _FILETIME local_10; uint local_8; local_10.dwLowDateTime = 0; local_10.dwHighDateTime = 0; GetSystemTimeAsFileTime(&local_10); local_8 = local_10.dwHighDateTime ^ local_10.dwLowDateTime; DVar1 = GetCurrentThreadId(); local_8 = local_8 ^ DVar1; DVar1 = GetCurrentProcessId(); local_8 = local_8 ^ DVar1; QueryPerformanceCounter((LARGE_INTEGER *)&local_18); return local_14 ^ local_18 ^ local_8 ^ (uint)&local_8; } // Library Function - Single Match // ___security_init_cookie // // Libraries: Visual Studio 2017 Release, Visual Studio 2019 Release void __cdecl ___security_init_cookie(void) { if ((DAT_10012024 == 0xbb40e64e) || ((DAT_10012024 & 0xffff0000) == 0)) { DAT_10012024 = ___get_entropy(); if (DAT_10012024 == 0xbb40e64e) { DAT_10012024 = 0xbb40e64f; } else if ((DAT_10012024 & 0xffff0000) == 0) { DAT_10012024 = DAT_10012024 | (DAT_10012024 | 0x4711) << 0x10; } } DAT_10012020 = ~DAT_10012024; return; } void FUN_1000b253(void) { InitializeSListHead((PSLIST_HEADER)&DAT_100126b0); return; } // Library Function - Single Match // void __cdecl __scrt_uninitialize_type_info(void) // // Library: Visual Studio 2017 Release void __cdecl __scrt_uninitialize_type_info(void) { __std_type_info_destroy_list(&DAT_100126b0); return; } undefined * FUN_1000b26b(void) { return &DAT_100126b8; } // Library Function - Single Match // ___scrt_initialize_default_local_stdio_options // // Library: Visual Studio 2017 Release void ___scrt_initialize_default_local_stdio_options(void) { uint *puVar1; puVar1 = (uint *)FUN_10005cd0(); *puVar1 = *puVar1 | 4; puVar1[1] = puVar1[1]; puVar1 = (uint *)FUN_1000b26b(); *puVar1 = *puVar1 | 2; puVar1[1] = puVar1[1]; return; } undefined * FUN_1000b28e(void) { return &DAT_10012700; } // WARNING: Removing unreachable block (ram,0x1000b2a4) // WARNING: Removing unreachable block (ram,0x1000b2a5) // WARNING: Removing unreachable block (ram,0x1000b2ab) // WARNING: Removing unreachable block (ram,0x1000b2b5) // WARNING: Removing unreachable block (ram,0x1000b2bc) // Library Function - Single Match // __RTC_Initialize // // Library: Visual Studio 2017 Release void __RTC_Initialize(void) { return; } // WARNING: Removing unreachable block (ram,0x1000b2d0) // WARNING: Removing unreachable block (ram,0x1000b2d1) // WARNING: Removing unreachable block (ram,0x1000b2d7) // WARNING: Removing unreachable block (ram,0x1000b2e1) // WARNING: Removing unreachable block (ram,0x1000b2e8) // Library Function - Single Match // __RTC_Terminate // // Library: Visual Studio 2017 Release void __RTC_Terminate(void) { return; } // WARNING: This is an inlined function // Library Function - Single Match // __alloca_probe // // Libraries: Visual Studio 2015, Visual Studio 2017, Visual Studio 2019 void __alloca_probe(void) { undefined *in_EAX; undefined4 *puVar1; undefined4 *puVar2; undefined4 unaff_retaddr; undefined auStack_4 [4]; puVar2 = (undefined4 *)((int)&stack0x00000000 - (int)in_EAX & ~-(uint)(&stack0x00000000 < in_EAX)) ; for (puVar1 = (undefined4 *)((uint)auStack_4 & 0xfffff000); puVar2 < puVar1; puVar1 = puVar1 + -0x400) { } *puVar2 = unaff_retaddr; return; } void Unwind_1000b323(void) { // WARNING: Could not recover jumptable at 0x1000b323. Too many branches // WARNING: Treating indirect jump as call __std_terminate(); return; } void _CxxThrowException(void *pExceptionObject,ThrowInfo *pThrowInfo) { // WARNING: Could not recover jumptable at 0x1000b329. Too many branches // WARNING: Subroutine does not return // WARNING: Treating indirect jump as call _CxxThrowException(pExceptionObject,pThrowInfo); return; } void * __cdecl memset(void *_Dst,int _Val,size_t _Size) { void *pvVar1; // WARNING: Could not recover jumptable at 0x1000b32f. Too many branches // WARNING: Treating indirect jump as call pvVar1 = memset(_Dst,_Val,_Size); return pvVar1; } void _except_handler4_common(void) { // WARNING: Could not recover jumptable at 0x1000b335. Too many branches // WARNING: Treating indirect jump as call _except_handler4_common(); return; } void __std_exception_copy(void) { // WARNING: Could not recover jumptable at 0x1000b33b. Too many branches // WARNING: Treating indirect jump as call __std_exception_copy(); return; } void __std_exception_destroy(void) { // WARNING: Could not recover jumptable at 0x1000b341. Too many branches // WARNING: Treating indirect jump as call __std_exception_destroy(); return; } void __std_type_info_destroy_list(void) { // WARNING: Could not recover jumptable at 0x1000b347. Too many branches // WARNING: Treating indirect jump as call __std_type_info_destroy_list(); return; } void __cdecl free(void *_Memory) { // WARNING: Could not recover jumptable at 0x1000b34d. Too many branches // WARNING: Treating indirect jump as call free(_Memory); return; } void * __cdecl malloc(size_t _Size) { void *pvVar1; // WARNING: Could not recover jumptable at 0x1000b353. Too many branches // WARNING: Treating indirect jump as call pvVar1 = malloc(_Size); return pvVar1; } int __cdecl _callnewh(size_t _Size) { int iVar1; // WARNING: Could not recover jumptable at 0x1000b359. Too many branches // WARNING: Treating indirect jump as call iVar1 = _callnewh(_Size); return iVar1; } void _seh_filter_dll(void) { // WARNING: Could not recover jumptable at 0x1000b35f. Too many branches // WARNING: Treating indirect jump as call _seh_filter_dll(); return; } void _configure_narrow_argv(void) { // WARNING: Could not recover jumptable at 0x1000b365. Too many branches // WARNING: Treating indirect jump as call _configure_narrow_argv(); return; } void _initialize_narrow_environment(void) { // WARNING: Could not recover jumptable at 0x1000b36b. Too many branches // WARNING: Treating indirect jump as call _initialize_narrow_environment(); return; } void _initialize_onexit_table(void) { // WARNING: Could not recover jumptable at 0x1000b371. Too many branches // WARNING: Treating indirect jump as call _initialize_onexit_table(); return; } void _register_onexit_function(void) { // WARNING: Could not recover jumptable at 0x1000b377. Too many branches // WARNING: Treating indirect jump as call _register_onexit_function(); return; } void _execute_onexit_table(void) { // WARNING: Could not recover jumptable at 0x1000b37d. Too many branches // WARNING: Treating indirect jump as call _execute_onexit_table(); return; } void _crt_atexit(void) { // WARNING: Could not recover jumptable at 0x1000b383. Too many branches // WARNING: Treating indirect jump as call _crt_atexit(); return; } void _initterm(void) { // WARNING: Could not recover jumptable at 0x1000b38f. Too many branches // WARNING: Treating indirect jump as call _initterm(); return; } void _initterm_e(void) { // WARNING: Could not recover jumptable at 0x1000b395. Too many branches // WARNING: Treating indirect jump as call _initterm_e(); return; } BOOL IsProcessorFeaturePresent(DWORD ProcessorFeature) { BOOL BVar1; // WARNING: Could not recover jumptable at 0x1000b39b. Too many branches // WARNING: Treating indirect jump as call BVar1 = IsProcessorFeaturePresent(ProcessorFeature); return BVar1; } undefined FUN_1000b3a1(void) { return 1; } undefined4 FUN_1000b3a4(void) { return 0; } // Library Function - Single Match // __alldiv // // Library: Visual Studio undefined8 __alldiv(uint param_1,uint param_2,uint param_3,uint param_4) { ulonglong uVar1; longlong lVar2; uint uVar3; int iVar4; uint uVar5; uint uVar6; uint uVar7; uint uVar8; bool bVar10; char cVar11; uint uVar9; cVar11 = (int)param_2 < 0; if ((bool)cVar11) { bVar10 = param_1 != 0; param_1 = -param_1; param_2 = -(uint)bVar10 - param_2; } if ((int)param_4 < 0) { cVar11 = cVar11 + '\x01'; bVar10 = param_3 != 0; param_3 = -param_3; param_4 = -(uint)bVar10 - param_4; } uVar3 = param_1; uVar5 = param_3; uVar6 = param_2; uVar9 = param_4; if (param_4 == 0) { uVar3 = param_2 / param_3; iVar4 = (int)(((ulonglong)param_2 % (ulonglong)param_3 << 0x20 | (ulonglong)param_1) / (ulonglong)param_3); } else { do { uVar8 = uVar9 >> 1; uVar5 = uVar5 >> 1 | (uint)((uVar9 & 1) != 0) << 0x1f; uVar7 = uVar6 >> 1; uVar3 = uVar3 >> 1 | (uint)((uVar6 & 1) != 0) << 0x1f; uVar6 = uVar7; uVar9 = uVar8; } while (uVar8 != 0); uVar1 = CONCAT44(uVar7,uVar3) / (ulonglong)uVar5; iVar4 = (int)uVar1; lVar2 = (ulonglong)param_3 * (uVar1 & 0xffffffff); uVar3 = (uint)((ulonglong)lVar2 >> 0x20); uVar5 = uVar3 + iVar4 * param_4; if (((CARRY4(uVar3,iVar4 * param_4)) || (param_2 < uVar5)) || ((param_2 <= uVar5 && (param_1 < (uint)lVar2)))) { iVar4 = iVar4 + -1; } uVar3 = 0; } if (cVar11 == '\x01') { bVar10 = iVar4 != 0; iVar4 = -iVar4; uVar3 = -(uint)bVar10 - uVar3; } return CONCAT44(uVar3,iVar4); } // Library Function - Single Match // __alldvrm // // Library: Visual Studio undefined8 __alldvrm(uint param_1,uint param_2,uint param_3,uint param_4) { ulonglong uVar1; longlong lVar2; uint uVar3; int iVar4; uint uVar5; uint uVar6; uint uVar7; uint uVar8; bool bVar10; char cVar11; uint uVar9; cVar11 = (int)param_2 < 0; if ((bool)cVar11) { bVar10 = param_1 != 0; param_1 = -param_1; param_2 = -(uint)bVar10 - param_2; } if ((int)param_4 < 0) { cVar11 = cVar11 + '\x01'; bVar10 = param_3 != 0; param_3 = -param_3; param_4 = -(uint)bVar10 - param_4; } uVar3 = param_1; uVar5 = param_3; uVar6 = param_2; uVar9 = param_4; if (param_4 == 0) { uVar3 = param_2 / param_3; iVar4 = (int)(((ulonglong)param_2 % (ulonglong)param_3 << 0x20 | (ulonglong)param_1) / (ulonglong)param_3); } else { do { uVar8 = uVar9 >> 1; uVar5 = uVar5 >> 1 | (uint)((uVar9 & 1) != 0) << 0x1f; uVar7 = uVar6 >> 1; uVar3 = uVar3 >> 1 | (uint)((uVar6 & 1) != 0) << 0x1f; uVar6 = uVar7; uVar9 = uVar8; } while (uVar8 != 0); uVar1 = CONCAT44(uVar7,uVar3) / (ulonglong)uVar5; iVar4 = (int)uVar1; lVar2 = (ulonglong)param_3 * (uVar1 & 0xffffffff); uVar3 = (uint)((ulonglong)lVar2 >> 0x20); uVar5 = uVar3 + iVar4 * param_4; if (((CARRY4(uVar3,iVar4 * param_4)) || (param_2 < uVar5)) || ((param_2 <= uVar5 && (param_1 < (uint)lVar2)))) { iVar4 = iVar4 + -1; } uVar3 = 0; } if (cVar11 == '\x01') { bVar10 = iVar4 != 0; iVar4 = -iVar4; uVar3 = -(uint)bVar10 - uVar3; } return CONCAT44(uVar3,iVar4); } // Library Function - Single Match // __allmul // // Library: Visual Studio ulonglong __allmul(uint param_1,uint param_2,uint param_3,uint param_4) { if ((param_4 | param_2) == 0) { return (ulonglong)param_1 * (ulonglong)param_3; } return (ulonglong)param_1 * (ulonglong)param_3 & 0xffffffff | (ulonglong) ((int)((ulonglong)param_1 * (ulonglong)param_3 >> 0x20) + param_2 * param_3 + param_1 * param_4) << 0x20; } void * __cdecl memchr(void *_Buf,int _Val,size_t _MaxCount) { void *pvVar1; // WARNING: Could not recover jumptable at 0x1000b574. Too many branches // WARNING: Treating indirect jump as call pvVar1 = memchr(_Buf,_Val,_MaxCount); return pvVar1; } void * __cdecl memcpy(void *_Dst,void *_Src,size_t _Size) { void *pvVar1; // WARNING: Could not recover jumptable at 0x1000b57a. Too many branches // WARNING: Treating indirect jump as call pvVar1 = memcpy(_Dst,_Src,_Size); return pvVar1; } void * __cdecl memmove(void *_Dst,void *_Src,size_t _Size) { void *pvVar1; // WARNING: Could not recover jumptable at 0x1000b580. Too many branches // WARNING: Treating indirect jump as call pvVar1 = memmove(_Dst,_Src,_Size); return pvVar1; } void Unwind_1000b590(void) { int unaff_EBP; FUN_1000a4db(*(void **)(unaff_EBP + -0x10)); return; } void Unwind_1000b5c0(void) { int unaff_EBP; FUN_100019f0((void **)(unaff_EBP + 0x20)); return; } void Unwind_1000b5c8(void) { int unaff_EBP; FUN_100019f0((void **)(unaff_EBP + 8)); return; } void Unwind_1000b5d0(void) { int unaff_EBP; FUN_100019b0((int *)(unaff_EBP + -0x100)); return; } void Unwind_1000b5db(void) { int unaff_EBP; FUN_100019f0((void **)(unaff_EBP + -0x28)); return; } void Unwind_1000b5e3(void) { int unaff_EBP; FUN_100019b0((int *)(unaff_EBP + -0x100)); return; } void Unwind_1000b5ee(void) { int unaff_EBP; FUN_100019f0((void **)(unaff_EBP + -0x28)); return; } void Unwind_1000b5f6(void) { int unaff_EBP; FUN_1000a4db(*(void **)(unaff_EBP + -0x3c)); return; } void Unwind_1000b605(void) { int unaff_EBP; FUN_10001110((undefined4 *)(unaff_EBP + -0x3c)); return; } void Unwind_1000b60d(void) { int unaff_EBP; FUN_100019b0((int *)(unaff_EBP + -0x100)); return; } void Unwind_1000b618(void) { int unaff_EBP; FUN_100019f0((void **)(unaff_EBP + -0x28)); return; } void Unwind_1000b620(void) { int unaff_EBP; FUN_100019b0((int *)(unaff_EBP + -0x100)); return; } void Unwind_1000b62b(void) { int unaff_EBP; FUN_100019f0((void **)(unaff_EBP + -0x28)); return; } void Unwind_1000b633(void) { int unaff_EBP; FUN_100019f0((void **)(unaff_EBP + -0x28)); return; } void Unwind_1000b63b(void) { int unaff_EBP; FUN_10001110((undefined4 *)(unaff_EBP + -0x44)); return; } void Unwind_1000b643(void) { int unaff_EBP; FUN_10001110((undefined4 *)(unaff_EBP + -0x34)); return; } void Unwind_1000b64b(void) { int unaff_EBP; FUN_100019b0((int *)(unaff_EBP + -0x100)); return; } void Unwind_1000b656(void) { int unaff_EBP; FUN_100019f0((void **)(unaff_EBP + -0x28)); return; } void Unwind_1000b690(void) { int unaff_EBP; if ((*(uint *)(unaff_EBP + -0x10) & 2) != 0) { *(uint *)(unaff_EBP + -0x10) = *(uint *)(unaff_EBP + -0x10) & 0xfffffffd; FUN_100019f0(*(void ***)(unaff_EBP + -0x14)); return; } return; } void Unwind_1000b6d0(void) { int unaff_EBP; if ((*(uint *)(unaff_EBP + -0x10) & 1) != 0) { *(uint *)(unaff_EBP + -0x10) = *(uint *)(unaff_EBP + -0x10) & 0xfffffffe; // WARNING: Could not recover jumptable at 0x1000b6e6. Too many branches // WARNING: Treating indirect jump as call std::basic_ios<char,struct_std::char_traits<char>_>:: _basic_ios_char_struct_std__char_traits_char___ ((basic_ios_char_struct_std__char_traits_char___ *) (*(int *)(unaff_EBP + -0x14) + 0x68)); return; } return; } void Unwind_1000b6ed(void) { int unaff_EBP; // WARNING: Could not recover jumptable at 0x1000b6f3. Too many branches // WARNING: Treating indirect jump as call std::basic_iostream<char,struct_std::char_traits<char>_>:: _basic_iostream_char_struct_std__char_traits_char___ ((basic_iostream_char_struct_std__char_traits_char___ *) (*(int *)(unaff_EBP + -0x14) + 0x20)); return; } void Unwind_1000b760(void) { int unaff_EBP; FUN_10002380((int **)(unaff_EBP + -0x30)); return; } void Unwind_1000b768(void) { int unaff_EBP; FUN_100021e0((int **)(unaff_EBP + -0x30)); return; } void Unwind_1000b790(void) { int unaff_EBP; if ((*(uint *)(unaff_EBP + -0x10) & 1) != 0) { *(uint *)(unaff_EBP + -0x10) = *(uint *)(unaff_EBP + -0x10) & 0xfffffffe; FUN_100019f0(*(void ***)(unaff_EBP + -0x1c)); return; } return; } void Unwind_1000b7d0(void) { int unaff_EBP; FUN_100019f0((void **)(unaff_EBP + -0x2c)); return; } void Unwind_1000b7d8(void) { int unaff_EBP; FUN_100019f0((void **)(unaff_EBP + -0x2c)); return; } void Unwind_1000b810(void) { int unaff_EBP; FUN_10002380((int **)(unaff_EBP + -0x2c)); return; } void Unwind_1000b818(void) { int unaff_EBP; FUN_100021e0((int **)(unaff_EBP + -0x2c)); return; } void Unwind_1000b840(void) { int unaff_EBP; FUN_100019f0((void **)(unaff_EBP + -0x28)); return; } void Unwind_1000b848(void) { int unaff_EBP; FUN_100019f0((void **)(unaff_EBP + -0x28)); return; } void Unwind_1000b850(void) { int unaff_EBP; FUN_100019f0(*(void ***)(unaff_EBP + -0x30)); return; } void Unwind_1000b880(void) { int unaff_EBP; FUN_100019b0((int *)(unaff_EBP + -0xe0)); return; } void Unwind_1000b88b(void) { int unaff_EBP; FUN_100019f0(*(void ***)(unaff_EBP + -0x2c)); return; } void Unwind_1000b8c0(void) { int unaff_EBP; FUN_100019b0((int *)(unaff_EBP + -0x134)); return; } void Unwind_1000b8cb(void) { int unaff_EBP; FUN_100019f0(*(void ***)(unaff_EBP + -100)); return; } void Unwind_1000b900(void) { int unaff_EBP; if ((*(uint *)(unaff_EBP + -0x14) & 1) != 0) { *(uint *)(unaff_EBP + -0x14) = *(uint *)(unaff_EBP + -0x14) & 0xfffffffe; FUN_100019f0(*(void ***)(unaff_EBP + -0x18)); return; } return; } void Unwind_1000b940(void) { int unaff_EBP; FUN_100019f0((void **)(unaff_EBP + 0x20)); return; } void Unwind_1000b948(void) { int unaff_EBP; FUN_100019f0((void **)(unaff_EBP + 8)); return; } void Unwind_1000b970(void) { int unaff_EBP; FUN_100019b0((int *)(unaff_EBP + -0xc4)); return; } void Unwind_1000b9a0(void) { int unaff_EBP; if ((*(uint *)(unaff_EBP + -0x11c) & 1) != 0) { *(uint *)(unaff_EBP + -0x11c) = *(uint *)(unaff_EBP + -0x11c) & 0xfffffffe; FUN_100019f0(*(void ***)(unaff_EBP + -0x120)); return; } return; } void Unwind_1000b9f0(void) { int unaff_EBP; FUN_100019f0((void **)(unaff_EBP + 0x20)); return; } void Unwind_1000b9f8(void) { int unaff_EBP; FUN_100019f0((void **)(unaff_EBP + 8)); return; } void Unwind_1000ba00(void) { int unaff_EBP; if ((*(uint *)(unaff_EBP + -0x838) & 1) != 0) { *(uint *)(unaff_EBP + -0x838) = *(uint *)(unaff_EBP + -0x838) & 0xfffffffe; FUN_100019f0(*(void ***)(unaff_EBP + -0x840)); return; } return; } void Unwind_1000ba22(void) { int unaff_EBP; FUN_100019f0((void **)(unaff_EBP + -0x828)); return; } void Unwind_1000ba60(void) { int unaff_EBP; FUN_100019f0((void **)(unaff_EBP + 8)); return; } void Unwind_1000ba68(void) { int unaff_EBP; FUN_100019f0(*(void ***)(unaff_EBP + -0x10)); return; } void Unwind_1000ba90(void) { int unaff_EBP; if ((*(uint *)(unaff_EBP + -0x158) & 1) != 0) { *(uint *)(unaff_EBP + -0x158) = *(uint *)(unaff_EBP + -0x158) & 0xfffffffe; FUN_100019f0(*(void ***)(unaff_EBP + -0x15c)); return; } return; } void Unwind_1000bae0(void) { int unaff_EBP; FUN_100019f0((void **)(unaff_EBP + -0x40)); return; } void Unwind_1000bae8(void) { int unaff_EBP; FUN_100019f0((void **)(unaff_EBP + -0x28)); return; } void Unwind_1000bb20(void) { int unaff_EBP; if ((*(uint *)(unaff_EBP + -0x38) & 1) != 0) { *(uint *)(unaff_EBP + -0x38) = *(uint *)(unaff_EBP + -0x38) & 0xfffffffe; FUN_100059c0(*(int *)(unaff_EBP + -0x3c)); return; } return; } void Unwind_1000bb60(void) { int unaff_EBP; FUN_100059c0(unaff_EBP + -0x90); return; } void Unwind_1000bb6b(void) { int unaff_EBP; FUN_100019f0((void **)(*(int *)(unaff_EBP + -0x98) + 4)); return; } void Unwind_1000bb79(void) { int unaff_EBP; FUN_100019f0((void **)(*(int *)(unaff_EBP + -0x98) + 0x1c)); return; } void Unwind_1000bb87(void) { int unaff_EBP; FUN_100019f0((void **)(*(int *)(unaff_EBP + -0x98) + 0x34)); return; } void Unwind_1000bb95(void) { int unaff_EBP; FUN_100019f0((void **)(*(int *)(unaff_EBP + -0x98) + 0x4c)); return; } void Unwind_1000bbd0(void) { int unaff_EBP; FUN_100019f0((void **)(unaff_EBP + -0x2c)); return; } void Unwind_1000bbd8(void) { int unaff_EBP; FUN_10007be0((void **)(unaff_EBP + -0x68)); return; } void Unwind_1000bc10(void) { int unaff_EBP; FUN_10007b80((void **)(unaff_EBP + -0xac)); return; } void Unwind_1000bc1b(void) { int unaff_EBP; FUN_100019f0(*(void ***)(unaff_EBP + -0xb0)); return; } void Unwind_1000bc26(void) { int unaff_EBP; FUN_100019f0((void **)(unaff_EBP + -0x8c)); return; } void Unwind_1000bc31(void) { int unaff_EBP; FUN_100019f0((void **)(unaff_EBP + -0x74)); return; } void Unwind_1000bc39(void) { int unaff_EBP; FUN_100019f0((void **)(unaff_EBP + -0x44)); return; } void Unwind_1000bc41(void) { int unaff_EBP; FUN_100019f0((void **)(unaff_EBP + -0x5c)); return; } void Unwind_1000bc80(void) { int unaff_EBP; FUN_100019f0(*(void ***)(unaff_EBP + -0x4c)); return; } void Unwind_1000bc88(void) { int unaff_EBP; FUN_100019f0((void **)(unaff_EBP + -0x44)); return; } void Unwind_1000bc90(void) { int unaff_EBP; FUN_100019b0((int *)(unaff_EBP + -0x104)); return; } void Unwind_1000bc9b(void) { int unaff_EBP; FUN_100019f0(*(void ***)(unaff_EBP + -0x50)); return; } void Unwind_1000bca3(void) { int unaff_EBP; FUN_100019f0((void **)(unaff_EBP + -0x28)); return; } void Unwind_1000bce0(void) { int unaff_EBP; FUN_100019f0((void **)(*(int *)(unaff_EBP + -0x10) + 4)); return; } void Unwind_1000bceb(void) { int unaff_EBP; FUN_100019f0((void **)(*(int *)(unaff_EBP + -0x10) + 0x1c)); return; } void Unwind_1000bcf6(void) { int unaff_EBP; FUN_100019f0((void **)(*(int *)(unaff_EBP + -0x10) + 0x34)); return; } void Unwind_1000bd01(void) { int unaff_EBP; FUN_100019f0((void **)(*(int *)(unaff_EBP + -0x10) + 0x4c)); return; } void Unwind_1000bd30(void) { int unaff_EBP; FUN_10008410((int *)(unaff_EBP + -0x38)); return; } void Unwind_1000bd38(void) { int unaff_EBP; FUN_100019f0((void **)(*(int *)(unaff_EBP + -0x2c) + 4)); return; } void Unwind_1000bd43(void) { int unaff_EBP; FUN_100019f0((void **)(*(int *)(unaff_EBP + -0x2c) + 0x1c)); return; } void Unwind_1000bd4e(void) { int unaff_EBP; FUN_100019f0((void **)(*(int *)(unaff_EBP + -0x2c) + 0x34)); return; } void Unwind_1000bd59(void) { int unaff_EBP; FUN_100019f0((void **)(*(int *)(unaff_EBP + -0x2c) + 0x4c)); return; } void Unwind_1000bd80(void) { int unaff_EBP; FUN_10008410((int *)(unaff_EBP + -0x18)); return; } void Unwind_1000bd88(void) { int unaff_EBP; FUN_100019f0((void **)(*(int *)(unaff_EBP + 0x10) + 4)); return; } void Unwind_1000bd93(void) { int unaff_EBP; FUN_100019f0((void **)(*(int *)(unaff_EBP + 0x10) + 0x1c)); return; } void Unwind_1000bd9e(void) { int unaff_EBP; FUN_100019f0((void **)(*(int *)(unaff_EBP + 0x10) + 0x34)); return; } void Unwind_1000bda9(void) { int unaff_EBP; FUN_100019f0((void **)(*(int *)(unaff_EBP + 0x10) + 0x4c)); return; } void Unwind_1000bdd0(void) { int unaff_EBP; FUN_100019f0(*(void ***)(unaff_EBP + -0x10)); return; } void Unwind_1000be00(void) { int unaff_EBP; FUN_100019f0((void **)(unaff_EBP + -0x28)); return; } void Unwind_1000be30(void) { int unaff_EBP; if ((*(uint *)(unaff_EBP + -0x48) & 1) != 0) { *(uint *)(unaff_EBP + -0x48) = *(uint *)(unaff_EBP + -0x48) & 0xfffffffe; FUN_10008a90((void **)(unaff_EBP + -0x40)); return; } return; } void Unwind_1000be70(void) { int unaff_EBP; FUN_100019f0(*(void ***)(unaff_EBP + -0x1148)); return; } void Unwind_1000be7b(void) { int unaff_EBP; FUN_100019f0(*(void ***)(unaff_EBP + -0x1148)); return; } void Unwind_1000be86(void) { int unaff_EBP; FUN_100019f0(*(void ***)(unaff_EBP + -0x1148)); return; } void Unwind_1000be91(void) { int unaff_EBP; FUN_100019f0(*(void ***)(unaff_EBP + -0x1148)); return; } void Unwind_1000be9c(void) { int unaff_EBP; FUN_100019f0(*(void ***)(unaff_EBP + -0x1148)); return; } void Unwind_1000bed0(void) { int unaff_EBP; FUN_100019b0((int *)(unaff_EBP + -0x1e4)); return; } void Unwind_1000bedb(void) { int unaff_EBP; FUN_100019f0(*(void ***)(unaff_EBP + -0x130)); return; } void Unwind_1000bee6(void) { int unaff_EBP; FUN_100019f0(*(void ***)(unaff_EBP + -0x134)); return; } void Unwind_1000bef1(void) { int unaff_EBP; FUN_100019f0(*(void ***)(unaff_EBP + -0x134)); return; } void Unwind_1000bf30(void) { int unaff_EBP; FUN_100019b0((int *)(unaff_EBP + -0xcc)); return; } void Unwind_1000bf3b(void) { int unaff_EBP; FUN_100019f0(*(void ***)(unaff_EBP + -0x18)); return; } void Unwind_1000bf43(void) { int unaff_EBP; FUN_100019f0(*(void ***)(unaff_EBP + -0x1c)); return; } void Unwind_1000bf4b(void) { int unaff_EBP; FUN_100019f0(*(void ***)(unaff_EBP + -0x1c)); return; }
Editor is loading...