您的位置:首页 > 编程语言 > C语言/C++

写壳手记(二)

2016-08-07 17:01 246 查看
导航:

写壳手记(一)

写壳手记(二)

这部分重点讨论编写解壳部分。

序言

有几个关键点:

因为解壳程序是硬编码到壳中的,而且一旦加壳后的程序一加载,就直接从这个解壳程序处执行,这是因为入口点被更改到这里了。

解壳程序中将会用到很多很多的win32 api 比如CreateProcess 以及C运行库中的函数比如 malloc free等,这时候如果你直接调用这些函数,最后扣出硬编码,放到壳里,它能执行成功吗?答案是,这样执行成功的机率几乎为0. 因为你在编写解壳程序时,如果直接使用这些函数,最后生成的指令里肯定包含了一些全局数据,然而全局数据并不在你的硬编码中,当你复制你的硬编码到壳里后,当壳运行的时候,如果再按照硬编码中的指令去寻找全局数据,肯定是找不到的,你想要的全局数据也许并不在壳里。

解决这个问题的方法就是把硬编码中所有的函数地址动态获取到!并且不要使用任何的全局数据。

我用的是VS2013的编译器,如果你不做任何设置,即使你不调用全局函数,编译可能也会暗箱操作,给你加一些东西。主要是就去掉编译器的安全检查的编译选项,我就改了基本运行时检查和安全检查这两个选项。



动态获取函数地址

动态获取函数地址,肯定是要用到函数指针的。

首先定义好我们要用到的函数指针

代码:

typedef FARPROC (WINAPI *GETPROCADDRESS)(_In_ HMODULE hModule, _In_ LPCSTR  lpProcName);
typedef HMODULE (WINAPI *LOADLIBRARY)(_In_ LPCSTR lpFileName);
typedef HMODULE (WINAPI *GETMODULEHANDLE)(_In_opt_ LPCSTR lpModuleName);
typedef BOOL (WINAPI *SETTHREADCONTEXT)(_In_ HANDLE hThread, _In_ const CONTEXT *lpContext);
typedef DWORD (WINAPI *GETMODULEFILENAME)(_In_opt_ HMODULE hModule, _Out_ LPSTR lpFilename, _In_ DWORD nSize);
typedef BOOL (WINAPI *GETTHREADCONTEXT)(_In_ HANDLE hThread, _Inout_ LPCONTEXT lpContext);
typedef DWORD (WINAPI *RESUMETHREAD)(_In_ HANDLE hThread);
typedef VOID (WINAPI *EXITPROCESS)(_In_ UINT uExitCode);

typedef BOOL(WINAPI *CREATEPROCESS)(
_In_opt_    LPCSTR               lpApplicationName,
_Inout_opt_ LPSTR                lpCommandLine,
_In_opt_    LPSECURITY_ATTRIBUTES lpProcessAttributes,
_In_opt_    LPSECURITY_ATTRIBUTES lpThreadAttributes,
_In_        BOOL                  bInheritHandles,
_In_        DWORD                 dwCreationFlags,
_In_opt_    LPVOID                lpEnvironment,
_In_opt_    LPCSTR               lpCurrentDirectory,
_In_        LPSTARTUPINFO         lpStartupInfo,
_Out_       LPPROCESS_INFORMATION lpProcessInformation
);
typedef BOOL (WINAPI *READPROCESSMEMORY)(
_In_  HANDLE  hProcess,
_In_  LPCVOID lpBaseAddress,
_Out_ LPVOID  lpBuffer,
_In_  SIZE_T  nSize,
_Out_ SIZE_T  *lpNumberOfBytesRead
);
typedef LPVOID (WINAPI *VIRTUALALLOCEX)(
_In_     HANDLE hProcess,
_In_opt_ LPVOID lpAddress,
_In_     SIZE_T dwSize,
_In_     DWORD  flAllocationType,
_In_     DWORD  flProtect
);
typedef BOOL (WINAPI *WRITEPROCESSMEMORY)(
_In_  HANDLE  hProcess,
_In_  LPVOID  lpBaseAddress,
_In_  LPCVOID lpBuffer,
_In_  SIZE_T  nSize,
_Out_ SIZE_T  *lpNumberOfBytesWritten
);
typedef BOOL (WINAPI *TERMINATEPROCESS)(HANDLE hProcess, UINT uExitCode);

typedef NTSTATUS (WINAPI *ZWUNMAPVIEWOFSECTION)(_In_ HANDLE ProcessHandle, _In_opt_ PVOID BaseAddress);
typedef void* (_cdecl *MEMSET)(void *dest, int c, size_t count);
typedef void* (_cdecl *MEMCPY)(void *dest, const void *src, size_t count);
typedef void* (_cdecl *MALLOC)(size_t size);
typedef void (_cdecl *FREE)(void *memblock);


由于动态函数都是从kernel32.dll和ntdll.dll这两个模块中获取到的。硬编码第一步是要找到kernel32.dll模块或ntdll.dll的在内存中的位置。

当一个程序加载运行后,会有一个ldr链的数据结构(参考笔记0003和0002),它存储了这个程序里所有用到的模块的信息。幸运的是,这个ldr链的数据存储在PEB这个数据结构的0x0c这个偏移的地方。那么问题来了,PEB这个结构又在内存哪里???

这里直接说答案了,在fs:[0x30]这个位置就是PEB数据的位置,,为什么这样,大概要去问比尔盖茨了吧

拿到PEB后,可以根据ldr链(这是一个双向链表)遍历到kernel32模块的信息,kernel32通常排在第三个:

HINSTANCE hKernel32 = NULL;
__asm
{
push eax
mov eax, fs:[0x30]      // PEB
mov eax, [eax + 0x0c]       // LDR
mov eax, [eax + 0x0c]       // 本进程模块, LDA_DATA_TABLE_ENTRY 结构
mov eax, [eax]          // ntdll 模块
mov eax, [eax]          // kernel32 模块
mov eax, [eax + 0x18]       // dllBase
mov hKernel32, eax
pop eax
}


查找GetProcAddress函数地址

有了kernel32后,一切就变得简单了,为了找到这个模块里所有要用到的函数地址,第一种办法就是遍历这个模块的导出表,,,如果每个函数都去这样遍历,会累死人。比如投机的方法就是先拿到GetProcAddress这个函数的地址。接下来的事情就让GetProcAddress这个函数去干吧。

不过GetProcAddress这个函数你还是得通过遍历导出表来查找,,因为这个时候你手上除了只有kernel32这个大咖你还没有任何资本,一切只能从0开始。遍历导出表的代码是下面这个样子:

char szGetProcAddress[] = { 'G', 'e', 't', 'P', 'r', 'o', 'c', 'A', 'd', 'd', 'r', 'e', 's', 's', '\0' };
GETPROCADDRESS GetProcAddress = NULL;
// 在 kernel32中寻找 GetProcAddress 函数
IMAGE_DOS_HEADER* pDosHeader = (IMAGE_DOS_HEADER*)hKernel32;
IMAGE_NT_HEADERS* pNtHeader = (IMAGE_NT_HEADERS*)((DWORD)hKernel32 + pDosHeader->e_lfanew);
IMAGE_EXPORT_DIRECTORY* pExportDirectory = (IMAGE_EXPORT_DIRECTORY*)((DWORD)hKernel32 + pNtHeader->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress);
short* functionOrdinals = (short*)((DWORD)hKernel32 + pExportDirectory->AddressOfNameOrdinals);
int* adddressOfNames = (int*)((DWORD)hKernel32 + pExportDirectory->AddressOfNames);
int* addressOfFunctions = (int*)((DWORD)hKernel32 + pExportDirectory->AddressOfFunctions);
for (int i = 0; i < pExportDirectory->NumberOfNames; ++i)
{
// 第 i 个函数名地址
char* name = (char*)((DWORD)hKernel32 + adddressOfNames[i]);
char* left = name;
char* right = szGetProcAddress;

bool res = true;
while (*left || *right)
{
if (*left != *right)
{
res = false;
break;
}
++left;
++right;
}
if (res)
{
GetProcAddress = (GETPROCADDRESS)((DWORD)hKernel32 + addressOfFunctions[functionOrdinals[i]]);
break;
}
}


看看上面的代码,有几个细节要非常注意,初始化函数名的时候一定不要用字符串,只能一个一个初始化,因为字符串会存储在一个叫静态数据区的地方,然后再从静态数据区复制你的每个字符到栈中。

看这里多可怜,我们连strcmp这样简单的函数都不能使用。只能自己一个一个去比较了。

查找所有即将要用到的函数

有了GetProcAddress这个函数后,一切事情会变得简单了,这好像我们找到了一个帮手,接下来的找函数的事情就让这个帮手去干嘛吧!

char szLoadLibrary[] = { 'L', 'o', 'a', 'd', 'L', 'i', 'b', 'r', 'a', 'r', 'y', 'A', '\0' };
char szGetModuleHandle[] = { 'G', 'e', 't', 'M', 'o', 'd', 'u', 'l', 'e', 'H', 'a', 'n', 'd', 'l', 'e', 'A', '\0' };
char szCreateProcess[] = { 'C', 'r', 'e', 'a', 't', 'e', 'P', 'r', 'o', 'c', 'e', 's', 's', 'A', '\0' };
char szGetModuleFileName[] = { 'G', 'e', 't', 'M', 'o', 'd', 'u', 'l', 'e', 'F', 'i', 'l', 'e', 'N', 'a', 'm', 'e', 'A', '\0' };
char szGetThreadContext[] = { 'G', 'e', 't', 'T', 'h', 'r', 'e', 'a', 'd', 'C', 'o', 'n', 't', 'e', 'x', 't', '\0'};
char szReadProcessMemory[] = { 'R', 'e', 'a', 'd', 'P', 'r', 'o', 'c', 'e', 's', 's', 'M', 'e', 'm', 'o', 'r', 'y', '\0' };
char szZwUnmapViewOfSection[] = { 'Z', 'w', 'U', 'n', 'm', 'a', 'p', 'V', 'i', 'e', 'w', 'O', 'f', 'S', 'e', 'c', 't', 'i', 'o', 'n', '\0' };
char szNtDll[] = { 'n', 't', 'd', 'l', 'l', '.', 'd', 'l', 'l', '\0' };
char szMemcpy[] = { 'm', 'e', 'm', 'c', 'p', 'y', '\0' };
char szMemset[] = { 'm', 'e', 'm', 's', 'e', 't', '\0' };
char szMSVCRT[] = { 'm', 's', 'v', 'c', 'r', 't', '.', 'd', 'l', 'l', '\0' };
char szMalloc[] = { 'm', 'a', 'l', 'l', 'o', 'c', '\0' };
char szFree[] = { 'f', 'r', 'e', 'e', '\0' };
char szVirtualAllocEx[] = { 'V', 'i', 'r', 't', 'u', 'a', 'l', 'A', 'l', 'l', 'o', 'c', 'E', 'x', '\0' };
char szWriteProcessMemory[] = { 'W', 'r', 'i', 't', 'e', 'P', 'r', 'o', 'c', 'e', 's', 's', 'M', 'e', 'm', 'o', 'r', 'y', '\0' };
char szSetThreadContext[] = { 'S', 'e', 't', 'T', 'h', 'r', 'e', 'a', 'd', 'C', 'o', 'n', 't', 'e', 'x', 't', '\0' };
char szResumeThread[] = { 'R', 'e', 's', 'u', 'm', 'e', 'T', 'h', 'r', 'e', 'a', 'd', '\0' };
char szTerminateProcess[] = { 'T', 'e', 'r', 'm', 'i', 'n', 'a', 't', 'e', 'P', 'r', 'o', 'c', 'e', 's', 's', '\0' };
char szExitProcess[] = { 'E', 'x', 'i', 't', 'P', 'r', 'o', 'c', 'e', 's', 's', '\0' };

LOADLIBRARY LoadLibraryA = (LOADLIBRARY)GetProcAddress(hKernel32, szLoadLibrary);
GETMODULEHANDLE GetModuleHandleA = (GETMODULEHANDLE)GetProcAddress(hKernel32, szGetModuleHandle);
CREATEPROCESS CreateProcessA = (CREATEPROCESS)GetProcAddress(hKernel32, szCreateProcess);
GETMODULEFILENAME GetModuleFileNameA = (GETMODULEFILENAME)GetProcAddress(hKernel32, szGetModuleFileName);
GETTHREADCONTEXT GetThreadContext = (GETTHREADCONTEXT)GetProcAddress(hKernel32, szGetThreadContext);
READPROCESSMEMORY ReadProcessMemory = (READPROCESSMEMORY)GetProcAddress(hKernel32, szReadProcessMemory);
WRITEPROCESSMEMORY WriteProcessMemory = (WRITEPROCESSMEMORY)GetProcAddress(hKernel32, szWriteProcessMemory);
VIRTUALALLOCEX VirtualAllocEx = (VIRTUALALLOCEX)GetProcAddress(hKernel32, szVirtualAllocEx);
SETTHREADCONTEXT SetThreadContext = (SETTHREADCONTEXT)GetProcAddress(hKernel32, szSetThreadContext);
RESUMETHREAD ResumeThread = (RESUMETHREAD)GetProcAddress(hKernel32, szResumeThread);
TerminateProcess = (TERMINATEPROCESS)GetProcAddress(hKernel32, szTerminateProcess);
EXITPROCESS ExitProcess = (EXITPROCESS)GetProcAddress(hKernel32, szExitProcess);


还有像memset、memcpy这样的函数在模块ntdll.dll里,貌似msvcrt.dll也有,具体你们自己验证吧,我们可以利用GetModuleHandle去找到这个模块

malloc和free在msvcrt.dll里,所以也要找到msvcrt.dll这个模块,但是这个模块不一定被加载,我们通过Loadliarbry把它加载进来。

HMODULE hNtDll = GetModuleHandleA(szNtDll);
ZWUNMAPVIEWOFSECTION ZwUnmapViewOfSection = (ZWUNMAPVIEWOFSECTION)GetProcAddress(hNtDll, szZwUnmapViewOfSection);
MEMCPY memcpy = (MEMCPY)GetProcAddress(hNtDll, szMemcpy);
MEMSET memset = (MEMSET)GetProcAddress(hNtDll, szMemset);

HMODULE hMSVCRT = LoadLibraryA(szMSVCRT);
MALLOC malloc = (MALLOC)GetProcAddress(hMSVCRT, szMalloc);
FREE free = (FREE)GetProcAddress(hMSVCRT, szFree);


这里一切准备就绪了,可以开始干大事了

准备解壳

获取到本进程的模块地址,通过PE分析技术找到最后一个节的源码数据,就是object,如果这个被加密了,那你还得解密。因为我之前是没有加密的,所以也就不用解密了。拿到object后,需要展开成镜像。

HANDLE hModule = GetModuleHandleA(NULL);
pDosHeader = (IMAGE_DOS_HEADER*)hModule;
pNtHeader = (IMAGE_NT_HEADERS*)((DWORD)hModule + pDosHeader->e_lfanew);
IMAGE_SECTION_HEADER* pSectionHeader = (IMAGE_SECTION_HEADER*)((DWORD)&pNtHeader->OptionalHeader + pNtHeader->FileHeader.SizeOfOptionalHeader);
pSectionHeader = pSectionHeader + pNtHeader->FileHeader.NumberOfSections - 1;

// 获取程序数据
char* src = (char*)((DWORD)hModule + pSectionHeader->VirtualAddress + 0x2000);
int srcSize = pSectionHeader->SizeOfRawData - 0x2000;

// 拉伸
pDosHeader = (IMAGE_DOS_HEADER*)src;
pNtHeader = (IMAGE_NT_HEADERS*)((DWORD)src + pDosHeader->e_lfanew);
IMAGE_OPTIONAL_HEADER32* pOptionalHeader = &pNtHeader->OptionalHeader;
pSectionHeader = (IMAGE_SECTION_HEADER*)((DWORD)pOptionalHeader + pNtHeader->FileHeader.SizeOfOptionalHeader);
int length = pSectionHeader[pNtHeader->FileHeader.NumberOfSections - 1].VirtualAddress + pSectionHeader[pNtHeader->FileHeader.NumberOfSections - 1].SizeOfRawData;

//有时候会出现length比Image还要大
length = length > pOptionalHeader->SizeOfImage ? length : pOptionalHeader->SizeOfImage;

char* imageBuffer = (char*)malloc(length);
memset(imageBuffer, 0, length);
memcpy(imageBuffer, src, pOptionalHeader->SizeOfHeaders);
for (int i = 0; i < pNtHeader->FileHeader.NumberOfSections; ++i)
{
memcpy(imageBuffer + pSectionHeader->VirtualAddress, src + pSectionHeader->PointerToRawData, pSectionHeader->SizeOfRawData);
++pSectionHeader;
}


创建傀儡进程

接下来就是创建傀儡进程(随便找一个程序就行,不过我这里就选择了自己),记得以挂起方式创建,这样创建出一进程只是一个4GB的空壳,低2G里除了文件镜像什么也没有。高2G肯定是有东西的。。。

创建完成后,拿到这个进程的ImageBase后,卸载文件镜像,就是把这个进程本身的镜像给赶出去。。。

接下来就把你的object复制进去,,,

char szModuleName[MAX_PATH];
GetModuleFileNameA(NULL, szModuleName, MAX_PATH);

STARTUPINFO si;
memset(&si, 0, sizeof(si));
PROCESS_INFORMATION pi;
memset(&pi, 0, sizeof(pi));
si.cb = sizeof(si);
CreateProcessA(NULL, szModuleName, NULL, NULL, FALSE, CREATE_SUSPENDED, NULL, NULL, &si, &pi);
hProcess = pi.hProcess;
CONTEXT context;
context.ContextFlags = CONTEXT_FULL;
GetThreadContext(pi.hThread, &context);
DWORD dwEntryPoint = context.Eax;
DWORD baseAddress = context.Ebx + 8;
DWORD shellImageBase = 0;
ReadProcessMemory(pi.hProcess, (LPVOID)baseAddress, &shellImageBase, 4, NULL);
ZwUnmapViewOfSection(pi.hProcess, (PVOID)shellImageBase);


首先你得重新在这个空壳进程里申请空间,可以利用VirtualAllocEx,注意要从你的object的imageBase的地方开始申请,如果这个位置你申请不到的话,会有点小麻烦。你需要修复重定位表。

LPVOID buffer = VirtualAllocEx(pi.hProcess, (LPVOID)pOptionalHeader->ImageBase, pOptionalHeader->SizeOfImage, MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE);
if (!buffer)
{
VirtualAllocEx(pi.hProcess, NULL, pOptionalHeader->SizeOfImage, MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE);
pDosHeader = (IMAGE_DOS_HEADER*)imageBuffer;
pNtHeader = (IMAGE_NT_HEADERS*)((DWORD)imageBuffer + pDosHeader->e_lfanew);
IMAGE_OPTIONAL_HEADER32* pOptionalHeader = &pNtHeader->OptionalHeader;
IMAGE_BASE_RELOCATION* pBaseRelocation = (IMAGE_BASE_RELOCATION*)((DWORD)imageBuffer + pOptionalHeader->DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].VirtualAddress);

while (pBaseRelocation->SizeOfBlock || pBaseRelocation->VirtualAddress)
{
short* pTable = (short*)((int)pBaseRelocation + 8);
int len = (pBaseRelocation->SizeOfBlock - 8) / 2;
for (int i = 0; i < len; ++i)
{
DWORD RVA = pBaseRelocation->VirtualAddress + (pTable[i] & 0x0FFF);
if (((pTable[i] & 0xF000) >> 12) == 3)
{
*(DWORD*)(RVA + (DWORD)imageBuffer) += ((DWORD)buffer - pOptionalHeader->ImageBase);
}
}
pBaseRelocation = (IMAGE_BASE_RELOCATION*)((DWORD)pBaseRelocation + pBaseRelocation->SizeOfBlock);
}
pOptionalHeader->ImageBase = (DWORD)buffer;
}


写入object

空间申请完毕了,接下来要做两件事情:

第一,把你的object复制进去。

第二,你得在这个进程空壳里写入你新的imagebase

WriteProcessMemory(pi.hProcess, buffer, imageBuffer, pOptionalHeader->SizeOfImage, NULL);
WriteProcessMemory(pi.hProcess, (LPVOID)(context.Ebx + 8), &buffer, 4, NULL);


恢复执行

一切准备就绪,我们要把这个新的进程的线程上下文中的EIP改成你的object的入口点,然后恢复执行。

context.Eax = pOptionalHeader->ImageBase + pOptionalHeader->AddressOfEntryPoint;
SetThreadContext(pi.hThread, &context);
ResumeThread(pi.hThread);
free(imageBuffer);
ExitProcess(0);


尾声

到这里就结束了,下面就是扣出上面这段程序的硬编码,可以从汇编代码里查看到,复制出来就行了。我复制出来是下面这个样子

太多了,只复制了一部分。。。



效果图:



这是壳:



这是目标程序,我就选的自己。。。



加完壳后:



运行是这样的:



发现按钮什么的竟然变样子了,,,具体啥原因暂时还不清楚。但是我把壳换成别的就没事。

这里是完整的硬编码:

0x55, 0x8b, 0xec, 0x6a, 0xff, 0x68, 0xa0, 0x67, 0x41, 0x00, 0x64, 0xa1, 0x00, 0x00, 0x00, 0x00, 0x50, 0x64, 0x89, 0x25, 0x00, 0x00, 0x00, 0x00, 0x51, 0x81, 0xec, 0x70, 0x06, 0x00, 0x00, 0x53, 0x56, 0x57, 0x89, 0x65, 0xf0, 0xc7, 0x45, 0xec, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x45,
0xe8, 0x00, 0x00, 0x00, 0x00, 0xc7, 0x45, 0xe4, 0x00, 0x00, 0x00, 0x00, 0xc7, 0x45, 0xfc, 0x00, 0x00, 0x00, 0x00, 0xc7, 0x45, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x50, 0x64, 0xa1, 0x30, 0x00, 0x00, 0x00, 0x8b, 0x40, 0x0c, 0x8b, 0x40, 0x0c, 0x8b, 0x00, 0x8b, 0x00, 0x8b, 0x40, 0x18,
0x89, 0x45, 0xe0, 0x58, 0xc6, 0x45, 0xd0, 0x47, 0xc6, 0x45, 0xd1, 0x65, 0xc6, 0x45, 0xd2, 0x74, 0xc6, 0x45, 0xd3, 0x50, 0xc6, 0x45, 0xd4, 0x72, 0xc6, 0x45, 0xd5, 0x6f, 0xc6, 0x45, 0xd6, 0x63, 0xc6, 0x45, 0xd7, 0x41, 0xc6, 0x45, 0xd8, 0x64, 0xc6, 0x45, 0xd9, 0x64, 0xc6, 0x45,
0xda, 0x72, 0xc6, 0x45, 0xdb, 0x65, 0xc6, 0x45, 0xdc, 0x73, 0xc6, 0x45, 0xdd, 0x73, 0xc6, 0x45, 0xde, 0x00, 0xc7, 0x45, 0xcc, 0x00, 0x00, 0x00, 0x00, 0x8b, 0x45, 0xe0, 0x89, 0x45, 0xc8, 0x8b, 0x45, 0xc8, 0x8b, 0x4d, 0xe0, 0x03, 0x48, 0x3c, 0x89, 0x4d, 0xc4, 0xb8, 0x08, 0x00,
0x00, 0x00, 0x6b, 0xc8, 0x00, 0x8b, 0x55, 0xc4, 0x8b, 0x45, 0xe0, 0x03, 0x44, 0x0a, 0x78, 0x89, 0x45, 0xc0, 0x8b, 0x45, 0xc0, 0x8b, 0x4d, 0xe0, 0x03, 0x48, 0x24, 0x89, 0x4d, 0xbc, 0x8b, 0x45, 0xc0, 0x8b, 0x4d, 0xe0, 0x03, 0x48, 0x20, 0x89, 0x4d, 0xb8, 0x8b, 0x45, 0xc0, 0x8b,
0x4d, 0xe0, 0x03, 0x48, 0x1c, 0x89, 0x4d, 0xb4, 0xc7, 0x45, 0xb0, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x09, 0x8b, 0x45, 0xb0, 0x83, 0xc0, 0x01, 0x89, 0x45, 0xb0, 0x8b, 0x45, 0xc0, 0x8b, 0x4d, 0xb0, 0x3b, 0x48, 0x18, 0x0f, 0x83, 0x82, 0x00, 0x00, 0x00, 0x8b, 0x45, 0xb0, 0x8b, 0x4d,
0xb8, 0x8b, 0x55, 0xe0, 0x03, 0x14, 0x81, 0x89, 0x55, 0xac, 0x8b, 0x45, 0xac, 0x89, 0x45, 0xa8, 0x8d, 0x45, 0xd0, 0x89, 0x45, 0xa4, 0xc6, 0x45, 0xa3, 0x01, 0x8b, 0x45, 0xa8, 0x0f, 0xbe, 0x08, 0x85, 0xc9, 0x75, 0x0a, 0x8b, 0x45, 0xa4, 0x0f, 0xbe, 0x08, 0x85, 0xc9, 0x74, 0x2a,
0x8b, 0x45, 0xa4, 0x0f, 0xbe, 0x08, 0x8b, 0x55, 0xa8, 0x0f, 0xbe, 0x02, 0x3b, 0xc1, 0x74, 0x06, 0xc6, 0x45, 0xa3, 0x00, 0xeb, 0x14, 0x8b, 0x45, 0xa8, 0x83, 0xc0, 0x01, 0x89, 0x45, 0xa8, 0x8b, 0x45, 0xa4, 0x83, 0xc0, 0x01, 0x89, 0x45, 0xa4, 0xeb, 0xc2, 0x0f, 0xb6, 0x45, 0xa3,
0x85, 0xc0, 0x74, 0x18, 0x8b, 0x45, 0xb0, 0x8b, 0x4d, 0xbc, 0x0f, 0xbf, 0x14, 0x41, 0x8b, 0x45, 0xb4, 0x8b, 0x4d, 0xe0, 0x03, 0x0c, 0x90, 0x89, 0x4d, 0xcc, 0xeb, 0x05, 0xe9, 0x66, 0xff, 0xff, 0xff, 0xc7, 0x45, 0xc8, 0x00, 0x00, 0x00, 0x00, 0xc7, 0x45, 0xc4, 0x00, 0x00, 0x00,
0x00, 0xc6, 0x45, 0x90, 0x4c, 0xc6, 0x45, 0x91, 0x6f, 0xc6, 0x45, 0x92, 0x61, 0xc6, 0x45, 0x93, 0x64, 0xc6, 0x45, 0x94, 0x4c, 0xc6, 0x45, 0x95, 0x69, 0xc6, 0x45, 0x96, 0x62, 0xc6, 0x45, 0x97, 0x72, 0xc6, 0x45, 0x98, 0x61, 0xc6, 0x45, 0x99, 0x72, 0xc6, 0x45, 0x9a, 0x79, 0xc6,
0x45, 0x9b, 0x41, 0xc6, 0x45, 0x9c, 0x00, 0xc6, 0x85, 0x7c, 0xff, 0xff, 0xff, 0x47, 0xc6, 0x85, 0x7d, 0xff, 0xff, 0xff, 0x65, 0xc6, 0x85, 0x7e, 0xff, 0xff, 0xff, 0x74, 0xc6, 0x85, 0x7f, 0xff, 0xff, 0xff, 0x4d, 0xc6, 0x45, 0x80, 0x6f, 0xc6, 0x45, 0x81, 0x64, 0xc6, 0x45, 0x82,
0x75, 0xc6, 0x45, 0x83, 0x6c, 0xc6, 0x45, 0x84, 0x65, 0xc6, 0x45, 0x85, 0x48, 0xc6, 0x45, 0x86, 0x61, 0xc6, 0x45, 0x87, 0x6e, 0xc6, 0x45, 0x88, 0x64, 0xc6, 0x45, 0x89, 0x6c, 0xc6, 0x45, 0x8a, 0x65, 0xc6, 0x45, 0x8b, 0x41, 0xc6, 0x45, 0x8c, 0x00, 0xc6, 0x85, 0x6c, 0xff, 0xff,
0xff, 0x43, 0xc6, 0x85, 0x6d, 0xff, 0xff, 0xff, 0x72, 0xc6, 0x85, 0x6e, 0xff, 0xff, 0xff, 0x65, 0xc6, 0x85, 0x6f, 0xff, 0xff, 0xff, 0x61, 0xc6, 0x85, 0x70, 0xff, 0xff, 0xff, 0x74, 0xc6, 0x85, 0x71, 0xff, 0xff, 0xff, 0x65, 0xc6, 0x85, 0x72, 0xff, 0xff, 0xff, 0x50, 0xc6, 0x85,
0x73, 0xff, 0xff, 0xff, 0x72, 0xc6, 0x85, 0x74, 0xff, 0xff, 0xff, 0x6f, 0xc6, 0x85, 0x75, 0xff, 0xff, 0xff, 0x63, 0xc6, 0x85, 0x76, 0xff, 0xff, 0xff, 0x65, 0xc6, 0x85, 0x77, 0xff, 0xff, 0xff, 0x73, 0xc6, 0x85, 0x78, 0xff, 0xff, 0xff, 0x73, 0xc6, 0x85, 0x79, 0xff, 0xff, 0xff,
0x41, 0xc6, 0x85, 0x7a, 0xff, 0xff, 0xff, 0x00, 0xc6, 0x85, 0x58, 0xff, 0xff, 0xff, 0x47, 0xc6, 0x85, 0x59, 0xff, 0xff, 0xff, 0x65, 0xc6, 0x85, 0x5a, 0xff, 0xff, 0xff, 0x74, 0xc6, 0x85, 0x5b, 0xff, 0xff, 0xff, 0x4d, 0xc6, 0x85, 0x5c, 0xff, 0xff, 0xff, 0x6f, 0xc6, 0x85, 0x5d,
0xff, 0xff, 0xff, 0x64, 0xc6, 0x85, 0x5e, 0xff, 0xff, 0xff, 0x75, 0xc6, 0x85, 0x5f, 0xff, 0xff, 0xff, 0x6c, 0xc6, 0x85, 0x60, 0xff, 0xff, 0xff, 0x65, 0xc6, 0x85, 0x61, 0xff, 0xff, 0xff, 0x46, 0xc6, 0x85, 0x62, 0xff, 0xff, 0xff, 0x69, 0xc6, 0x85, 0x63, 0xff, 0xff, 0xff, 0x6c,
0xc6, 0x85, 0x64, 0xff, 0xff, 0xff, 0x65, 0xc6, 0x85, 0x65, 0xff, 0xff, 0xff, 0x4e, 0xc6, 0x85, 0x66, 0xff, 0xff, 0xff, 0x61, 0xc6, 0x85, 0x67, 0xff, 0xff, 0xff, 0x6d, 0xc6, 0x85, 0x68, 0xff, 0xff, 0xff, 0x65, 0xc6, 0x85, 0x69, 0xff, 0xff, 0xff, 0x41, 0xc6, 0x85, 0x6a, 0xff,
0xff, 0xff, 0x00, 0xc6, 0x85, 0x44, 0xff, 0xff, 0xff, 0x47, 0xc6, 0x85, 0x45, 0xff, 0xff, 0xff, 0x65, 0xc6, 0x85, 0x46, 0xff, 0xff, 0xff, 0x74, 0xc6, 0x85, 0x47, 0xff, 0xff, 0xff, 0x54, 0xc6, 0x85, 0x48, 0xff, 0xff, 0xff, 0x68, 0xc6, 0x85, 0x49, 0xff, 0xff, 0xff, 0x72, 0xc6,
0x85, 0x4a, 0xff, 0xff, 0xff, 0x65, 0xc6, 0x85, 0x4b, 0xff, 0xff, 0xff, 0x61, 0xc6, 0x85, 0x4c, 0xff, 0xff, 0xff, 0x64, 0xc6, 0x85, 0x4d, 0xff, 0xff, 0xff, 0x43, 0xc6, 0x85, 0x4e, 0xff, 0xff, 0xff, 0x6f, 0xc6, 0x85, 0x4f, 0xff, 0xff, 0xff, 0x6e, 0xc6, 0x85, 0x50, 0xff, 0xff,
0xff, 0x74, 0xc6, 0x85, 0x51, 0xff, 0xff, 0xff, 0x65, 0xc6, 0x85, 0x52, 0xff, 0xff, 0xff, 0x78, 0xc6, 0x85, 0x53, 0xff, 0xff, 0xff, 0x74, 0xc6, 0x85, 0x54, 0xff, 0xff, 0xff, 0x00, 0xc6, 0x85, 0x30, 0xff, 0xff, 0xff, 0x52, 0xc6, 0x85, 0x31, 0xff, 0xff, 0xff, 0x65, 0xc6, 0x85,
0x32, 0xff, 0xff, 0xff, 0x61, 0xc6, 0x85, 0x33, 0xff, 0xff, 0xff, 0x64, 0xc6, 0x85, 0x34, 0xff, 0xff, 0xff, 0x50, 0xc6, 0x85, 0x35, 0xff, 0xff, 0xff, 0x72, 0xc6, 0x85, 0x36, 0xff, 0xff, 0xff, 0x6f, 0xc6, 0x85, 0x37, 0xff, 0xff, 0xff, 0x63, 0xc6, 0x85, 0x38, 0xff, 0xff, 0xff,
0x65, 0xc6, 0x85, 0x39, 0xff, 0xff, 0xff, 0x73, 0xc6, 0x85, 0x3a, 0xff, 0xff, 0xff, 0x73, 0xc6, 0x85, 0x3b, 0xff, 0xff, 0xff, 0x4d, 0xc6, 0x85, 0x3c, 0xff, 0xff, 0xff, 0x65, 0xc6, 0x85, 0x3d, 0xff, 0xff, 0xff, 0x6d, 0xc6, 0x85, 0x3e, 0xff, 0xff, 0xff, 0x6f, 0xc6, 0x85, 0x3f,
0xff, 0xff, 0xff, 0x72, 0xc6, 0x85, 0x40, 0xff, 0xff, 0xff, 0x79, 0xc6, 0x85, 0x41, 0xff, 0xff, 0xff, 0x00, 0xc6, 0x85, 0x18, 0xff, 0xff, 0xff, 0x5a, 0xc6, 0x85, 0x19, 0xff, 0xff, 0xff, 0x77, 0xc6, 0x85, 0x1a, 0xff, 0xff, 0xff, 0x55, 0xc6, 0x85, 0x1b, 0xff, 0xff, 0xff, 0x6e,
0xc6, 0x85, 0x1c, 0xff, 0xff, 0xff, 0x6d, 0xc6, 0x85, 0x1d, 0xff, 0xff, 0xff, 0x61, 0xc6, 0x85, 0x1e, 0xff, 0xff, 0xff, 0x70, 0xc6, 0x85, 0x1f, 0xff, 0xff, 0xff, 0x56, 0xc6, 0x85, 0x20, 0xff, 0xff, 0xff, 0x69, 0xc6, 0x85, 0x21, 0xff, 0xff, 0xff, 0x65, 0xc6, 0x85, 0x22, 0xff,
0xff, 0xff, 0x77, 0xc6, 0x85, 0x23, 0xff, 0xff, 0xff, 0x4f, 0xc6, 0x85, 0x24, 0xff, 0xff, 0xff, 0x66, 0xc6, 0x85, 0x25, 0xff, 0xff, 0xff, 0x53, 0xc6, 0x85, 0x26, 0xff, 0xff, 0xff, 0x65, 0xc6, 0x85, 0x27, 0xff, 0xff, 0xff, 0x63, 0xc6, 0x85, 0x28, 0xff, 0xff, 0xff, 0x74, 0xc6,
0x85, 0x29, 0xff, 0xff, 0xff, 0x69, 0xc6, 0x85, 0x2a, 0xff, 0xff, 0xff, 0x6f, 0xc6, 0x85, 0x2b, 0xff, 0xff, 0xff, 0x6e, 0xc6, 0x85, 0x2c, 0xff, 0xff, 0xff, 0x00, 0xc6, 0x85, 0x0c, 0xff, 0xff, 0xff, 0x6e, 0xc6, 0x85, 0x0d, 0xff, 0xff, 0xff, 0x74, 0xc6, 0x85, 0x0e, 0xff, 0xff,
0xff, 0x64, 0xc6, 0x85, 0x0f, 0xff, 0xff, 0xff, 0x6c, 0xc6, 0x85, 0x10, 0xff, 0xff, 0xff, 0x6c, 0xc6, 0x85, 0x11, 0xff, 0xff, 0xff, 0x2e, 0xc6, 0x85, 0x12, 0xff, 0xff, 0xff, 0x64, 0xc6, 0x85, 0x13, 0xff, 0xff, 0xff, 0x6c, 0xc6, 0x85, 0x14, 0xff, 0xff, 0xff, 0x6c, 0xc6, 0x85,
0x15, 0xff, 0xff, 0xff, 0x00, 0xc6, 0x85, 0x04, 0xff, 0xff, 0xff, 0x6d, 0xc6, 0x85, 0x05, 0xff, 0xff, 0xff, 0x65, 0xc6, 0x85, 0x06, 0xff, 0xff, 0xff, 0x6d, 0xc6, 0x85, 0x07, 0xff, 0xff, 0xff, 0x63, 0xc6, 0x85, 0x08, 0xff, 0xff, 0xff, 0x70, 0xc6, 0x85, 0x09, 0xff, 0xff, 0xff,
0x79, 0xc6, 0x85, 0x0a, 0xff, 0xff, 0xff, 0x00, 0xc6, 0x85, 0xfc, 0xfe, 0xff, 0xff, 0x6d, 0xc6, 0x85, 0xfd, 0xfe, 0xff, 0xff, 0x65, 0xc6, 0x85, 0xfe, 0xfe, 0xff, 0xff, 0x6d, 0xc6, 0x85, 0xff, 0xfe, 0xff, 0xff, 0x73, 0xc6, 0x85, 0x00, 0xff, 0xff, 0xff, 0x65, 0xc6, 0x85, 0x01,
0xff, 0xff, 0xff, 0x74, 0xc6, 0x85, 0x02, 0xff, 0xff, 0xff, 0x00, 0xc6, 0x85, 0xf0, 0xfe, 0xff, 0xff, 0x6d, 0xc6, 0x85, 0xf1, 0xfe, 0xff, 0xff, 0x73, 0xc6, 0x85, 0xf2, 0xfe, 0xff, 0xff, 0x76, 0xc6, 0x85, 0xf3, 0xfe, 0xff, 0xff, 0x63, 0xc6, 0x85, 0xf4, 0xfe, 0xff, 0xff, 0x72,
0xc6, 0x85, 0xf5, 0xfe, 0xff, 0xff, 0x74, 0xc6, 0x85, 0xf6, 0xfe, 0xff, 0xff, 0x2e, 0xc6, 0x85, 0xf7, 0xfe, 0xff, 0xff, 0x64, 0xc6, 0x85, 0xf8, 0xfe, 0xff, 0xff, 0x6c, 0xc6, 0x85, 0xf9, 0xfe, 0xff, 0xff, 0x6c, 0xc6, 0x85, 0xfa, 0xfe, 0xff, 0xff, 0x00, 0xc6, 0x85, 0xe8, 0xfe,
0xff, 0xff, 0x6d, 0xc6, 0x85, 0xe9, 0xfe, 0xff, 0xff, 0x61, 0xc6, 0x85, 0xea, 0xfe, 0xff, 0xff, 0x6c, 0xc6, 0x85, 0xeb, 0xfe, 0xff, 0xff, 0x6c, 0xc6, 0x85, 0xec, 0xfe, 0xff, 0xff, 0x6f, 0xc6, 0x85, 0xed, 0xfe, 0xff, 0xff, 0x63, 0xc6, 0x85, 0xee, 0xfe, 0xff, 0xff, 0x00, 0xc6,
0x85, 0xe0, 0xfe, 0xff, 0xff, 0x66, 0xc6, 0x85, 0xe1, 0xfe, 0xff, 0xff, 0x72, 0xc6, 0x85, 0xe2, 0xfe, 0xff, 0xff, 0x65, 0xc6, 0x85, 0xe3, 0xfe, 0xff, 0xff, 0x65, 0xc6, 0x85, 0xe4, 0xfe, 0xff, 0xff, 0x00, 0xc6, 0x85, 0xd0, 0xfe, 0xff, 0xff, 0x56, 0xc6, 0x85, 0xd1, 0xfe, 0xff,
0xff, 0x69, 0xc6, 0x85, 0xd2, 0xfe, 0xff, 0xff, 0x72, 0xc6, 0x85, 0xd3, 0xfe, 0xff, 0xff, 0x74, 0xc6, 0x85, 0xd4, 0xfe, 0xff, 0xff, 0x75, 0xc6, 0x85, 0xd5, 0xfe, 0xff, 0xff, 0x61, 0xc6, 0x85, 0xd6, 0xfe, 0xff, 0xff, 0x6c, 0xc6, 0x85, 0xd7, 0xfe, 0xff, 0xff, 0x41, 0xc6, 0x85,
0xd8, 0xfe, 0xff, 0xff, 0x6c, 0xc6, 0x85, 0xd9, 0xfe, 0xff, 0xff, 0x6c, 0xc6, 0x85, 0xda, 0xfe, 0xff, 0xff, 0x6f, 0xc6, 0x85, 0xdb, 0xfe, 0xff, 0xff, 0x63, 0xc6, 0x85, 0xdc, 0xfe, 0xff, 0xff, 0x45, 0xc6, 0x85, 0xdd, 0xfe, 0xff, 0xff, 0x78, 0xc6, 0x85, 0xde, 0xfe, 0xff, 0xff,
0x00, 0xc6, 0x85, 0xbc, 0xfe, 0xff, 0xff, 0x57, 0xc6, 0x85, 0xbd, 0xfe, 0xff, 0xff, 0x72, 0xc6, 0x85, 0xbe, 0xfe, 0xff, 0xff, 0x69, 0xc6, 0x85, 0xbf, 0xfe, 0xff, 0xff, 0x74, 0xc6, 0x85, 0xc0, 0xfe, 0xff, 0xff, 0x65, 0xc6, 0x85, 0xc1, 0xfe, 0xff, 0xff, 0x50, 0xc6, 0x85, 0xc2,
0xfe, 0xff, 0xff, 0x72, 0xc6, 0x85, 0xc3, 0xfe, 0xff, 0xff, 0x6f, 0xc6, 0x85, 0xc4, 0xfe, 0xff, 0xff, 0x63, 0xc6, 0x85, 0xc5, 0xfe, 0xff, 0xff, 0x65, 0xc6, 0x85, 0xc6, 0xfe, 0xff, 0xff, 0x73, 0xc6, 0x85, 0xc7, 0xfe, 0xff, 0xff, 0x73, 0xc6, 0x85, 0xc8, 0xfe, 0xff, 0xff, 0x4d,
0xc6, 0x85, 0xc9, 0xfe, 0xff, 0xff, 0x65, 0xc6, 0x85, 0xca, 0xfe, 0xff, 0xff, 0x6d, 0xc6, 0x85, 0xcb, 0xfe, 0xff, 0xff, 0x6f, 0xc6, 0x85, 0xcc, 0xfe, 0xff, 0xff, 0x72, 0xc6, 0x85, 0xcd, 0xfe, 0xff, 0xff, 0x79, 0xc6, 0x85, 0xce, 0xfe, 0xff, 0xff, 0x00, 0xc6, 0x85, 0xa8, 0xfe,
0xff, 0xff, 0x53, 0xc6, 0x85, 0xa9, 0xfe, 0xff, 0xff, 0x65, 0xc6, 0x85, 0xaa, 0xfe, 0xff, 0xff, 0x74, 0xc6, 0x85, 0xab, 0xfe, 0xff, 0xff, 0x54, 0xc6, 0x85, 0xac, 0xfe, 0xff, 0xff, 0x68, 0xc6, 0x85, 0xad, 0xfe, 0xff, 0xff, 0x72, 0xc6, 0x85, 0xae, 0xfe, 0xff, 0xff, 0x65, 0xc6,
0x85, 0xaf, 0xfe, 0xff, 0xff, 0x61, 0xc6, 0x85, 0xb0, 0xfe, 0xff, 0xff, 0x64, 0xc6, 0x85, 0xb1, 0xfe, 0xff, 0xff, 0x43, 0xc6, 0x85, 0xb2, 0xfe, 0xff, 0xff, 0x6f, 0xc6, 0x85, 0xb3, 0xfe, 0xff, 0xff, 0x6e, 0xc6, 0x85, 0xb4, 0xfe, 0xff, 0xff, 0x74, 0xc6, 0x85, 0xb5, 0xfe, 0xff,
0xff, 0x65, 0xc6, 0x85, 0xb6, 0xfe, 0xff, 0xff, 0x78, 0xc6, 0x85, 0xb7, 0xfe, 0xff, 0xff, 0x74, 0xc6, 0x85, 0xb8, 0xfe, 0xff, 0xff, 0x00, 0xc6, 0x85, 0x98, 0xfe, 0xff, 0xff, 0x52, 0xc6, 0x85, 0x99, 0xfe, 0xff, 0xff, 0x65, 0xc6, 0x85, 0x9a, 0xfe, 0xff, 0xff, 0x73, 0xc6, 0x85,
0x9b, 0xfe, 0xff, 0xff, 0x75, 0xc6, 0x85, 0x9c, 0xfe, 0xff, 0xff, 0x6d, 0xc6, 0x85, 0x9d, 0xfe, 0xff, 0xff, 0x65, 0xc6, 0x85, 0x9e, 0xfe, 0xff, 0xff, 0x54, 0xc6, 0x85, 0x9f, 0xfe, 0xff, 0xff, 0x68, 0xc6, 0x85, 0xa0, 0xfe, 0xff, 0xff, 0x72, 0xc6, 0x85, 0xa1, 0xfe, 0xff, 0xff,
0x65, 0xc6, 0x85, 0xa2, 0xfe, 0xff, 0xff, 0x61, 0xc6, 0x85, 0xa3, 0xfe, 0xff, 0xff, 0x64, 0xc6, 0x85, 0xa4, 0xfe, 0xff, 0xff, 0x00, 0xc6, 0x85, 0x84, 0xfe, 0xff, 0xff, 0x54, 0xc6, 0x85, 0x85, 0xfe, 0xff, 0xff, 0x65, 0xc6, 0x85, 0x86, 0xfe, 0xff, 0xff, 0x72, 0xc6, 0x85, 0x87,
0xfe, 0xff, 0xff, 0x6d, 0xc6, 0x85, 0x88, 0xfe, 0xff, 0xff, 0x69, 0xc6, 0x85, 0x89, 0xfe, 0xff, 0xff, 0x6e, 0xc6, 0x85, 0x8a, 0xfe, 0xff, 0xff, 0x61, 0xc6, 0x85, 0x8b, 0xfe, 0xff, 0xff, 0x74, 0xc6, 0x85, 0x8c, 0xfe, 0xff, 0xff, 0x65, 0xc6, 0x85, 0x8d, 0xfe, 0xff, 0xff, 0x50,
0xc6, 0x85, 0x8e, 0xfe, 0xff, 0xff, 0x72, 0xc6, 0x85, 0x8f, 0xfe, 0xff, 0xff, 0x6f, 0xc6, 0x85, 0x90, 0xfe, 0xff, 0xff, 0x63, 0xc6, 0x85, 0x91, 0xfe, 0xff, 0xff, 0x65, 0xc6, 0x85, 0x92, 0xfe, 0xff, 0xff, 0x73, 0xc6, 0x85, 0x93, 0xfe, 0xff, 0xff, 0x73, 0xc6, 0x85, 0x94, 0xfe,
0xff, 0xff, 0x00, 0xc6, 0x85, 0x78, 0xfe, 0xff, 0xff, 0x45, 0xc6, 0x85, 0x79, 0xfe, 0xff, 0xff, 0x78, 0xc6, 0x85, 0x7a, 0xfe, 0xff, 0xff, 0x69, 0xc6, 0x85, 0x7b, 0xfe, 0xff, 0xff, 0x74, 0xc6, 0x85, 0x7c, 0xfe, 0xff, 0xff, 0x50, 0xc6, 0x85, 0x7d, 0xfe, 0xff, 0xff, 0x72, 0xc6,
0x85, 0x7e, 0xfe, 0xff, 0xff, 0x6f, 0xc6, 0x85, 0x7f, 0xfe, 0xff, 0xff, 0x63, 0xc6, 0x85, 0x80, 0xfe, 0xff, 0xff, 0x65, 0xc6, 0x85, 0x81, 0xfe, 0xff, 0xff, 0x73, 0xc6, 0x85, 0x82, 0xfe, 0xff, 0xff, 0x73, 0xc6, 0x85, 0x83, 0xfe, 0xff, 0xff, 0x00, 0x8d, 0x45, 0x90, 0x50, 0x8b,
0x4d, 0xe0, 0x51, 0xff, 0x55, 0xcc, 0x89, 0x85, 0x80, 0xf9, 0xff, 0xff, 0x8b, 0x95, 0x80, 0xf9, 0xff, 0xff, 0x89, 0x95, 0x74, 0xfe, 0xff, 0xff, 0x8d, 0x85, 0x7c, 0xff, 0xff, 0xff, 0x50, 0x8b, 0x4d, 0xe0, 0x51, 0xff, 0x55, 0xcc, 0x89, 0x85, 0x80, 0xf9, 0xff, 0xff, 0x8b, 0x95,
0x80, 0xf9, 0xff, 0xff, 0x89, 0x95, 0x70, 0xfe, 0xff, 0xff, 0x8d, 0x85, 0x6c, 0xff, 0xff, 0xff, 0x50, 0x8b, 0x4d, 0xe0, 0x51, 0xff, 0x55, 0xcc, 0x89, 0x85, 0x80, 0xf9, 0xff, 0xff, 0x8b, 0x95, 0x80, 0xf9, 0xff, 0xff, 0x89, 0x95, 0x6c, 0xfe, 0xff, 0xff, 0x8d, 0x85, 0x58, 0xff,
0xff, 0xff, 0x50, 0x8b, 0x4d, 0xe0, 0x51, 0xff, 0x55, 0xcc, 0x89, 0x85, 0x80, 0xf9, 0xff, 0xff, 0x8b, 0x95, 0x80, 0xf9, 0xff, 0xff, 0x89, 0x95, 0x68, 0xfe, 0xff, 0xff, 0x8d, 0x85, 0x44, 0xff, 0xff, 0xff, 0x50, 0x8b, 0x4d, 0xe0, 0x51, 0xff, 0x55, 0xcc, 0x89, 0x85, 0x80, 0xf9,
0xff, 0xff, 0x8b, 0x95, 0x80, 0xf9, 0xff, 0xff, 0x89, 0x95, 0x64, 0xfe, 0xff, 0xff, 0x8d, 0x85, 0x30, 0xff, 0xff, 0xff, 0x50, 0x8b, 0x4d, 0xe0, 0x51, 0xff, 0x55, 0xcc, 0x89, 0x85, 0x80, 0xf9, 0xff, 0xff, 0x8b, 0x95, 0x80, 0xf9, 0xff, 0xff, 0x89, 0x95, 0x60, 0xfe, 0xff, 0xff,
0x8d, 0x85, 0xbc, 0xfe, 0xff, 0xff, 0x50, 0x8b, 0x4d, 0xe0, 0x51, 0xff, 0x55, 0xcc, 0x89, 0x85, 0x80, 0xf9, 0xff, 0xff, 0x8b, 0x95, 0x80, 0xf9, 0xff, 0xff, 0x89, 0x95, 0x5c, 0xfe, 0xff, 0xff, 0x8d, 0x85, 0xd0, 0xfe, 0xff, 0xff, 0x50, 0x8b, 0x4d, 0xe0, 0x51, 0xff, 0x55, 0xcc,
0x89, 0x85, 0x80, 0xf9, 0xff, 0xff, 0x8b, 0x95, 0x80, 0xf9, 0xff, 0xff, 0x89, 0x95, 0x58, 0xfe, 0xff, 0xff, 0x8d, 0x85, 0xa8, 0xfe, 0xff, 0xff, 0x50, 0x8b, 0x4d, 0xe0, 0x51, 0xff, 0x55, 0xcc, 0x89, 0x85, 0x80, 0xf9, 0xff, 0xff, 0x8b, 0x95, 0x80, 0xf9, 0xff, 0xff, 0x89, 0x95,
0x54, 0xfe, 0xff, 0xff, 0x8d, 0x85, 0x98, 0xfe, 0xff, 0xff, 0x50, 0x8b, 0x4d, 0xe0, 0x51, 0xff, 0x55, 0xcc, 0x89, 0x85, 0x80, 0xf9, 0xff, 0xff, 0x8b, 0x95, 0x80, 0xf9, 0xff, 0xff, 0x89, 0x95, 0x50, 0xfe, 0xff, 0xff, 0x8d, 0x85, 0x84, 0xfe, 0xff, 0xff, 0x50, 0x8b, 0x4d, 0xe0,
0x51, 0xff, 0x55, 0xcc, 0x89, 0x85, 0x80, 0xf9, 0xff, 0xff, 0x8b, 0x95, 0x80, 0xf9, 0xff, 0xff, 0x89, 0x55, 0xe4, 0x8d, 0x85, 0x78, 0xfe, 0xff, 0xff, 0x50, 0x8b, 0x4d, 0xe0, 0x51, 0xff, 0x55, 0xcc, 0x89, 0x85, 0x80, 0xf9, 0xff, 0xff, 0x8b, 0x95, 0x80, 0xf9, 0xff, 0xff, 0x89,
0x95, 0x4c, 0xfe, 0xff, 0xff, 0x8d, 0x85, 0x0c, 0xff, 0xff, 0xff, 0x50, 0xff, 0x95, 0x70, 0xfe, 0xff, 0xff, 0x89, 0x85, 0x80, 0xf9, 0xff, 0xff, 0x8b, 0x8d, 0x80, 0xf9, 0xff, 0xff, 0x89, 0x8d, 0x48, 0xfe, 0xff, 0xff, 0x8d, 0x85, 0x18, 0xff, 0xff, 0xff, 0x50, 0x8b, 0x8d, 0x48,
0xfe, 0xff, 0xff, 0x51, 0xff, 0x55, 0xcc, 0x89, 0x85, 0x80, 0xf9, 0xff, 0xff, 0x8b, 0x95, 0x80, 0xf9, 0xff, 0xff, 0x89, 0x95, 0x44, 0xfe, 0xff, 0xff, 0x8d, 0x85, 0x04, 0xff, 0xff, 0xff, 0x50, 0x8b, 0x8d, 0x48, 0xfe, 0xff, 0xff, 0x51, 0xff, 0x55, 0xcc, 0x89, 0x85, 0x80, 0xf9,
0xff, 0xff, 0x8b, 0x95, 0x80, 0xf9, 0xff, 0xff, 0x89, 0x95, 0x40, 0xfe, 0xff, 0xff, 0x8d, 0x85, 0xfc, 0xfe, 0xff, 0xff, 0x50, 0x8b, 0x8d, 0x48, 0xfe, 0xff, 0xff, 0x51, 0xff, 0x55, 0xcc, 0x89, 0x85, 0x80, 0xf9, 0xff, 0xff, 0x8b, 0x95, 0x80, 0xf9, 0xff, 0xff, 0x89, 0x95, 0x3c,
0xfe, 0xff, 0xff, 0x8d, 0x85, 0xf0, 0xfe, 0xff, 0xff, 0x50, 0xff, 0x95, 0x74, 0xfe, 0xff, 0xff, 0x89, 0x85, 0x80, 0xf9, 0xff, 0xff, 0x8b, 0x8d, 0x80, 0xf9, 0xff, 0xff, 0x89, 0x8d, 0x38, 0xfe, 0xff, 0xff, 0x8d, 0x85, 0xe8, 0xfe, 0xff, 0xff, 0x50, 0x8b, 0x8d, 0x38, 0xfe, 0xff,
0xff, 0x51, 0xff, 0x55, 0xcc, 0x89, 0x85, 0x80, 0xf9, 0xff, 0xff, 0x8b, 0x95, 0x80, 0xf9, 0xff, 0xff, 0x89, 0x95, 0x34, 0xfe, 0xff, 0xff, 0x8d, 0x85, 0xe0, 0xfe, 0xff, 0xff, 0x50, 0x8b, 0x8d, 0x38, 0xfe, 0xff, 0xff, 0x51, 0xff, 0x55, 0xcc, 0x89, 0x85, 0x80, 0xf9, 0xff, 0xff,
0x8b, 0x95, 0x80, 0xf9, 0xff, 0xff, 0x89, 0x95, 0x30, 0xfe, 0xff, 0xff, 0x6a, 0x00, 0xff, 0x95, 0x70, 0xfe, 0xff, 0xff, 0x89, 0x85, 0x80, 0xf9, 0xff, 0xff, 0x8b, 0x85, 0x80, 0xf9, 0xff, 0xff, 0x89, 0x85, 0x2c, 0xfe, 0xff, 0xff, 0x8b, 0x85, 0x2c, 0xfe, 0xff, 0xff, 0x89, 0x45,
0xc8, 0x8b, 0x45, 0xc8, 0x8b, 0x8d, 0x2c, 0xfe, 0xff, 0xff, 0x03, 0x48, 0x3c, 0x89, 0x4d, 0xc4, 0x8b, 0x45, 0xc4, 0x0f, 0xb7, 0x48, 0x14, 0x8b, 0x55, 0xc4, 0x8d, 0x44, 0x0a, 0x18, 0x89, 0x85, 0x28, 0xfe, 0xff, 0xff, 0x8b, 0x45, 0xc4, 0x0f, 0xb7, 0x48, 0x06, 0x6b, 0xd1, 0x28,
0x8b, 0x85, 0x28, 0xfe, 0xff, 0xff, 0x8d, 0x4c, 0x10, 0xd8, 0x89, 0x8d, 0x28, 0xfe, 0xff, 0xff, 0x8b, 0x85, 0x28, 0xfe, 0xff, 0xff, 0x8b, 0x48, 0x0c, 0x8b, 0x95, 0x2c, 0xfe, 0xff, 0xff, 0x8d, 0x84, 0x0a, 0x00, 0x20, 0x00, 0x00, 0x89, 0x85, 0x24, 0xfe, 0xff, 0xff, 0x8b, 0x85,
0x28, 0xfe, 0xff, 0xff, 0x8b, 0x48, 0x10, 0x81, 0xe9, 0x00, 0x20, 0x00, 0x00, 0x89, 0x8d, 0x20, 0xfe, 0xff, 0xff, 0x8b, 0x85, 0x24, 0xfe, 0xff, 0xff, 0x89, 0x45, 0xc8, 0x8b, 0x45, 0xc8, 0x8b, 0x8d, 0x24, 0xfe, 0xff, 0xff, 0x03, 0x48, 0x3c, 0x89, 0x4d, 0xc4, 0x8b, 0x45, 0xc4,
0x83, 0xc0, 0x18, 0x89, 0x85, 0x1c, 0xfe, 0xff, 0xff, 0x8b, 0x45, 0xc4, 0x0f, 0xb7, 0x48, 0x14, 0x03, 0x8d, 0x1c, 0xfe, 0xff, 0xff, 0x89, 0x8d, 0x28, 0xfe, 0xff, 0xff, 0x8b, 0x45, 0xc4, 0x0f, 0xb7, 0x48, 0x06, 0x83, 0xe9, 0x01, 0x6b, 0xd1, 0x28, 0x8b, 0x45, 0xc4, 0x0f, 0xb7,
0x48, 0x06, 0x83, 0xe9, 0x01, 0x6b, 0xc1, 0x28, 0x8b, 0x8d, 0x28, 0xfe, 0xff, 0xff, 0x8b, 0x44, 0x01, 0x0c, 0x8b, 0x8d, 0x28, 0xfe, 0xff, 0xff, 0x03, 0x44, 0x11, 0x10, 0x89, 0x85, 0x18, 0xfe, 0xff, 0xff, 0x8b, 0x85, 0x1c, 0xfe, 0xff, 0xff, 0x8b, 0x8d, 0x18, 0xfe, 0xff, 0xff,
0x3b, 0x48, 0x38, 0x76, 0x0e, 0x8b, 0x95, 0x18, 0xfe, 0xff, 0xff, 0x89, 0x95, 0x80, 0xf9, 0xff, 0xff, 0xeb, 0x0f, 0x8b, 0x85, 0x1c, 0xfe, 0xff, 0xff, 0x8b, 0x48, 0x38, 0x89, 0x8d, 0x80, 0xf9, 0xff, 0xff, 0x8b, 0x95, 0x80, 0xf9, 0xff, 0xff, 0x89, 0x95, 0x18, 0xfe, 0xff, 0xff,
0x8b, 0x85, 0x18, 0xfe, 0xff, 0xff, 0x50, 0xff, 0x95, 0x34, 0xfe, 0xff, 0xff, 0x83, 0xc4, 0x04, 0x89, 0x85, 0x80, 0xf9, 0xff, 0xff, 0x8b, 0x8d, 0x80, 0xf9, 0xff, 0xff, 0x89, 0x8d, 0x14, 0xfe, 0xff, 0xff, 0x8b, 0x85, 0x18, 0xfe, 0xff, 0xff, 0x50, 0x6a, 0x00, 0x8b, 0x8d, 0x14,
0xfe, 0xff, 0xff, 0x51, 0xff, 0x95, 0x3c, 0xfe, 0xff, 0xff, 0x83, 0xc4, 0x0c, 0x8b, 0x85, 0x1c, 0xfe, 0xff, 0xff, 0x8b, 0x48, 0x3c, 0x51, 0x8b, 0x95, 0x24, 0xfe, 0xff, 0xff, 0x52, 0x8b, 0x85, 0x14, 0xfe, 0xff, 0xff, 0x50, 0xff, 0x95, 0x40, 0xfe, 0xff, 0xff, 0x83, 0xc4, 0x0c,
0xc7, 0x85, 0x10, 0xfe, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x0f, 0x8b, 0x85, 0x10, 0xfe, 0xff, 0xff, 0x83, 0xc0, 0x01, 0x89, 0x85, 0x10, 0xfe, 0xff, 0xff, 0x8b, 0x45, 0xc4, 0x0f, 0xb7, 0x48, 0x06, 0x39, 0x8d, 0x10, 0xfe, 0xff, 0xff, 0x7d, 0x44, 0x8b, 0x85, 0x28, 0xfe,
0xff, 0xff, 0x8b, 0x48, 0x10, 0x51, 0x8b, 0x95, 0x28, 0xfe, 0xff, 0xff, 0x8b, 0x85, 0x24, 0xfe, 0xff, 0xff, 0x03, 0x42, 0x14, 0x50, 0x8b, 0x8d, 0x28, 0xfe, 0xff, 0xff, 0x8b, 0x95, 0x14, 0xfe, 0xff, 0xff, 0x03, 0x51, 0x0c, 0x52, 0xff, 0x95, 0x40, 0xfe, 0xff, 0xff, 0x83, 0xc4,
0x0c, 0x8b, 0x85, 0x28, 0xfe, 0xff, 0xff, 0x83, 0xc0, 0x28, 0x89, 0x85, 0x28, 0xfe, 0xff, 0xff, 0xeb, 0x9e, 0x68, 0x04, 0x01, 0x00, 0x00, 0x8d, 0x85, 0x0c, 0xfd, 0xff, 0xff, 0x50, 0x6a, 0x00, 0xff, 0x95, 0x68, 0xfe, 0xff, 0xff, 0x6a, 0x44, 0x6a, 0x00, 0x8d, 0x85, 0xc8, 0xfc,
0xff, 0xff, 0x50, 0xff, 0x95, 0x3c, 0xfe, 0xff, 0xff, 0x83, 0xc4, 0x0c, 0x6a, 0x10, 0x6a, 0x00, 0x8d, 0x85, 0xb8, 0xfc, 0xff, 0xff, 0x50, 0xff, 0x95, 0x3c, 0xfe, 0xff, 0xff, 0x83, 0xc4, 0x0c, 0xc7, 0x85, 0xc8, 0xfc, 0xff, 0xff, 0x44, 0x00, 0x00, 0x00, 0x8d, 0x85, 0xb8, 0xfc,
0xff, 0xff, 0x50, 0x8d, 0x8d, 0xc8, 0xfc, 0xff, 0xff, 0x51, 0x6a, 0x00, 0x6a, 0x00, 0x6a, 0x04, 0x6a, 0x00, 0x6a, 0x00, 0x6a, 0x00, 0x8d, 0x95, 0x0c, 0xfd, 0xff, 0xff, 0x52, 0x6a, 0x00, 0xff, 0x95, 0x6c, 0xfe, 0xff, 0xff, 0x8b, 0x85, 0xb8, 0xfc, 0xff, 0xff, 0x89, 0x45, 0xe8,
0xc7, 0x85, 0xec, 0xf9, 0xff, 0xff, 0x07, 0x00, 0x01, 0x00, 0x8d, 0x85, 0xec, 0xf9, 0xff, 0xff, 0x50, 0x8b, 0x8d, 0xbc, 0xfc, 0xff, 0xff, 0x51, 0xff, 0x95, 0x64, 0xfe, 0xff, 0xff, 0x8b, 0x85, 0x9c, 0xfa, 0xff, 0xff, 0x89, 0x85, 0xe8, 0xf9, 0xff, 0xff, 0x8b, 0x85, 0x90, 0xfa,
0xff, 0xff, 0x83, 0xc0, 0x08, 0x89, 0x85, 0xe4, 0xf9, 0xff, 0xff, 0xc7, 0x85, 0xe0, 0xf9, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x6a, 0x04, 0x8d, 0x85, 0xe0, 0xf9, 0xff, 0xff, 0x50, 0x8b, 0x8d, 0xe4, 0xf9, 0xff, 0xff, 0x51, 0x8b, 0x95, 0xb8, 0xfc, 0xff, 0xff, 0x52,
0xff, 0x95, 0x60, 0xfe, 0xff, 0xff, 0x8b, 0x85, 0xe0, 0xf9, 0xff, 0xff, 0x50, 0x8b, 0x8d, 0xb8, 0xfc, 0xff, 0xff, 0x51, 0xff, 0x95, 0x44, 0xfe, 0xff, 0xff, 0x6a, 0x40, 0x68, 0x00, 0x30, 0x00, 0x00, 0x8b, 0x85, 0x1c, 0xfe, 0xff, 0xff, 0x8b, 0x48, 0x38, 0x51, 0x8b, 0x95, 0x1c,
0xfe, 0xff, 0xff, 0x8b, 0x42, 0x1c, 0x50, 0x8b, 0x8d, 0xb8, 0xfc, 0xff, 0xff, 0x51, 0xff, 0x95, 0x58, 0xfe, 0xff, 0xff, 0x89, 0x85, 0x80, 0xf9, 0xff, 0xff, 0x8b, 0x95, 0x80, 0xf9, 0xff, 0xff, 0x89, 0x95, 0xdc, 0xf9, 0xff, 0xff, 0x83, 0xbd, 0xdc, 0xf9, 0xff, 0xff, 0x00, 0x0f,
0x85, 0x64, 0x01, 0x00, 0x00, 0x6a, 0x40, 0x68, 0x00, 0x30, 0x00, 0x00, 0x8b, 0x85, 0x1c, 0xfe, 0xff, 0xff, 0x8b, 0x48, 0x38, 0x51, 0x6a, 0x00, 0x8b, 0x95, 0xb8, 0xfc, 0xff, 0xff, 0x52, 0xff, 0x95, 0x58, 0xfe, 0xff, 0xff, 0x8b, 0x85, 0x14, 0xfe, 0xff, 0xff, 0x89, 0x45, 0xc8,
0x8b, 0x45, 0xc8, 0x8b, 0x8d, 0x14, 0xfe, 0xff, 0xff, 0x03, 0x48, 0x3c, 0x89, 0x4d, 0xc4, 0x8b, 0x45, 0xc4, 0x83, 0xc0, 0x18, 0x89, 0x85, 0xd8, 0xf9, 0xff, 0xff, 0xb8, 0x08, 0x00, 0x00, 0x00, 0x6b, 0xc8, 0x05, 0x8b, 0x95, 0xd8, 0xf9, 0xff, 0xff, 0x8b, 0x85, 0x14, 0xfe, 0xff,
0xff, 0x03, 0x44, 0x0a, 0x60, 0x89, 0x85, 0xd4, 0xf9, 0xff, 0xff, 0x8b, 0x85, 0xd4, 0xf9, 0xff, 0xff, 0x83, 0x78, 0x04, 0x00, 0x75, 0x0f, 0x8b, 0x85, 0xd4, 0xf9, 0xff, 0xff, 0x83, 0x38, 0x00, 0x0f, 0x84, 0xd8, 0x00, 0x00, 0x00, 0x8b, 0x85, 0xd4, 0xf9, 0xff, 0xff, 0x83, 0xc0,
0x08, 0x89, 0x85, 0xd0, 0xf9, 0xff, 0xff, 0x8b, 0x85, 0xd4, 0xf9, 0xff, 0xff, 0x8b, 0x48, 0x04, 0x83, 0xe9, 0x08, 0xd1, 0xe9, 0x89, 0x8d, 0xcc, 0xf9, 0xff, 0xff, 0xc7, 0x85, 0xc8, 0xf9, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x0f, 0x8b, 0x85, 0xc8, 0xf9, 0xff, 0xff, 0x83,
0xc0, 0x01, 0x89, 0x85, 0xc8, 0xf9, 0xff, 0xff, 0x8b, 0x85, 0xc8, 0xf9, 0xff, 0xff, 0x3b, 0x85, 0xcc, 0xf9, 0xff, 0xff, 0x7d, 0x72, 0x8b, 0x85, 0xc8, 0xf9, 0xff, 0xff, 0x8b, 0x8d, 0xd0, 0xf9, 0xff, 0xff, 0x0f, 0xbf, 0x14, 0x41, 0x81, 0xe2, 0xff, 0x0f, 0x00, 0x00, 0x8b, 0x85,
0xd4, 0xf9, 0xff, 0xff, 0x03, 0x10, 0x89, 0x95, 0xc4, 0xf9, 0xff, 0xff, 0x8b, 0x85, 0xc8, 0xf9, 0xff, 0xff, 0x8b, 0x8d, 0xd0, 0xf9, 0xff, 0xff, 0x0f, 0xbf, 0x14, 0x41, 0x81, 0xe2, 0x00, 0xf0, 0x00, 0x00, 0xc1, 0xfa, 0x0c, 0x83, 0xfa, 0x03, 0x75, 0x2b, 0x8b, 0x85, 0xd8, 0xf9,
0xff, 0xff, 0x8b, 0x8d, 0xdc, 0xf9, 0xff, 0xff, 0x2b, 0x48, 0x1c, 0x8b, 0x95, 0xc4, 0xf9, 0xff, 0xff, 0x03, 0x95, 0x14, 0xfe, 0xff, 0xff, 0x03, 0x0a, 0x8b, 0x85, 0xc4, 0xf9, 0xff, 0xff, 0x03, 0x85, 0x14, 0xfe, 0xff, 0xff, 0x89, 0x08, 0xe9, 0x71, 0xff, 0xff, 0xff, 0x8b, 0x85,
0xd4, 0xf9, 0xff, 0xff, 0x8b, 0x8d, 0xd4, 0xf9, 0xff, 0xff, 0x03, 0x48, 0x04, 0x89, 0x8d, 0xd4, 0xf9, 0xff, 0xff, 0xe9, 0x0d, 0xff, 0xff, 0xff, 0x8b, 0x85, 0xd8, 0xf9, 0xff, 0xff, 0x8b, 0x8d, 0xdc, 0xf9, 0xff, 0xff, 0x89, 0x48, 0x1c, 0x6a, 0x00, 0x8b, 0x85, 0x1c, 0xfe, 0xff,
0xff, 0x8b, 0x48, 0x38, 0x51, 0x8b, 0x95, 0x14, 0xfe, 0xff, 0xff, 0x52, 0x8b, 0x85, 0xdc, 0xf9, 0xff, 0xff, 0x50, 0x8b, 0x8d, 0xb8, 0xfc, 0xff, 0xff, 0x51, 0xff, 0x95, 0x5c, 0xfe, 0xff, 0xff, 0x6a, 0x00, 0x6a, 0x04, 0x8d, 0x85, 0xdc, 0xf9, 0xff, 0xff, 0x50, 0x8b, 0x8d, 0x90,
0xfa, 0xff, 0xff, 0x83, 0xc1, 0x08, 0x51, 0x8b, 0x95, 0xb8, 0xfc, 0xff, 0xff, 0x52, 0xff, 0x95, 0x5c, 0xfe, 0xff, 0xff, 0x8b, 0x85, 0x1c, 0xfe, 0xff, 0xff, 0x8b, 0x48, 0x1c, 0x8b, 0x95, 0x1c, 0xfe, 0xff, 0xff, 0x03, 0x4a, 0x10, 0x89, 0x8d, 0x9c, 0xfa, 0xff, 0xff, 0x8d, 0x85,
0xec, 0xf9, 0xff, 0xff, 0x50, 0x8b, 0x8d, 0xbc, 0xfc, 0xff, 0xff, 0x51, 0xff, 0x95, 0x54, 0xfe, 0xff, 0xff, 0x8b, 0x85, 0xbc, 0xfc, 0xff, 0xff, 0x50, 0xff, 0x95, 0x50, 0xfe, 0xff, 0xff, 0x8b, 0x85, 0x14, 0xfe, 0xff, 0xff, 0x50, 0xff, 0x95, 0x30, 0xfe, 0xff, 0xff, 0x83, 0xc4,
0x04, 0x6a, 0x00, 0xff, 0x95, 0x4c, 0xfe, 0xff, 0xff, 0xeb, 0x1b, 0x83, 0x7d, 0xe8, 0x00, 0x74, 0x09, 0x6a, 0x00, 0x8b, 0x45, 0xe8, 0x50, 0xff, 0x55, 0xe4, 0xb8, 0x8d, 0x40, 0x41, 0x00, 0xc3, 0xb8, 0x84, 0x40, 0x41, 0x00, 0xc3, 0xc7, 0x45, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xeb,
0x07, 0xc7, 0x45, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x8b, 0x4d, 0xf4, 0x64, 0x89, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x5e, 0x5b, 0x8b, 0xe5, 0x5d, 0xc3, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 加壳 解壳 PE