Advertisement
Guest User

Untitled

a guest
Jul 27th, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.20 KB | None | 0 0
  1. bool CLuaMain::LoadScriptFromBuffer ( const char* cpBuffer, unsigned int uiSize, const char* szFileName, bool bUTF8 )
  2. {
  3. 0C6E5C30  push        0FFFFFFFFh
  4. 0C6E5C32  push        100D87D3h
  5. 0C6E5C37  mov         eax,dword ptr fs:[00000000h]
  6. 0C6E5C3D  push        eax  
  7. 0C6E5C3E  sub         esp,0D0h
  8. 0C6E5C44  mov         eax,dword ptr ds:[100FA01Ch]
  9. 0C6E5C49  xor         eax,esp
  10. 0C6E5C4B  mov         dword ptr [esp+0C8h],eax
  11. 0C6E5C52  push        ebx  
  12. 0C6E5C53  push        ebp  
  13. 0C6E5C54  push        esi  
  14. 0C6E5C55  push        edi  
  15. 0C6E5C56  mov         eax,dword ptr ds:[100FA01Ch]
  16. 0C6E5C5B  xor         eax,esp
  17. 0C6E5C5D  push        eax  
  18. 0C6E5C5E  lea         eax,[esp+0E4h]
  19. 0C6E5C65  mov         dword ptr fs:[00000000h],eax
  20. 0C6E5C6B  mov         ebx,ecx
  21. 0C6E5C6D  mov         ebp,dword ptr [esp+0F4h]
  22.     if ( m_luaVM )
  23. 0C6E5C74  cmp         dword ptr [ebp+48h],0
  24.             {
  25.                 CLogger::LogPrint ( "SCRIPT ERROR: Unknown\n" );
  26.                 g_pClientGame->GetScriptDebugging()->LogInformation ( m_luaVM, "Loading script failed for unknown reason" );
  27.             }
  28.         }
  29.         else
  30.         {
  31.             ResetInstructionCount ();
  32.             int iret = lua_pcall ( m_luaVM, 0, 0, 0 ) ;
  33.             if ( iret == LUA_ERRRUN || iret == LUA_ERRMEM )
  34.             {
  35.                 SString strRes = ConformResourcePath ( lua_tostring( m_luaVM, -1 ) );
  36.        
  37.                 std::vector <SString> vecSplit;
  38.                 strRes.Split ( ":", vecSplit );
  39.                
  40.                 if ( vecSplit.size ( ) >= 3 )
  41. 0C6E5C78  mov         eax,dword ptr [esp+0F8h]
  42. 0C6E5C7F  mov         esi,edx
  43. 0C6E5C81  mov         dword ptr [esp+14h],eax
  44. 0C6E5C85  je          CLuaMain::LoadScriptFromBuffer+2D8h (0C6E5F08h)
  45. 0C6E5C8B  lea         ecx,[esp+0A4h]
  46. 0C6E5C92  call        dword ptr ds:[100DC1F0h]
  47. 0C6E5C98  cmp         byte ptr [esp+0FCh],0
  48. 0C6E5CA0  mov         dword ptr [esp+0ECh],0
  49. 0C6E5CAB  jne         CLuaMain::LoadScriptFromBuffer+1C1h (0C6E5DF1h)
  50. 0C6E5CB1  push        esi  
  51. 0C6E5CB2  lea         ecx,[esp+8Ch]
  52. 0C6E5CB9  call        dword ptr ds:[100DC1F4h]
  53. 0C6E5CBF  push        ebx  
  54. 0C6E5CC0  lea         ecx,[esp+8Ch]
  55. 0C6E5CC7  mov         byte ptr [esp+0F0h],1
  56. 0C6E5CCF  call        dword ptr ds:[100DC1E0h]
  57. 0C6E5CD5  lea         ecx,[esp+0C0h]
  58. 0C6E5CDC  push        ecx  
  59. 0C6E5CDD  lea         ecx,[esp+8Ch]
  60. 0C6E5CE4  call        SharedUtil::TranslateToUTF8 (0C623230h)
  61. 0C6E5CE9  add         esp,4
  62. 0C6E5CEC  mov         edi,eax
  63. 0C6E5CEE  lea         eax,[esp+6Ch]
  64. 0C6E5CF2  mov         byte ptr [esp+0ECh],2
  65. 0C6E5CFA  call        SharedUtil::ConvertToANSI (0C623210h)
  66. 0C6E5CFF  push        eax  
  67. 0C6E5D00  lea         ecx,[esp+0A8h]
  68. 0C6E5D07  mov         byte ptr [esp+0F0h],3
  69. 0C6E5D0F  call        dword ptr ds:[100DC20Ch]
  70. 0C6E5D15  lea         ecx,[esp+6Ch]
  71. 0C6E5D19  mov         byte ptr [esp+0ECh],2
  72. 0C6E5D21  call        dword ptr ds:[100DC208h]
  73. 0C6E5D27  lea         ecx,[esp+0C0h]
  74. 0C6E5D2E  mov         byte ptr [esp+0ECh],1
  75. 0C6E5D36  call        dword ptr ds:[100DC1C8h]
  76. 0C6E5D3C  mov         eax,dword ptr [esp+0B8h]
  77. 0C6E5D43  cmp         ebx,eax
  78. 0C6E5D45  je          CLuaMain::LoadScriptFromBuffer+16Fh (0C6E5D9Fh)
  79. 0C6E5D47  mov         ecx,dword ptr [esp+14h]
  80. 0C6E5D4B  lea         edx,[esp+6Ch]
  81. 0C6E5D4F  push        edx  
  82. 0C6E5D50  mov         ebx,eax
  83. 0C6E5D52  call        SharedUtil::ConformResourcePath (0C6232D0h)
  84. 0C6E5D57  add         esp,4
  85. 0C6E5D5A  mov         byte ptr [esp+0ECh],4
  86. 0C6E5D62  cmp         dword ptr [eax+18h],10h
  87. 0C6E5D66  jb          CLuaMain::LoadScriptFromBuffer+13Dh (0C6E5D6Dh)
  88.     {
  89.         std::string strUTFScript;
  90.         if ( !bUTF8 ) //If it's not a marked UTF-8 script
  91.         {
  92.             std::string strBuffer = std::string(cpBuffer);
  93.             strBuffer.resize(uiSize); //Clamp to end size;
  94.             strUTFScript = ConvertToANSI(TranslateToUTF8( strBuffer ));
  95.             if ( uiSize != strUTFScript.size() )
  96.             {
  97.                 uiSize = strUTFScript.size();
  98.                 g_pClientGame->GetScriptDebugging()->LogWarning ( m_luaVM, "Script '%s' is not encoded in UTF-8.  Loading as ANSI...", ConformResourcePath(szFileName).c_str() );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement