InitSystemFunctions
2016-07-06 21:45
387 查看
InitSystemFunctions
//----- (000000018002382C) ---------------------------------------------------- signed __int64 __fastcall InitSystemFunctions(int a1) { int v1; // eax@5 HMODULE v2; // rax@8 CStandardSetupLogFilter *v3; // rax@9 HMODULE v4; // rax@14 CStandardSetupLogFilter *v5; // rax@16 CHAR LibFileName; // [sp+20h] [bp-128h]@13 char Dst; // [sp+21h] [bp-127h]@13 if ( !dword_18003B2C8 ) { dword_18003B2C8 = 1; g_DefaultACL = a1; if ( dword_18003A4C8 ) { dword_18003A4C8 = 0; if ( GetVersion() < 0x80000000 ) { dword_18003B2CC = 1; goto LABEL_8; } v1 = 0; dword_18003B2CC = 0; } else { v1 = dword_18003B2CC; } if ( !v1 ) { g_CreateMutex = (CStandardSetupLogFilter *)CreateMutexWin32A; g_CreateSharedMemory = (CStandardSetupLogFilter *)CreateSharedMemoryWin32A; g_CreateSharedFile = (CStandardSetupLogFilter *)CreateSharedFileWin32A; g_GetModuleFileNameA = (CStandardSetupLogFilter *)GetModuleFileNameAWin32A; g_GetModuleFileNameW = (CStandardSetupLogFilter *)GetModuleFileNameWWin32A; g_CreateFile = (CStandardSetupLogFilter *)CreateFileWin32A; g_CreateFileMapping = (__int64)CreateFileMappingWin32A; g_DeleteFile = (CStandardSetupLogFilter *)DeleteFileWin32A; v3 = (CStandardSetupLogFilter *)CConsistentFileMapping::Compact; goto LABEL_12; } LABEL_8: g_CreateMutex = (CStandardSetupLogFilter *)CreateMutexWin32W; g_CreateSharedMemory = (CStandardSetupLogFilter *)CreateSharedMemoryWin32W; g_CreateSharedFile = (CStandardSetupLogFilter *)CreateSharedFileWin32W; g_GetModuleFileNameA = (CStandardSetupLogFilter *)GetModuleFileNameAWin32A; g_GetModuleFileNameW = (CStandardSetupLogFilter *)GetModuleFileNameWWin32W; g_CreateFile = (CStandardSetupLogFilter *)CreateFileWin32W; g_CreateFileMapping = (__int64)CreateFileMappingWin32W; g_DeleteFile = (CStandardSetupLogFilter *)DeleteFileWin32W; g_AddVectoredExceptionHandler = (CStandardSetupLogFilter *)CConsistentFileMapping::Compact; v2 = GetModuleHandleW(L"kernel32"); if ( !v2 || (v3 = (CStandardSetupLogFilter *)GetProcAddress(v2, "AddVectoredExceptionHandler")) == 0i64 ) { LABEL_13: LibFileName = 0; g_ReleaseMutex = (CStandardSetupLogFilter *)ReleaseMutexWin32; g_WaitForSingleObject = (CStandardSetupLogFilter *)WaitForSingleObjectWin32; g_CloseHandle = (CStandardSetupLogFilter *)CloseHandleWin32; g_MapSharedMemory = (CStandardSetupLogFilter *)MapSharedMemoryWin32; g_UnMapSharedMemory = (CStandardSetupLogFilter *)UnMapSharedMemoryWin32; g_SetFilePointer = (CStandardSetupLogFilter *)SetFilePointerWin32; g_WriteFile = (CStandardSetupLogFilter *)WriteFileWin32; g_GetProcessorsNumber = (__int64)GetProcessorsNumberWin32; memset_0(&Dst, 0, 0x103ui64); if ( ExpandEnvironmentStringsA("%windir%\\system32\\dbghelp.dll", &LibFileName, 0x104u) ) { v4 = LoadLibraryExA(&LibFileName, 0i64, 0); if ( !v4 ) { g_MiniDumpWriteDump = (CStandardSetupLogFilter *)CConsistentFileMapping::Compact; FreeLibrary(0i64); return 1i64; } v5 = (CStandardSetupLogFilter *)GetProcAddress(v4, "MiniDumpWriteDump"); } else { v5 = (CStandardSetupLogFilter *)CConsistentFileMapping::Compact; } g_MiniDumpWriteDump = v5; return 1i64; } LABEL_12: g_AddVectoredExceptionHandler = v3; goto LABEL_13; } return 1i64; } // 18003A4C8: using guessed type int dword_18003A4C8; // 18003B2A0: using guessed type __int64 g_CreateFileMapping; // 18003B2B0: using guessed type __int64 g_GetProcessorsNumber; // 18003B2C8: using guessed type int dword_18003B2C8; // 18003B2CC: using guessed type int dword_18003B2CC; // 18003B2D0: using guessed type int g_DefaultACL;
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 如何写好 C main 函数
- 部分喷墨机初始化方法
- Lua和C语言的交互详解
- C#中数组初始化与数组元素复制的方法
- ORACLE 系统函数大全SQLSERVER系统函数的异同
- C#中结构(struct)的部分初始化和完全初始化实例分析
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- C语言编程中统计输入的行数以及单词个数的方法
- C语言自动生成enum值和名字映射代码
- C语言练习题:自由落体的小球简单实例
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中进制知识汇总